Hola chicos:
Recien me inicio en estos lados y pues he empezado con un programa bastante sencillo que se encarga de modificar un archivo binario externo... Es decir... el programa abre un archivo .DAT lee las variable y modifica cierta parte con una formula matematica y luego guarda el archivo de nuevo... la unica pega es que en el "demo" coloca la palabra "DEMOSTRACION" en un campo de ese archivo binario que modifica...
La tarea que he querido hacer es desemsamblar el programa y eliminar la orden donde coloca la palabra "DEMOSTRACION" para que haga lo demas y me deje ese campo sin modificar... Lo he desemsanblado con W332dasm v9 y pues he encontrado las palabra Demostracion una vez, mas el nombre del archivo que modifica dos veces...
El nombre del archivo .DAT que modifica un poco mas abajo de la palabra demostracion y luego mucho mas arriba el archivo .DAT de nuvo con muchas mas instrucciones...
El problema es que he modificado algunos bytes y pues me deja de colocar la palabra "demostracion" pero el problema es que lo sustituye por espacio en blanco y en otros caso por puntos... pero el problema es que en donde va a poner la palabra "demostracion" ya hay texto y pues no me interesa que modifique ese texto... solo me interesa que haga lo demas sin colocar demostracion y asi no modificar el texto que ya esta...
cosas importante que logre ver...
"Palabra Demostracion"
mov edx, 00477608
call 00404064
"archivo binario que modifica"
mox eax, 00477634
call 0040846c
tests al, al
je 004775c0
push 00000002
y luego mucho mas arriba aparece de nuevo el archivo binario que se modifica con las siguientes instrucciones:
mov eax, 0047752c
call 0040846c
test al, al
je 004774f5
mov dl, 01
mov eax, dword ptr [ebx+0000032c]
mov ecx, dword ptr [eax]
call [ecx+64]
jmp 00477502
Mi pregunta es:
Me podrias explicar un poco que hace la rutina aqui?? veo que hace unos llamados y unos salto... ademas de algunos movimientos... pero hay algunas cosas que no entiendo como "mov dl, 01" que hace especificamente esto..
Les recuerdo que me recien comienzo y todos los manuales que consigo son con oddy o con softice y ninguno que me explique que tengo que modificar ni como en w32dasm...
Me agradaria que me explicara que hace el programa y a donde debo de ir a modificar... o que debo de buscar para modificarlo... segun tengo entendido tendria que buscar un salto y modificarlo... pero cual salto?? y modificarlo con cual digito?? utilizo el Hex workshop para modificar el archivo hex...
Muchas gracias de antemano por quienes me puedan ayudar a explicar... se que es demasiado facil el programa para ustedes pero hay muchas cosas que no comprendo... y pues quiero que me ayuden para seguir asi progresivamente avanzando... muchas gracias...
Si alguien quiere revisar el programa o modificarlo y luego decirme como se hace para entender la rutina y saber que teniamos que modificar... pues me avisan y se los paso a traves de un servidor publico o si me dejan su correo se lo paso y asi me ayudan analizando mejor el codigo... Mil Gracias
Recien me inicio en estos lados y pues he empezado con un programa bastante sencillo que se encarga de modificar un archivo binario externo... Es decir... el programa abre un archivo .DAT lee las variable y modifica cierta parte con una formula matematica y luego guarda el archivo de nuevo... la unica pega es que en el "demo" coloca la palabra "DEMOSTRACION" en un campo de ese archivo binario que modifica...
La tarea que he querido hacer es desemsamblar el programa y eliminar la orden donde coloca la palabra "DEMOSTRACION" para que haga lo demas y me deje ese campo sin modificar... Lo he desemsanblado con W332dasm v9 y pues he encontrado las palabra Demostracion una vez, mas el nombre del archivo que modifica dos veces...
El nombre del archivo .DAT que modifica un poco mas abajo de la palabra demostracion y luego mucho mas arriba el archivo .DAT de nuvo con muchas mas instrucciones...
El problema es que he modificado algunos bytes y pues me deja de colocar la palabra "demostracion" pero el problema es que lo sustituye por espacio en blanco y en otros caso por puntos... pero el problema es que en donde va a poner la palabra "demostracion" ya hay texto y pues no me interesa que modifique ese texto... solo me interesa que haga lo demas sin colocar demostracion y asi no modificar el texto que ya esta...
cosas importante que logre ver...
"Palabra Demostracion"
mov edx, 00477608
call 00404064
"archivo binario que modifica"
mox eax, 00477634
call 0040846c
tests al, al
je 004775c0
push 00000002
y luego mucho mas arriba aparece de nuevo el archivo binario que se modifica con las siguientes instrucciones:
mov eax, 0047752c
call 0040846c
test al, al
je 004774f5
mov dl, 01
mov eax, dword ptr [ebx+0000032c]
mov ecx, dword ptr [eax]
call [ecx+64]
jmp 00477502
Mi pregunta es:
Me podrias explicar un poco que hace la rutina aqui?? veo que hace unos llamados y unos salto... ademas de algunos movimientos... pero hay algunas cosas que no entiendo como "mov dl, 01" que hace especificamente esto..
Les recuerdo que me recien comienzo y todos los manuales que consigo son con oddy o con softice y ninguno que me explique que tengo que modificar ni como en w32dasm...
Me agradaria que me explicara que hace el programa y a donde debo de ir a modificar... o que debo de buscar para modificarlo... segun tengo entendido tendria que buscar un salto y modificarlo... pero cual salto?? y modificarlo con cual digito?? utilizo el Hex workshop para modificar el archivo hex...
Muchas gracias de antemano por quienes me puedan ayudar a explicar... se que es demasiado facil el programa para ustedes pero hay muchas cosas que no comprendo... y pues quiero que me ayuden para seguir asi progresivamente avanzando... muchas gracias...
Si alguien quiere revisar el programa o modificarlo y luego decirme como se hace para entender la rutina y saber que teniamos que modificar... pues me avisan y se los paso a traves de un servidor publico o si me dejan su correo se lo paso y asi me ayudan analizando mejor el codigo... Mil Gracias