porque la EIP no cambia cuando modifico los hexadecimales?

Iniciado por Belial & Grimoire, 9 Noviembre 2009, 23:53 PM

0 Miembros y 1 Visitante están viendo este tema.

Belial & Grimoire

hola

tengo un duda... miren tengo un archivo con 10000 numeros hexadecimales al azar... y eso provoca un overflow a un programa, el programa esta documentado... asi que mi problema no es como hacer un exploit.

lo que pasa es que en ese archivo donde tengo los hexadecimales, al abrirlo con el programa que crashea, la EIP me marca unos numeros hexadecimales... hice un codigo para reemplazar esos numeros por otros para que al abrirlo de nuevo con el mismo programa y usando OllyDbg me marque la EIP con los numeros que acabo de modificar... pero no se modifican

ahora, cuando con el editor de hexadecimal, modifico los hexadecimales poco a poco me doy cuenta que lo que sobreescribe la EIP esta en otra parte...

por ejemplo.. supuestamente olly me dice que lo que tengo que modificar es la EIP que tiene 35373632, pero cuando lo hago la EIP no se modifica, pero cuando busque con el editor hexadecimal, me aparecio que tenia que modificar los hexadecimales 36383532... y al hacerlo si se modifica bien EIP

lo que no entiendo es porque pasa eso?

alguien sabe?

salu2
.                                 

Иōҳ

Eres adicto a la Ing. Inversa? -> www.noxsoft.net

MCKSys Argentina

Hola!

Quizás no estés teniendo en cuenta, que cuando un valor hexa se carga en un registro, los valores se "invierten".

Esto es, por ej., si en la memoria tienes el valor: 0BADC0DE, cuando cargas el valor en un registro (EIP, EAX, etc) vas a ver el valor DEC0AD0B.

PUEDE SER que gracias a ésto, no encuentres el valor que dice EIP en el archivo Hexa.

Saludos!

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Иōҳ

cierto cuando trabajas con el stack es diferente ya que es una estructura LIFO ( Last In First Out ) quiere decir que lo primero q entra es el ultimo que sale.

Citarlo que pasa es que en ese archivo donde tengo los hexadecimales, al abrirlo con el programa que crashea, la EIP me marca unos numeros hexadecimales... hice un codigo para reemplazar esos numeros por otros para que al abrirlo de nuevo con el mismo programa y usando OllyDbg me marque la EIP con los numeros que acabo de modificar... pero no se modifican

Ahora lo que entiendo hay que quieres modificar el Entry Point

Si no me equivo ( espero que no ) aqui lei sobre como cambiar el EntryPoint por tu Encriptacion

http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_asi_funcionan_los_crypters_encriptando_malware_a_mano-t262806.0.html

Ahora si me equivoco, te recomiendo buscar los tutos de ZeroPad donde te enseña a parte de crear virus en asm a cambiar el EntryPoint! :D
y creo q es lo que necesitas


else

puedes descargarte

http://foro.elhacker.net/analisis_y_diseno_de_malware/proyecto_metamorph-t252898.0.html

el codigo fuente del proyecto de Hacker_Zero y fiajarte como cambia el EntryPoint !

Espero haberte ayudado :D :P


Eres adicto a la Ing. Inversa? -> www.noxsoft.net