Ayuda con Motor Metamorfico

Iniciado por harry_the_blogger, 6 Octubre 2014, 00:08 AM

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

harry_the_blogger

Hola, estoy desarrollando un motor metamorfico. Sé que es algo dificil, pero si uno no empieza no acaba nunca. XD.

Bueno, el problema es el siguiente: Necesito ayuda sobre como generar las instrucciones equivalentes: Imaginemos que tengo un:

Código (asm) [Seleccionar]

;En sintaxis FASM
mov [variable], eax


Podría ser reemplazado por un:

Código (asm) [Seleccionar]

;En sintaxis FASM
push eax
pop [variable]


¿Como podría lograr eso? Tengo una idea, pero no sé si será la mejor opción:


  • Analizar el source y el destino
  • Aplicar source a un push
  • Aplicar destino a un pop


¿Será que alguien me puede dar una idea de como intercambiar las instrucciones? Ya he leído los manuales de Intel bastantes veces, y por lo menos lo básico lo entiendo. Quisiera una ayudadita, porque el tema de los motores metamorficos está algo díficil de implementar.

Gracias a todos de antemano.
Vista mi blog es enriquemesa.blogspot.com

MCKSys Argentina

Hola!

Revisaste los motores que hay en VXHeavens?

De los 288 que hay, seguro que hay al menos uno, que haga lo que quieres hacer...  ;)

Saludos!
MCKSys Argentina

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


harry_the_blogger

#2
Ah, gracias por el link. Solo quería pedir una tercera opinion. Ya los estoy analizando a ver que tal están.

Quisiera que me dieran ideas. Sé que es posible que no me den código (porque si no me equivoco el foro lo prohibe, al menos eso creí ver en las reglas cuando las leí). Pero si alguna idea de como tratar las instrucciones de forma fácil, porque es algo engorroso mantener los datos sobre los prefijos, si es one-byte opcode o two-byte op, etc.

Cuando haya avanzado más, puedo seguir publicando mis dudas aqu. ¿cierto?. XD.
Vista mi blog es enriquemesa.blogspot.com

cpu2

La duda que tienes es avanzada no creas conseguir mucha ayuda en estos temas, me pasa ami tambien.

No creo que encuentres un motor metamorfico en ese link, si es asi pido disculpas, no me lei los 288 que hay.

Lo que podrias hacer es estudiar algun motor polimorfico de los que te paso @MCKSys Argentina, y de hay sacar ideas para los tuyos y si es posible para algun dia hacer un motor metamorfico, sabras cual es la diferencia entre un motor poli y meta?

Pues sobre como crear las instrucciones equivalentes, tendrias que crear una rutina que interpretara el opcode y lo cambiara por otros registros y opcode no hay otra forma segun lo que se yo, lee los tomos de las intrucciones y mira cual podria ser los equivalente.

Tienes XCHG y opcode como ese, no se que mas decirte creo que con el metodo que estas usando para el disassembler podrias hacer algo con esto, pero eso ya es cosa tuya.

Creo recordar a ver leido por algun sitio dedicado al malware, que se encontro malware con un motor metamorfico de unas 15.000 instrucciones ASM, era mas pesado y avanzado el metamorfismo que el propio virus en si, solamente digo eso.

Un saludo.