Add PE bytes v0.1.1

Iniciado por karmany, 29 Octubre 2009, 18:32 PM

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

karmany

Aunque lo he posteado también en ingeniería inversa, lo pongo aquí ya que puede resultar de mucha utilidad a cualquier programador para embeber archivos o bytes o lo que quieran...

Hace un tiempo en el siguiente enlace:
Compromiso de karmany
me comprometí a 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



Características:
-Sólo trabaja con datos 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 descubrir varios bugs importantes. Gracias desde aquí.
Quiero destacar que estoy trabajando en la nueva versión 0.1.2. Se corregirán varios bugs y lo más importante es que crearé un instalador evitando usar Molebox ya que saltan varios falsos positivos.

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

Enlace:
Add PE bytes 0.1.1 por karmany
Otro enlace:
Add PE bytes 0.1.1 por karmany

Actualización librería idioma Chino simplified:
Chinese Simplified Update
Otro enlace:
Chinese Simplified Update

MazarD

Muy cómodo, sencillo y bien presentado, voy a añadirlo a mi toolbox ya mismo.
Gracias por compartirlo karmany

Saludos!
-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net

Novlucker

Excelente  :D
En lo que respecta a tiempo invertido .. este tipo de tools llevan lo suyo  :o
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

APOKLIPTICO

Disculpen mi ignorancia pero tengo un par de preguntas:
- Cuando dicen "embeber bytes" a que se refieren???.
- "Cuando se pulsa el botón para añadir bytes aparece un messagebox contra lamers. Es código virtualizado." Que significa eso???

En cuanto al programa, es muy profesional y la verdad que se merece un premio, ya que para ser una version tan nueva, esta muy bien armado.

Yo propongo que se agregue a algun servidor de elhacker.net para que no se pierda, esos 4shared no son muy confiables....
Un abrazo
APOKLIPTICO
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

karmany

Gracias por los comentarios, y más siendo de vosotros.

"Cuando dicen "embeber bytes" a que se refieren???"
Creo que en ningún sitio digo exactamente "embeber bytes" sino "añadir bytes" o "embeber archivos". "embeber" significa para mi "introducir dentro de". Por ejemplo si tienes un archivo .txt y lo introduces dentro de un .exe y ese .exe funciona, eso es embeber ese archivo .txt en el exe.

Lo principal de Add PE bytes que no he visto en ningún otro programa (LordPE, PE Editor etc...) es que es capaz de embeber archivos en cualquier sección de un archivo con formato PE, incluído el PE header. Asimismo modifica el PE header para que cuando añadas bytes en cualquier sección, o embebas un archivo sea capaz de arrancar. Si modificas un archivo de Visual Basic tendrás que leer el archivo de ayuda para que funcione, ahí explico lo que hay que modificar.

El archivo de ayuda de Add PE bytes está embebido en el mismo exe de Add PE bytes, es decir, NO es un archivo aparte, sino que está en Add PE bytes y él mismo lo extrae de sí mismo, y lo ejecuta.



"Cuando se pulsa el botón para añadir bytes aparece un messagebox contra lamers. Es código virtualizado." Que significa eso???
Pues significa eso mismo. Usa Add PE bytes y pulsa el botón "Aplicar". En el momento que lo pulses aparece un MessageBox con mi nombre y mi dirección de correo. Si el programa no estuviera "minimamente protegido", modificar y eliminar ese messagebox sería muy fácil y yo estoy relacionado con ingeniería inversa, así que he virtualizado ese código para que ningún lamer (que no cracker) lo pueda modificar de forma sencilla. Código virtualizado es un código ofuscado, protegido, donde cualquier instrucción de Intel ha sido emulada en una máquina virtual para que no sea posible entender lo que hace. Hay que entender primero esa máquina virtual.
Es una medida muy simple de protección que se me ocurrió.

seclogman






karmany

Gracias.

Ha habido bastante gente que me ha preguntado cómo hago para embeber archivos, y cómo se utiliza en su totalidad Add PE bytes, porque hay gente que no entiende las opciones avanzadas.

Cualquier duda no tengo en inconveniente en solucionarlo en un nuevo post o por email o mp.

Es probable que haga un tutorial de cómo usar en toda su extensión el programa "Add PE bytes":
- Cómo añadir bytes o archivos.
- Cómo buscar zonas vacias para injertar código propio.
- Cómo embeber datos.
- Opciones avanzadas.
- Cómo se modifica el PE header. Por ej. es muy interesante para programas con UPX, para injertar código propio.
- Qué otros programas existen similares para embeber archivos. La mayoría son considerados como virus.

Cuando haga este tutorial, lo postearé aquí.

Un saludo
karmany

Ivanchuk

No paso seguido por esta sección, pero karmany que trabajo!. Imagino que has aprendido muchisimo con esto. Muy bueno.
Felicitaciones. ;-)
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

.;.

Enhorabuena por el software seguro que te habrá llevado mucho tiempo hacerlo.

Mis felicitaciones!

magicboiz

Hola Karmany

una pregunta, tengo un binario(.exe) que quiero modificar, en concreto añadir espacio en la sección .text (code), pero Add PE Bytes me dice que no se puede añadir espacio.....

¿Pur qué?

Gracias majo