Modificacion inocua de código con Olly

Iniciado por TaU, 27 Abril 2004, 22:44 PM

0 Miembros y 2 Visitantes están viendo este tema.

TaU

Una de las cosas que voy aprendiendo en sl curso de crack de Ratón es a entender un poco el código ensamblador (muy vagamente por ahora |-P), asi que hace poco me dió por investigar la manera de modificar un .exe para que no fuera detectado por el KAV y aprender de una vez a entender lo que estoy cambiando, no hacerlo al tún-tún como hasta ahora.

Como es fácil obtener los offsets que el KAV reconoce, es fácil localizar que cadena hay que cambiar del .exe con el Olly. Una vez localizada (y aki empiezan mis elucubraciones) en teoria se podria trasladar a otro lugar del .exe donde no estorbara, meterle un <call> al offset donde se trasladara con su <retn> correspondiente, y meter un <jmp> justo antes del call para que saltara hasta después del <retn>. O si acaso no se pudiera con un <call> (?) , pues hacerlo todo a base de <jmp>. La verdad es que no se que método es más conveniente.

El problema me viene a la hora de identificar con el Olly todas las instrucciones afectadas. No se si se puede meter un <call> en cualkier sitio, pero no creo. El <jmp> creo que tiene que ser más flexible. Y a la hora de encontrar donde meter ese código desplazado, pues supongo que los .exe deben tener su estructura, por lo que no se podra meter en cualkier sitio.

Además tambien ignoro si se puede añadir a lo bruto una serie de líneas más por ejemplo al final del .exe o si tendria que identificar código inútil del interior del .exe para sustituirlo por el que me interesa desplazar.

No se si me explico con claridad...  En resumen, mas o menos  mis preguntas serían ¿puedo interrumpir cualkier parte del código con un <jmp> o un <call> continuar el código en ese salto? ¿Donde meto ese salto (no el origen, ya que este te lo da el offset detectado por el AV, sino el destino)? ¿Cómo se identifican las partes de código inútiles (para machacarlas, si fuera necesario, con el código desplazado)?

En fin, posteo en busca de consejo y orientacion por parte de los maestros...
"Si no se vive como se piensa, se acabará pensando como se vive", Pep Figueres
Revolucionario / Presidente de Costa Rica / Primer jefe de estado de la historia en abolir el ejército / Catalán.
www.wadalbertia.org  -<|¡^P

Raton

Je je , el que la sigue la consigue ;)

Por cierto viste el anexo al capitulo 2 en el que se usa topo para injertar codigo?
De esa forma lo puedes hacer y luego nopear las instrucciones que has cambiado, asi las cambias de direccion y el antivirus no las "ve" en la direccion que se las espera encontrar.
Lo unico que puedo decirte (para que se enteren los demas pues esto viene de otro parte) es lo mismo que te dije: a lo mejor (casi seguro, por intuicion) con cambiar el orden de las instrucciones no consigues nada pues supongo que el antivirus buscara por todo el exe y dara igual el sitio donde la pongas, a no ser que reformes esa instruccion y la vuelvas irreconocible.
Esta es la opinion de un manta , a ver si alguien te lo soluciona que yo tambien estoy intrigado.
Un saludo

TaU

jajaja, toy en tos laos xD

No me acordaba de lo del topo del capitulo 2! voy a repasarlo pero ya! asias master...

Lo que dices de injertar código tiene mucho más sentido que lo mio,  yo estaba dando mis primeros pasos (a palos de ciego xD) y 'ta claro que me complicaba demasiado la vida.

He estado comentándolo tambien con un amigo de la uni que sí estudia informática (aunke parezca mentira por estar por estos lares, mi carrera no tiene nada que ver con la informática ^^! ) y tiene más claros los conceptos teóricos de todo esto, y me ha dicho lo mismo, que lo más facil seria insertar código que no hiciera nada enmedio de la cadena detectada, nose, un NOP por ejemplo, o un CMP y luego pasar del resultado que dé, etc...

Ahora me disponía devorar el manual del Olly para ver cómo insertar código, si es que podía, pero por suerte se me ocurrió pasar por aki antes! jeje

En cuanto haga unas pruebas ya os comento el resultado...

'talueeeec
"Si no se vive como se piensa, se acabará pensando como se vive", Pep Figueres
Revolucionario / Presidente de Costa Rica / Primer jefe de estado de la historia en abolir el ejército / Catalán.
www.wadalbertia.org  -<|¡^P

Raton

Pues imaginate yo que me echaron en primero de bup y la primera vez que me sente delante de un pc fue hace 3 años.
No me acuerdo ni de dividir.... jeje.

Suerte.

Shaddy

Cita de: Raton en 28 Abril 2004, 03:12 AM
Pues imaginate yo que me echaron en primero de bup y la primera vez que me sente delante de un pc fue hace 3 años.
No me acuerdo ni de dividir.... jeje.

Suerte.

joer, mira k llevo jeje, cierto tiempo crackeando... xDD, y como que ahora no me entero pero de nada... habláis de injertos con el topo¿?¿?, pero el topo solo añade una sección vacía llena de 00s, para injertar esta el Snippet Creator que te injerta ahí las APIs que quieres cn las Dll que quieres.. y luego los injertos en tiempo de ejeccución en los packer pero de verdad, decidme que estábais conversando k no me entero xDD.
Salu2...
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

Raton

Je je, se trata de cambiar de lugar en un executable de un virus las instrucciones que  puedan ser reconocidas por el antivirus.

Yo no se si esto funcionara pero para probarlo debera hacer espacio en el exe y redirigir las instruccionesy borrar las antiguas por eso le dije que lo hiciera con topo aunque realmente tengo pocas esperanzas de que asi funcione a no ser que modifique las instrucciones totalmente.
El tema es aprovechar la sección vacia que deja el topo para escribir las nuevas instrucciones y redirigirlas.

byebye

si despues de ejecutar las nuevas instrucciones se redireciona el programa a "lo normal" y se restaura cualquier cosa que pudiese estar modificada funcionara bien.

Shaddy

Cita de: Raton en 29 Abril 2004, 03:28 AM
Je je, se trata de cambiar de lugar en un executable de un virus las instrucciones que  puedan ser reconocidas por el antivirus.

Yo no se si esto funcionara pero para probarlo debera hacer espacio en el exe y redirigir las instruccionesy borrar las antiguas por eso le dije que lo hiciera con topo aunque realmente tengo pocas esperanzas de que asi funcione a no ser que modifique las instrucciones totalmente.
El tema es aprovechar la sección vacia que deja el topo para escribir las nuevas instrucciones y redirigirlas.

y porque no encriptas el código, y quizás eso ayude a la detección de algoritmos, pues un antivirus pilla el virus antes de su ejecución, si lo encriptas y desencriptas en tiempo de ejecución el antivirus quizás no llega a tiempo, supongo que ésta es una de las muxas maneras, pues está los poliformicos etc, pero todo esto se puede ver en grupos de scene viruser como 29A y el antiguo Dark Node etc....
Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com