Buenas,
estaba intentando meterle mano :silbar: a un programa y todo va bien mientras lo lance intacto y modifique con olly. Pero si guardo las modificaciones se me cerraba nada mas abrir, al principio creí que estaba haciendo algo mal, pero he probado a cambiar un byte de una cadena de texto cualquiera y también se cierra, así que imagino que tendrá algún tipo de comprobación de integridad con CRC o ...
me podéis ayudar a confirmar (/desmentir) y anular esta protección ?
por cierto el programa es http://www.simplygest.es/descargas/sgpro.exe
una vez instalado, SimplyGest.exe
gracias!
si te sucede justamente al modificar el .exe los mas probable es que tenga alguna comprobacion de integridad del ejecutable, como bien dices puede ser CRC.
En tu caso para caer en la zona de la comprobacion intenta poniendo BP en las APIs, ExitProcess, TerminateProcess o cualquier otra que te detenga la ejecucion de la aplicacion en el momento que decide cerrarla. De aqui en adelante todo radica en el "Zen Cracking", o sea, vas mirando en la pila las direcciones de retorno y las vas verificando, cuando veas algun salto o alguna comprobacion sospechosa...bueno, por ahi debe estar la cosa. Todo es cuestion de ir atras en el flujo del programa y descubrir el salto(mayormente), que determina que hay o no un fallo de integridad del ejecutable
salu2
Tambien deberias intentar ver si el chequeo lo hace sobre el EXE en memoria o en el del disco.
Si hace el check en el archivo en disco, puedes usar OpenFile para detectar la ubicacion del CRC.
Saludos!
Pues nada, que no lo consigo, llego al ExitProcess pero a la hora de tracear para atras no doy con el salto o la condición. Pongo BPs pero si lanzo el programa original nunca llega a esa sección del código así que no doy con la zona en cuestión.
Comprobado por cierto que no tira de archivo así que lo tendrá grabado a fuego en el código el CRC o lo que sea.
Si me podéis orientar os lo agradecería la verdad...
chequea este escrito y mira a ver si puedes resolver con el:
http://sites.google.com/site/thundercrackslatinos/Home/otros-papers/EstudiocompletodelCRC32_Akira.rar?attredirects=0&d=1 (http://sites.google.com/site/thundercrackslatinos/Home/otros-papers/EstudiocompletodelCRC32_Akira.rar?attredirects=0&d=1)
salu2
Lo que podes hacer es parcharlo desde una de las dlls que carga...
slds
decime donde hiciste esos cambios
porque yo lo modifico en cualquier lado y
sigue funcionando..
Ayer por la noche (vamos de la noche del jueves al viernes) he estado trasteando con el programa.
No hace ninguna comprobación de CRC, sino que comprueba la fecha de modificación del archivo con una fecha que tiene. En la versión que he probado:
8.6.2.4916 del 23 de Octubre comprobaba eso, que la fecha de modificación fuese "092310" (lo comprueba como cadena en el procedimiento 0x00405D94) y si no coincide guarda un 1 en 0x00E06DF1. Hace esta comprobación en varios sitios.
Ahora me voy a acostar, pero en cuanto tenga tiempo escribo un minitutorial de como llegué a ese punto, por eso de enseñar a pescar y no dar los pescados.
Gracias PeterPunk77 !
bueno por lo menos no eran imaginaciones mías eso de que alguna comprobación hacía...
si esque eso es precisamente a lo que quiero llegar, abrir el programa y poder ver qué hace,cómo lo hace, si es un CRC, MD5 o si es la comprobación de la que tu hablas o cualquier otra trampa del programador...
en fin supongo que eso viene con la práctica y metiendo horas, espero ansioso tu minituto mientras tanto aparco el tema y sigo con los tutos de olly.
Muchas Gracias a todos.