Foro de elhacker.net

Seguridad Informática => Abril negro => Mensaje iniciado por: Ferсhu en 28 Marzo 2008, 00:40 am



Título: GeMaCrypter Version 1.1 Beta
Publicado por: Ferсhu en 28 Marzo 2008, 00:40 am
Ya se que movieron el post a el hilo de contribucciones q esta pegado, pero abro este hilo aparte para las problemas, dudas, comentarios y/o sugerencias, ya que en el otro hilo no se permiten.


http://foro.elhacker.net/index.php/topic,146962.msg978629.html#msg978629

Citar
Hola, les presento a GeMaCrypter, por ahora en la version beta, quizas mas adelante este la version final.

   
  • cifra todas las secciones de un ejecutable.
  • Borra la IT original y carga la IAT en tiempo de ejecucion.
  • Agrega una nueva sección con el codigo del crypter.


Hay que aclarar que los datos que no esten definidos como sección no se va a cifrar.

Como es la version beta, algunos archivos quedan corruptos despues de encriptarlos, ya sea por q ya estan empacados, o por que el programa utiliza datos que hay luego de la ultima sección en el header, o etc.

Descargar GeMaCrypter
Código:
http://lawebdeferchu.hyperphp.com/programas/downloads.php?nombre=GeMaCrypter

GeMaCrypter V1.1
Código:
http://lawebdeferchu.hyperphp.com/programas/downloads.php?nombre=GeMaCrypterV1.1

Saludos!!


Título: Re: GeMaCrypter Version Beta
Publicado por: Freeze. en 28 Marzo 2008, 01:00 am
Hola, Felicitaciones ;)

- Me dejo mi exe inservible :P Me dice algo de WriteProcessMemory
- Archivos con espacios no funcionan :P Ejemplo:

Fofo fofito.exe

abre un archivo llamado fofito y sale error :P


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 28 Marzo 2008, 01:06 am
Citar
Me dejo mi exe inservible

como ya dije es version beta y algunos quedan corruptos.

Citar
Archivos con espacios no funcionan Ejemplo:

Fofo fofito.exe

aprende a pasar argumentos a archivos por linea de comandos jaja  :xD

o simplemente apreta TAB y busca el archivo :p



Título: Re: GeMaCrypter Version Beta
Publicado por: ~~ en 30 Marzo 2008, 18:11 pm
Ta bien ^^

Con los archivos en VB peta, al añaadir la nueva sección. Los archivos en VB tienen la "particularidad" de q despues del section header tienen la referencia a la dll MSVBVM60.DLL, fijate:
Código:
.text............................... ..`.data........ ....... ..............@....rsrc........0.......0..............@..@.,%A............MSVBVM60.DLL

Y tu al encritarlo lo sobreescribes:
Código:
.text............................... ....data........ ....... ..............@....rsrc........0.......0..............@....GeMa........@.......P..............@...

Lo q tienes q hacer es añadir los 0x28 bytes de tu sección en el section header desplazando totalmente el archivo, pero claro, asi se te descuadra todo, asi q tienes q borrar 0x28 bytes de los q hay justamente despues de MSVBVM60.DLL y ya te vuelve a encajar todo (no me e mirado con detalle el archivo resultante, pero parece q ese es el fallo o uno de ellos, por q no consigo reajustarlo)

De todas maneras lo de añadir una sección no te lo recomiendo, da muchisimos problemas, yo te recomendaría q ampliases el tamaño de la última sección unos pocos bytes y metas ahí el codigo de descifrar
Ademas el Kav detecta como virus un archivo con una sección añadida a mano...

A, y los el codigo para descifrar mejor haztelo en asm, q lo has debido de hacer en C y ocupa bastante...

Salu2, muy buen trabajo tio, felicidades


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 30 Marzo 2008, 20:47 pm
Citar
Con los archivos en VB peta, al añaadir la nueva sección

claroo

Citar
Como es la version beta, algunos archivos quedan corruptos despues de encriptarlos, ya sea por q ya estan empacados, o por que el programa utiliza datos que hay luego de la ultima sección en el header, o etc.

lo q se deberia hacer, teoricamente, es agregar la sección, desplazar el contenido 0x200 pos (FileAlignment), y sumarle lo mismo a PointerToRawData de cada sección, pero igualmente puede fallar ya q kisas no busca esos datos al final del "header section", sino q los busca al final de N's "header section". Pero hay q ver bien como desplazar por q no se puede desplazar 28 bytes y ya, hay q hacerlo de a "blokes", y lo q sobra se rellena con basura o con lo q se necesite q este ahi. :p

pero todo eso es teoricamente por q todavía ni lo probe :p



Título: Re: GeMaCrypter Version Beta
Publicado por: Gabrunix en 30 Marzo 2008, 20:57 pm
felicidades ahora hay que pensar en la versión final


Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 1 Abril 2008, 00:33 am
para el problema de los archivos en vb tienes que poner el boundimport a 0, tanto la rva como el tamaño y funciona bien. lo hablamos esto hace un tiempo en el foro y no recuerdo quien dio con que era ese el fallo.


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 1 Abril 2008, 06:25 am
Probe eso pero sigue sin funcionar, luego cuando tenga tiempo y me ponga a hacer la otra version mejoro eso, kisas sake todas las secciones y ponga una sola y q cargue todo en ejecucion, preo bueno ahora estoy haciendo otras cosas dsp sigo con eso :p



Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 1 Abril 2008, 09:57 am
entonces es oq fallara alguna otra cosa, yo he probado y le he añadido una sección a un programa en vb y como te digo funciona perfecto.


Título: Re: GeMaCrypter Version Beta
Publicado por: Hendrix en 1 Abril 2008, 11:30 am
para el problema de los archivos en vb tienes que poner el boundimport a 0, tanto la rva como el tamaño y funciona bien. lo hablamos esto hace un tiempo en el foro y no recuerdo quien dio con que era ese el fallo.

Creo que fue Karmany (moderador de cracking), me trajo de cabeza esto bastante tiempo, y al final se reparaba asi  :xD

Un Saludo  :)


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 1 Abril 2008, 19:38 pm
Citar
entonces es oq fallara alguna otra cosa, yo he probado y le he añadido una sección a un programa en vb y como te digo funciona perfecto.

Si es otra cosa, por q me deja la cabecera corrupta, y con los demas no hace eso.


Título: Re: GeMaCrypter Version Beta
Publicado por: ~~ en 1 Abril 2008, 20:09 pm
Mini-tuto muy rapido (pruebas hechas con un ejecutable en VB q es solo el form, sin nada mas ;)

- Añadimos en  la section table 0x28 bytes para nuestra sección (sin sobreescribir lo siguinte, los insertas)
- Borramos 0x28 bytes de los q tienen ceros de detras de donde dice MSVBVM60.DLL
- A la nueva sección le ponemos:
 
  • Name: El q kieras
  • VirtualSize: Depende del codigo q kieras meterle, eso ya lo calculas tu
  • VirtualOffset: 4000 (weno ya sabes q con el endiasn te kedaria 00 40 00 00  :P)
  • RawSize: 1000
  • RawOffset: 4000
  • Los siguientes 12bytes ya sabes q son a 0
  • Characteristics: Las q te de la gana

- Añades 0x1000 bytes al final del archivo
- Sumas uno al number of setions y pones el size image a 5000
- BoundImport a 0 (esta en el offset 188 en este archivo :P)

Y le voilá, el archivo tiene una sección nueva y funciona a las mil maravillas, te subo el q acabo de hacer según te anotaba los pasos para q le heches un ojo:
http://rapidshare.com/files/104097423/Hola.exe.html

Salu3

PD - No me quiero asignar meritos, esto me lo enseñó Hendrix ;)
http://foro.elhacker.net/index.php/topic,181258.msg863166.html


Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 1 Abril 2008, 21:03 pm
pq usais valores fijos para algunos campos? eso va a petar en muchos ejecutables.


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 1 Abril 2008, 21:25 pm
El problema de la sección ya se soluciono con lo del bound import. pero aca el tema para q ande el crypter no es solo lograr agregar la sección.

estuve probando unas cosas y ya soluciono algunos errores q daba con otros archivos.

para no hacer mucho lio la sección de resourse decidi no encriptarla :p

Esta todo casi listo salvo x un pekeño problemita, parece ser q en los programas de VB en la it no aparece "ThunRTMain", pero luego la utiliza, nose de donde la saca jaja. Si reparo esa direccion en la iat en mi archivo VB cifrado funciona todo bien, pero claro yo la reparo x q se donde la tengo q poner.

Les cuento q el cripter lee toda la it y va "reparando" en ejecucion la iat q no existia en el archivo cifrado, pero al no tener datos de esa funcion no sabe q la tiene q cargar ya q no existe en la it original, eso lo puedo solucionar cargandola a capricho para aplicaciones vb, pero igualmente no tengo la direccion en la iat donde escribir.

kisas dando vueltas asi se pueda, pero trato de hacerlo mas universal no me gustara ponerlo como capricho.

ThunRTMain y la re.....jaja


Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 1 Abril 2008, 21:43 pm
lo de los recursos es un porculo jeje, yo estoy haciendo unas pruebas y le paso un simple xor y en algunos va en otros no..... cosa rara, ya veremos a ver.

¿tu como revisas la iat? estas teniendo en cuenta los ordinals?


PD: acabo de verificarlo, es importada por ordinal. miralo y veras, 100 en decimal y 64 en hex. depende que programa uses te lo dara de una o de otra forma. yo uso peview y me lo da en hex y el olly en decimal.


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 1 Abril 2008, 22:41 pm
ya lo solucione pero a metodo capricho jaja.

una instruccion antes del entrypoint esta el jmp a ThunRTMain asi q leyendo OEP - 4 tengo la dire y listo me funciona jaja cuack, dejo andando perfecto al ejectuable, PERO NO QUIERO HACERLO ASI jeje.

Citar
¿tu como revisas la iat? estas teniendo en cuenta los ordinals?

creo q de esa forma no, a q te referis??

yo leo los descriptores, voi "navegando" x los punteros, leo los nombres y los offset :p




Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 1 Abril 2008, 23:32 pm
si, pero en el caso este no hay nombre, hay un numero ¿tu codigo tiene encuenta eso? si no lo tiene la iat no sera correcta.

mira me refiero a esto:

Código:
sdll   db "user32.dll",0
fnc    dd 377     ; esto es el ordinal de una funcion. pueden estar tb por su nombre, pero no siempre es asi.   

push sdll
call [LoadLibrary]

push [fnc]
push eax
call [GetProcAddress]

del mismo modo el main del vb es 100, miralo y veras. el olly te tiene que marcar algo asi:

jmp#100.Nombre_de_funcion

y en otras solo jmp.Nombre_de_funcion

entonces la primera esta en ordinal.


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 2 Abril 2008, 05:43 am
Ahh ya te entendi, no no tiene en cuenta eso, los saltea jaja.

figura un 0x80000064. El 80 esta para indicar q se da el numero de la funcion??

Bueno en ese caso comparo el offset q leo y si tiene el 80 busco la funcion, el problema es q necesito el nombre para dicho ordinal.

Existe alguna funcion q me de el nombre de la funcion segun el ordinal??

 


Título: Re: GeMaCrypter Version Beta
Publicado por: byebye en 2 Abril 2008, 11:25 am
pq necesitas el nombre? 64 en 100 en hexadecimal eso es lo que tienes que pasarle a getprocaddress.


Título: Re: GeMaCrypter Version Beta
Publicado por: Ferсhu en 2 Abril 2008, 19:07 pm
ahh listo. ahora veo q kede algo terminado :p

Ya esta terminado.

GeMaCrypter V 1.1

Código:
http://lawebdeferchu.hyperphp.com/programas/downloads.php?nombre=GeMaCrypterV1.1



PD: Tengo q poner el link con etiquetas de codigo, por q al hacer click te re dirige a otra pagina.