¿Que debo modificar en el PE Header de un exe para infectarlo con virus????

Iniciado por harry_the_blogger, 19 Agosto 2014, 01:22 AM

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

harry_the_blogger

[Disculpen, no sabía que mi post anterior había sido movido aquí, por favor, si pueden respondan a mi pregunta]

Hola, estoy desarrollando un virus sencillo en assembly. Es capaz de buscar archivos .exe en el directorio especificado, pero me falta una parte: ¿Que debo modificar en el PE Header de un exe para infectarlo con mi virus sencillo??? Es lo unico que me falta.

No piensen que estoy haciendo preguntas de lammers, ya que tengo conocimientos sobre algunas cosas sobre las cabeceras de los ejecutables de Windows, pero no sé que debiera modificar exactamente para que mi virus sea añadido al final del ejecutable y corra de primero.

Si pudieran darme una guia sobre que campos de los Headers del Exe debo modificar, estaría muy agradecido. Gracias por sus respuestas de antemano.
Vista mi blog es enriquemesa.blogspot.com

MCKSys Argentina

Hola!

Bueno, anteriormente te di un link con ideas básicas, pero ahora te voy a dar una idea un poco mas concisa:

Para insertar tu virus en el exe, puedes agregarle una sección al mismo (busca cómo agregar secciones al un exe pe, hay muchos ejemplos).
Luego de insertar la sección, le colocas el código de la viruta dentro y redireccionas el EntryPoint (EP) del EXE al punto de entrada de tu virus. Al final de tu virus, deberías tener un JMP al EP original, asi el ejecutable funcionaría como si nada hubiera pasado.

Esta técnica la conozco como inline-patching y hay muchas variantes sobre la misma.

Para que tengas algo con lo cual empezar a ver el tema: existe una aplicacion llamada "Topo", la cual te permite insertarle a un ejecutable una sección y redirigir el EP a la misma. Puedes usar la herramienta para analizar con un editor hexa los cambios que hace.
Aunque tambien podría destacar que, si el codigo del virtus es pequeño y el ejecutable tiene espacio libre al final de la/s sección/es ejecutable/s, no sería necesario agregar una sección, sinó copiar el virus al lugar libre y redireccionar el EP al mismo.


En fin, hay muchas variantes en este tema, como habrás visto en el link que te pasé anteriormente.

Saludos!
MCKSys Argentina

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


Mr.Virus

claro por eso es importante programar los virus en asm por una cuestión de tamaño, aparte de que el virus debe ser pequeño, para que pueda entrar bien. lo de hacerlo en asm es porque ocupa poco tamaño si no se escriben instrucciones redundantes

harry_the_blogger

Vista mi blog es enriquemesa.blogspot.com

x64core

Cita de: MCKSys Argentina en 19 Agosto 2014, 04:13 AM
Hola!

Bueno, anteriormente te di un link con ideas básicas, pero ahora te voy a dar una idea un poco mas concisa:

Para insertar tu virus en el exe, puedes agregarle una sección al mismo (busca cómo agregar secciones al un exe pe, hay muchos ejemplos).
Luego de insertar la sección, le colocas el código de la viruta dentro y redireccionas el EntryPoint (EP) del EXE al punto de entrada de tu virus. Al final de tu virus, deberías tener un JMP al EP original, asi el ejecutable funcionaría como si nada hubiera pasado.

Esta técnica la conozco como inline-patching y hay muchas variantes sobre la misma.

Para que tengas algo con lo cual empezar a ver el tema: existe una aplicacion llamada "Topo", la cual te permite insertarle a un ejecutable una sección y redirigir el EP a la misma. Puedes usar la herramienta para analizar con un editor hexa los cambios que hace.
Aunque tambien podría destacar que, si el codigo del virtus es pequeño y el ejecutable tiene espacio libre al final de la/s sección/es ejecutable/s, no sería necesario agregar una sección, sinó copiar el virus al lugar libre y redireccionar el EP al mismo.


En fin, hay muchas variantes en este tema, como habrás visto en el link que te pasé anteriormente.

Saludos!
Lo que estas hablando es acerca de EPO: http://vxheavens.com/lib/vgy01.html. no tiene nada ver con 'inline-patching'.

MCKSys Argentina

Cita de: x64Core en 28 Agosto 2014, 19:35 PM
Lo que estas hablando es acerca de EPO: http://vxheavens.com/lib/vgy01.html. no tiene nada ver con 'inline-patching'.

Pues entonces hay muchos equivocados.

O sería posible que GriYo/29A le haya puesto ese nombre porque le gustó?

Esa tecnica la sigo conociendo como inline-patching, o como le llamaría GriYo/29A: Entry-Point Obscuring.  :P

Saludos!
MCKSys Argentina

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


x64core

Cita de: MCKSys Argentina en 28 Agosto 2014, 20:28 PM
Pues entonces hay muchos equivocados.

O sería posible que GriYo/29A le haya puesto ese nombre porque le gustó?

Esa tecnica la sigo conociendo como inline-patching, o como le llamaría GriYo/29A: Entry-Point Obscuring.  :P

Saludos!
Si se habla acerca infección de ejecutables, ese es el punto aquí. ;)


Shaddy

Cita de: x64Core en 28 Agosto 2014, 22:36 PM
Si se habla acerca infección de ejecutables, ese es el punto aquí. ;)



Es cierto, esa técnica se conoce como EPO, y no es inline-patching porque lo segundo corresponde a un código que autoparchea un ejecutable y lo primero un código que trata de "ocultar" el main del vx.

Pero no es menos cierto que esa técnica aunque todo el mundo se la atribuye a GriYo otros ya la habían hecho antes :).

Un saludo.
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

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