Como establecer el tamaño del EXE en los PE Header correctamente??

Iniciado por harry_the_blogger, 23 Agosto 2014, 18:18 PM

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

harry_the_blogger

Hola, estoy desarrollando mi primer virus simple. El virus se añade al final de la ultima sección del ejecutable, (.text). Pero hay problema, el tamaño que esta guardado dentro del ejecutable (según mi herramienta CFF Explorer VIII, hecha por NTCore) no coincide con su tamaño fisico. Yo sé que existe algo llamado tamaño fisico (physical size) y tamaño virtual (virtual size).

He leido bastante la documentacion de Microsoft, no he podido encontrar como modificar y establecer correctamente los valores de esos campos, ni siquiera sé en donde están posicionados dentro de la cabeceras internas del ejecutable porque no puedo verlos usando mi herramienta (comentada anteriormente).

Si alguien pudiera decirme en que offset estan esos campos y como modificarlos adecuadamente para reflejar los cambios hechos por mi virus, estaría muy agradecido.

Gracias de antemano por sus respuestas.
Vista mi blog es enriquemesa.blogspot.com

MCKSys Argentina

Cita de: harry_the_blogger en 23 Agosto 2014, 18:18 PM
El virus se añade al final de la ultima sección del ejecutable, (.text).

Normalmente, la sección .text es la primera sección luego del PE Header, no la ultima.
Fijate en la siguiente captura de CFF explorer sobre calc.exe de un XP SP3:


La sección .text es la primera despues del header. En el archivo, está en el offset 0x400 (Raw Address) y tiene un size de 0x12800.

Si tu virus se inserta al final, deberás asegurarte de que no sobreescriba nada. Ahora, si quieres hacer mas grande la sección .text, ahi hay otro problema pues deberas agrandar la sección, escribirla con los datos actualizados, correr todas las otras secciones, y corregir todo los demás campos que están relacionados a un offset específico. Esto ultimo es muy complejo, por lo que se opta por agregar una nueva sección o buscar algun codecave para insertar tu virus.

En google hay muchos samples sobre inline-patching. Y sobre virus, el mejor lugar es este.

Cita de: harry_the_blogger en 22 Agosto 2014, 17:32 PM
La próxima vez tendré más cuidado antes de preguntar.

Si, ya veo...  :P  ;)

Saludos!
MCKSys Argentina

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


harry_the_blogger

Ok. Gracias por la respuesta. Puedes decirme en que parte del PE Header modifico el tamaño? O sera que el Cargador de Windows suma los tamaños de cada sección más el tamaño de las cabe eras???

Esa pagina llamada vxheavens ya la habia visitado antes, y tambien estoy leyendo unos cuantos sources de virus para ver que es lo que modifican en el PE Header. Vxheavens aparentemente está algo antigua, porque he encontrado tutorialez del año 1998, y algunoz cuantos del 2004.

Seria muy bueno que el foro elhacker tuviese sources de virus asi como los tiene vxheavens, aunque no se si tendrían problemas legales.

Vista mi blog es enriquemesa.blogspot.com

engel lex

#3
Cita de: harry_the_blogger en 24 Agosto 2014, 04:35 AM
Seria muy bueno que el foro elhacker tuviese sources de virus asi como los tiene vxheavens, aunque no se si tendrían problemas legales.

no tiene en general porque no han puesto casi, pero el foro no promueve actos no eticos, ni ilegales (que la gente confunda el termino "hacker" con alguien que hace cosas no éticas e ilegales, es un lío de hollywood)

de las reglas (el link en mi firma)

CitarI.A.1.b. Temas prohibidos.

   Para mantener un control sobre el contenido del foro, así como de su uso y legalidad, ciertos temas deben ser controlados, temas con este contenido podrían ser borrados o cerrados.

   Estos temas no pueden ser discutidos en el foro en absoluto, y la acción de hablar de ellos continuamente podría conllevar a una de las sanciones especificadas en la sección III.C, dichos temas son:
Phishing.
Pornografía (aún en el caso que sea legal no está permitida en el foro)
Discriminación.
Asuntos personales de terceros.
Actividades criminales
Solicitar Cracks y/o Serials
Hacking no ético
Juegos y aplicaciones piratas*.
   El motivo de que estos temas no puedan ser tratados en el foro, es debido a que no promovemos su difusión y/o al ser tratados, se estarían violando los derechos y la dignidad de otras personas.
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

scott_

Me pregunto que te traerás entre manos  :huh:

Si aprovecharse de los usuarios de Microsoft es un privilegio pues estoy sacado un script para eliminar éste virus. Te lo advierto  ::).

Un Cordial Saludo.
Si no intentas salvar una vida, jamás salvarás la de nadie más

MCKSys Argentina

Cita de: harry_the_blogger en 24 Agosto 2014, 04:35 AM
Puedes decirme en que parte del PE Header modifico el tamaño?

Si podría, pero creo que es mejor que lo descubras por ti mismo. No obstante, te dejo una ayuda.

Cita de: harry_the_blogger en 24 Agosto 2014, 04:35 AM
Esa pagina llamada vxheavens ya la habia visitado antes, y tambien estoy leyendo unos cuantos sources de virus para ver que es lo que modifican en el PE Header. Vxheavens aparentemente está algo antigua, porque he encontrado tutorialez del año 1998, y algunoz cuantos del 2004.

Si, tiene fuentes antiguos y otros no tanto. De todas formas, si revisas varios de los codigos, veras cosas "viejas" que aún están muy vigentes...

Saludos!
MCKSys Argentina

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


harry_the_blogger

#6
Cita de: MCKSys Argentina
Si podría, pero creo que es mejor que lo descubras por ti mismo.

MCKSys Argentina, gracias por la ayuda. Entonces seguiré leyendo y no habrá más opción que observar como infectan los virus de VXheavens y entender esa parte de su codigo. Vamos, por favor, diga cual es la manera que ya he buscado por toda la red y no encuentro como hacerlo

Cita de: owl-eyes en 24 Agosto 2014, 06:08 AM
Me pregunto que te traerás entre manos  :huh:

Si aprovecharse de los usuarios de Microsoft es un privilegio pues estoy sacado un script para eliminar éste virus. Te lo advierto  ::).

Un Cordial Saludo.

owl_eyes, entre manos, cuando aprenda a crear virus avanzados, tendré algo muy gordo entre manos.

Cita de: engel lex en 24 Agosto 2014, 05:50 AM
no tiene en general porque no han puesto casi, pero el foro no promueve actos no eticos, ni ilegales (que la gente confunda el termino "hacker" con alguien que hace cosas no éticas e ilegales, es un lío de hollywood)

de las reglas (el link en mi firma)


engel lex, en cuanto a tu respuesta, siempre he pensado, corrijanme si me equivoco, que un hacker es aquella persona que con mucho ingenio y conocimientos, saltea una o más restricciones impuestas por un sistema electronico (hardware y software), por ejemplo, hackear un PlayStation, en mi opinion, sería saltarse su proteccion anti-copia con ingenio y correr juegos.

Yo pienso que aspecto etico es algo que va aparte, porque en el fondo, los crackers son hackers que usan para malos fines sus habilidades.
Vista mi blog es enriquemesa.blogspot.com

harry_the_blogger

Hola, ya fui capaz de localizar y modificar las section headers.

¿Es posible hacer esta solución? Leer toda la sección de codigo y comprimirla, luego guardarla en la ultima sección. Escribir el virus al principio de la sección de codigo, y luego en tiempo de ejecucion descomprimir el host original, y sobreescribir el virus con el codigo del host.

Por favor, si pueden darme una idea mejor o mas sencilla estaría muy agradecido.
Vista mi blog es enriquemesa.blogspot.com

engel lex

Cita de: harry_the_blogger en 24 Agosto 2014, 12:51 PM
engel lex, en cuanto a tu respuesta, siempre he pensado, corrijanme si me equivoco, que un hacker es aquella persona que con mucho ingenio y conocimientos, saltea una o más restricciones impuestas por un sistema electronico (hardware y software), por ejemplo, hackear un PlayStation, en mi opinion, sería saltarse su proteccion anti-copia con ingenio y correr juegos.

Yo pienso que aspecto etico es algo que va aparte, porque en el fondo, los crackers son hackers que usan para malos fines sus habilidades.

no eso son acciones criminales, no necesariamente un hacker es un criminal, un hacker se va desde un experto en un tema referente de computacion, hasta una persona que modifica cosas para cambiar su fin original (desde programas hasta los life hackers)

los crackers son hackers cierto, pero si P->Q no significa que Q->P, para poder llegar a eso tuviste que pasar por toda la fase de aprendizaje de hacking, y luego malversar lo aprendido en pro de un fin personal o ilegal (no todos los crackers tampoco son no éticos)

por eso es que justamente uno de los libres más importantes del mundo de hacking es "el hacker etico", también el craking puede ser ético, ej, hace poco en una de las conferencias crakearon un (SO) telefono "super seguro" para mostrar que no lo era y que se tuviera cuidado con ello, eventualmente los desarrolladores taparon el hueco de seguridad...

justamente contra el movimiento original está cosas como hacerlo con fines propios o de terceros...

bueno, puedes leerte sobre ello desde la wiki, hasta el manifiesto hacker y libros al respecto...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.