GeMaCrypter Version 1.1 Beta

Iniciado por Ferсhu, 28 Marzo 2008, 00:40 AM

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

Ferсhu

Citarentonces 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.

~~

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

byebye

pq usais valores fijos para algunos campos? eso va a petar en muchos ejecutables.

Ferсhu

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

byebye

#14
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.

Ferсhu

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



byebye

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:


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.

Ferсhu

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??


byebye

pq necesitas el nombre? 64 en 100 en hexadecimal eso es lo que tienes que pasarle a getprocaddress.

Ferсhu

#19
ahh listo. ahora veo q kede algo terminado :p

Ya esta terminado.

GeMaCrypter V 1.1

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.