Moving Grave nº3:(MG#_3.X01):21/11/1995 << Back To Moving Grave nº 3
IIII IIIII II IIII II II II II II I II IIII II II II II II I II II II II II I II II II II II II II II IIII II IIIIIII III II II II II II II II II II II II II II II II II II II IIII II II II II IIII II II II III IIII II II I I I I II I I I : | ∙ I . Very Basic By Satan Klauz Hola gente! Como andan ? supongo que re mal... me lo imaginaba... Bueno, dejo las preguntas molestas y comienzo con el texto: Con este texto quiero guiar masomenos a los que tienen MUY poco conoci- miento del AssEmblEr, para que puedan adentrarse en el tema y comenzar a experimentar. Se trata de crackear un programa de los tantos con los que viene el amado (no por mucho tiemo) DOS y modificarlo para poder utilizar ese programita en CUALQUIER vercion de D.O.s. (ahora explico mejor..) Viste que si ejecutas un programa por ej. el CHKDSK de la vercion 3.0 en otra vercion te manda un mensaje 'vercion incorrecta de dos...' bueno ahora hay que ingeniarselas para que no aparezca esa mierda. Van a ver que estos hijos de puta de MicrosoFt con solo modificar una mierda y... agregar alguna que otra cagada ya te venden todo el paquete de nuevo... _______________ Herramientas: *************** El HIEW (Hackers View) o el DEBUG, pero para esto el HIEW es mas rapido y mas facil de usar....:) Voy a usar como archivo para crackear el DISKCOMP.COM, ya que hay otros .com que estan encriptados y se pueden hacer lios, mejor lo muestro con un ejemplo facil. Copien el DISKCOMP.COM a un directorio vacio para poder trabajar bien y no hacer ningun lio. Bueno, con el HIEW en el path o en el directorio donde trabajan, ponen... C:\CRACK> HIEW DISKCOMP.COM No me voy a poner a explicar como funca el hiew, ya que muchos pueden usar otros programas que les gusten mas... Primero y principal, hay que pensar, que hace el programa para que imprima en pantala el mensaje 'VERSION INCORRECTA DE DOS' al ejecutarlo en otra ver- cion. Bueno, con el assembler mediante la int 21 se puede averiguar que version de DOS esta siendo usada (la version de DOS es especificada por el IO.SYS) y una vez que sabe que version de DOS es la actual, compara aver si es la misma de la que es el programa... (la compara con un numero por ej. si se fija si es la v6.0 comparara con el numero 0006). Espero que se entienda... Ok, la idea la cazaste, en cualquier lista de interrupciones de DOS, esta la INT 21 (DOS) y segun lo que se ponga en el registro AH va a hacer distin- tas cosas, en nuestro caso, si se pone: ------------------------------------------------------------------------ MOV AH,30h ;Para averiguar la version de dos actual. INT 21h ;Pone el numero de la version de dos en AX. ------------------------------------------------------------------------ Automaticamente aparecera un numero en AX, ese numero sera en el caso de la v6.0, el 0006. Es decir, despues de aparecer el numero en AX, el programa va a comparar su version de DOS con la que se esta usando..y lo hace asi: ------------------------------------------------------------------------ CMP AX,0006 ;Compara AX con el 0006 (es la v6.0?) JNE 1956 ;Si no es la 0006 que diga que no es la version ;correcta... ------------------------------------------------------------------------ Aca compara con 0006 y si no es igual, salta a la direccion 1956 donde seguramente mostrara el mensaje VERSION DE DOS NO CORRECTA o algo asi. Asi se ve la rutina entera de comparacion: ------------------------------------------------------------------------ 1931: RETN 1932: MOV AH,30 <- va a pedir la version correcta de DOS 1934: INT 21 <- se carga en AX la version de DOS actual 1936: CMP AX,0006 <- Compara si la version es la correcta..! 1939: JNE 1956 <- si no lo es, dice, VERSION NO CORRECTA.. <- Jump If Not Equal... 193B: CLC <- aca continuaria el prog. si es que la version si es correcta... ------------------------------------------------------------------------ Lo que vamos a hacer seguramente ya se te ocurrio, es saltar la parte donde busca la version, y "a la fuerza" obligar al prog. a continuar, eso lo ha- cemos poniendo en la linea 1932: JMP 193B y directamente no compara, nada, facil no ? La rutina quedaria asi : ------------------------------------------------------------------------ 1931: RETN 1932: JMP 193B <- Salta a 193B y no respeta lo del medio..--------. 1934: INT 21 <- no se ejecuta │ 1936: CMP AX,0006 <- no se ejecuta │ 1939: JNE 1956 <- no se ejecuta │ 193B: CLC <- aca continuaria el prog. si es que la version <-∙ si es correcta... ------------------------------------------------------------------------ Bueno, espero que esta modificacion les haya enseñado algo, y cualquier duda o comentario, podes encontrarme en The Twilight Zone .. CoeaC Whq! PD: Incluyo el DISKCOMP.COM crackeado (lo renombre como CRACKED.COM) para que lo prueben, no sean cagones, no es ningun trojano, bye! ;) __________________________________________ By Satan Klauz 7/4/95 & modified 20/9/95 __________________________________________ By [oEa[ 95'