Tute Creando Un Parche en RadAsm
description
Transcript of Tute Creando Un Parche en RadAsm
Programa
ProgramaCreando un parche en RadAsm 2
Proteccin
DescripcinPues eso
DificultadMinima eso creo :-p
DownLoad
HerramientaRadAsm y Olly
CrackerDaniel La Calavera -Fecha17/12/2004
INTRODUCCION
Bueno en este tute tratare de explicar lo mas sencillo posible como crear un parche en RadAsm.
Bueno espero que le sea til a alguien (
AL ATAKE
Bueno comencemos junto con el tute viene un crackme, llamado crackme_parch.exe bien mirmoslo cn el Olly a ver donde esta el salto que hay que invertir para que muestre el cartel de chico bueno
bueno all en la imagen tenemos en 401073 el salto, ahora hacemos clic derecho view(Executable File y veremos el Offset de donde esta ubicado el salto y como vemos esta en
00000473 75 13 JNZ SHORT 00000488
o sea que el Offset es 473 bien ya tenemos los datos que necesitamos para nuestro parche, tenemos el Offset 473 y el byte a cambiar 75 por 74 as que vallamos a la programacin directamente que para eso es este tute jejeje.
Bueno comenzamos, abrimos un nuevo proyecto como lo venamos asiendo y colocamos un par de controles, un visor de AVI, Un Edit Text, 2 Botones, una etiqueta, en el men Proyect( resource agregamos el icono y el AVI, y nos quedara algo as
Bonito no :-P, bueno la interface la pueden crear a su gusto ;-)
Bueno vallamos a lo principal de todo esto, a tipiar cdigo de maquina ;-)
Bueno el cdigo necesario para crear el parche es este
.if eax==WM_INITDIALOG
invoke LoadIcon,hInstance,501
mov icon, eax
invoke SendMessage,hWin,WM_SETICON,NULL,icon
invoke SetDlgItemText,hWin,1004, offset leyenda
.elseif eax==WM_COMMAND
mov eax, wParam
.if eax==1001
invoke CopyFile,offset archivo, offset back,TRUE
invoke CreateFile, addr archivo,GENERIC_WRITE or GENERIC_READ , FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
mov hFile, eax
invoke CreateFileMapping, hFile, NULL, PAGE_READWRITE,0,0,0
mov hMapping, eax
invoke MapViewOfFile,hMapping,FILE_MAP_WRITE,0,0,0
mov pMapping,eax
add eax, 473h
mov ecx, 74h
mov [eax], cl
mov eax, [eax]
.if al==74h
invoke MessageBox,0,offset texto, offset titulo,MB_OK
.endif
Bueno vamos a explicar esto un poco
invoke CopyFile,offset archivo, offset back,TRUE
bueno aqui lo que hacemos es crear una copia del archivo original por cualquier problema que halla, luego tenemos
invoke CreateFile, addr archivo,GENERIC_WRITE or GENERIC_READ ,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
Bueno con esto abrimos el archivo a crackear, luego tenemos
invoke CreateFileMapping, hFile, NULL, PAGE_READWRITE,0,0,0
mov hMapping, eax
Bueno esta api lo que hace es crear un mapa en memoria del archivo abierto por CreateFile, pasndole como parmetros el hande del archivo, y en forma de lectura y escritura, luego tenemos
invoke MapViewOfFile,hMapping,FILE_MAP_WRITE,0,0,0
mov pMapping,eax
Con esta api lo que hacemos es desbloquear el mapa creado anteriormente, pasndole el Handle del mapa creado, y habilitando el mapa para que se pueda escribir, si la API tubo xito la direccin donde fue cargado el archivo nos quedara en EAX si vamos a la direccin que esta en EAX veremos el archivo abierto, as que para aplicar el parche debemos sumar la direccin devuelta en EAX + 473 que era el Offset del salto a cambiar, lo cual hacemos aqu
add eax, 473h
mov ecx, 74h
mov [eax], cl
le sumamos a EAX, 473h luego movemos a ECX el valor a cambiar, y luego se lo movemos a la direccin que indica EAX, con esto estaria listo el parche, pero para dar un aviso si tuvo xito el parche agregamos esta parte
mov eax, [eax]
.if al==74h
invoke MessageBox,0,offset texto, offset titulo,MB_OK
.endif
movemos a EAX en DWORD de la direccin del que esta en EAX y comprobamos si AL es = a 74H si es = mostramos un mensaje de que el parche fue aplcicado.
Bueno eso es todo, por alguna razon que no se, haciendo esto el cambio ya queda echo en el archivo y no hace falta usar mas apis para crear el nuevo archivo.
Bueno solo faltan declarar los .data
.data
icon dd ?
archivo db "crackme_parch.exe",0
back db "crackme_parch.exe.bak",0
hFile dd ?
hMapping dd ?
pMapping dd ?
texto db "El Parche fue aplicado",0
titulo db "Atencion !!!",0
leyenda db "Parche creado por La Calavera, totalmente en RadAsm",0
Bueno eso es todo espero que se halla entendido, cualquier duda, cualquier otra cosa ya saben mandan un mail y listo.
Saludos a toda la lista de CracksLatinos.
Daniel - La Calavera
Mail: [email protected]