Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: karmany en 29 Octubre 2009, 18:28 pm



Título: Add PE bytes v0.1.1
Publicado por: karmany en 29 Octubre 2009, 18:28 pm
Hace un tiempo en el siguiente enlace:
Compromiso de karmany (http://foro.elhacker.net/ingenieria_inversa/el_studpe_me_esta_volviendo_loco-t255007.0.html)
me comprometí ha hacer un programa que sirviera para añadir bytes a la última sección. Lo he ido mejorando poco a poco y lo envío ahora ya que pienso que puede ser de utilidad.

Bueno, por fin después de corregir ciertos fallos (que sólo se producían en Windows XP chino) he conseguido sacar la versión estable 0.1.1


(http://img510.imageshack.us/img510/425/38917145.png)

Características:
-Sólo trabaja con valores hexadecimales.
-Permite añadir bytes (o embeber archivos) en cualquier sección de un ejecutable, incluído el PE Header!
-Permite añadir bytes (o embeber archivos) al final de cualquier ejecutable, fuera de las secciones.
-Permite añadir cuantas secciones se quieran (hay que tener en cuenta el tamaño del PE Header ya que sino podemos sobreescribir la primera sección). Flag: E0000020 nombre:karmany
-Multilenguaje. He enviado 3 lenguajes: Chino simplified, inglés (por defecto y no hace falta librería) y español. Simplemente hay que poner la librería language.dll que corresponda junto al programa.
-La librería language.dll en inglés es simplemente para que cada uno la modifique y ponga el idioma que uno quiera.
-El archivo de ayuda ha sido EMBEBIDO con "Add PE bytes". Este es por ej. uno de los usos que podemos utilizar.
-Tiene soporte UNICODE y permite abrir cualquier archivo con este formato.
-El archivo de ayuda está embebido y pienso que el programa es tan fácil de usar que no requiere del mismo.
-Está programado en VC++ 8.0 pero los movimientos de bytes están en ensamblador para aumentar la velocidad al máximo.
-Cuando se pulsa el botón para añadir bytes aparece un messagebox contra lamers. Es código virtualizado.

Este programa lo hice porque a un forero se lo prometí y he intentado hacerlo lo mejor posible. Espero que os sea de utilidad y sin dudarlo, cualquier problema que os salga comentarmelo por email, estaré agradecido.

Un saludo.

PD. Quiero dar las gracias especialmente a crfan que me ha ayudado a descubri varios bugs importantes. Gracias desde aquí.

Datos del rar:
Tamaño: 196.092 bytes
HASH md5-128: D83132275D899CB07C70DA2D3EC96022
Contraseña: karmany

Enlace:
Add PE bytes 0.1.1 por karmany (http://www.4shared.com/file/144656016/7831397f/Add_PE_bytes_v011.html)

Actualización librería idioma Chino simplified:
Chinese Simplified Update (http://www.4shared.com/file/145091038/85b64beb/Chinese_Simplified.html)


Título: Re: Add PE bytes v0.1.1
Publicado por: Jubjub en 29 Octubre 2009, 19:04 pm
Simplemente perfecto.

Lo del messagebox contralammers no lo entendi, estaria bien saber en que consiste :P


PD: Ya le encontre un perfecto uso, gracias eternas ;D


Título: Re: Add PE bytes v0.1.1
Publicado por: [Zero] en 29 Octubre 2009, 19:27 pm
Buenísimo karmani  :), los que hayan intentado hacer algo parecido sabrán el mérito que tiene, yo personalmente me volví loco con el SizeOfImage y los VirtualSize  :xD. Está en C/C++? Delphi?

Saludos


Título: Re: Add PE bytes v0.1.1
Publicado por: ThunderCls en 29 Octubre 2009, 21:05 pm
muchisimas gracias por compartir, esta muy bueno, la verdad  ;D
por cierto, el proceso de embebido solo consiste en indicar un archivo?
o se necesitan otros pasos adicionales. gracias


Título: Re: Add PE bytes v0.1.1
Publicado por: karmany en 29 Octubre 2009, 23:18 pm
Gracias por los comentarios.

1.- El MessageBox, lo hice pues por probar... ya que estamos en Ingeniería Inversa tendré que poner alguna mini-protección. De todos modos si te molesta esa ventana me lo comentas y ya te la quitaré...

2.- El programa está hecho en C++ pero tiene código en ASM para hacer todo lo más rápido posible.

3.- Para embeber un archivo hay que indicarlo y además poner el número de bytes. Por eso hay una casilla que pone el tamaño del archivo a embeber. Imagina que tienes un archivo de 5 bytes pero quieres añadir 6 bytes, pues tendrías que señalar el archivo y poner 6 bytes y el patrón, ya que ese sexto byte no pertenece al archivo y tienes que decirle a Add PE bytes qué valor quieres darle.

Una duda que tienen varias personas: no se puede en determinadas secciones añadir los bytes que uno quiera... Add PE bytes puede añadir el máximo número de bytes por sección y eso lo marca en un textbox: Nº máx bytes... No intentar añadir más bytes de los que indica ese textbox porque dará error. Es lógico.


Título: Re: Add PE bytes v0.1.1
Publicado por: ThunderCls en 29 Octubre 2009, 23:26 pm
si, esa parte la entiendo. pero mi duda esta en el momento que desee usar ese archivo embebido
en el ejecutable, por ejemplo en esta misma aplicacion dices que la ayuda esta embebida. mi pregunta
es como haces para luego llamar ese archivo embebido desde el ejecutable y poderlo ejecutar como
si estuviera en disco. no se si se me entiende  :huh:


Título: Re: Add PE bytes v0.1.1
Publicado por: karmany en 29 Octubre 2009, 23:28 pm
Me la acaban de preguntar en CrackSLatinoS. Acércate por ahí, que es muy sencillo.


Título: Re: Add PE bytes v0.1.1
Publicado por: ThunderCls en 29 Octubre 2009, 23:31 pm
ok, gracias  ;)