Proyecto Metamorph

Iniciado por [Zero], 24 Abril 2009, 23:31 PM

0 Miembros y 6 Visitantes están viendo este tema.

YST

Cita de: SλrκΥs en 11 Julio 2009, 15:50 PM
Perdonen mi ignorancia, pero cuales son las funciones de este virus? Parece ser que esta causando mucho efecto...

Saludos

No es un virus si no que es una herramienta para hacer que nuestro malware se salte algunos antivirus :P .


Yo le enseñe a Kayser a usar objetos en ASM

Karcrack

Cita de: YST en 11 Julio 2009, 20:24 PM
Cita de: SλrκΥs en 11 Julio 2009, 15:50 PM
Perdonen mi ignorancia, pero cuales son las funciones de este virus? Parece ser que esta causando mucho efecto...

Saludos

No es un virus si no que es una herramienta para hacer que nuestro malware se salte algunos antivirus :P .
Te equivocas, hace que cualquier malware sea completamente indetectado recompilandolo... :P Tal vez deba ser mas modesto... pero la version 2 hara eso y mas ;-)

YST

Cita de: Karcrack en 12 Julio 2009, 01:48 AM
Cita de: YST en 11 Julio 2009, 20:24 PM
Cita de: SλrκΥs en 11 Julio 2009, 15:50 PM
Perdonen mi ignorancia, pero cuales son las funciones de este virus? Parece ser que esta causando mucho efecto...

Saludos

No es un virus si no que es una herramienta para hacer que nuestro malware se salte algunos antivirus :P .
Te equivocas, hace que cualquier malware sea completamente indetectado recompilandolo... :P Tal vez deba ser mas modesto... pero la version 2 hara eso y mas ;-)

Ver para creer :P


Yo le enseñe a Kayser a usar objetos en ASM

Arkangel_0x7C5

la version 2, por lo que he visto va a ser como una navaja suiza. jeje

OffTopic: Solo le falta hacer bocatas

Saludos

[Zero]


"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

[Zero]

Actualicé el post con alguna información de la 2.0 y lo he ordenado un poco  :P. A ver si tenemos novedades pronto, sacaremos una beta de la gui en cuanto esté al 100% para asegurarnos de que funciona perfectamente  :laugh:.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

n3fisto

Excelente che me gusta... servira de mucho

karmany

Interesante proyecto..

Quiero comentar que cuando haces lo siguiente:
ISH->SizeOfRawData=ISH->SizeOfRawData+0x200;

No siempre el valor que hay que sumar es 200h bytes, esto depende del valor de file alignment. Tiene que ser:
ISH->SizeOfRawData=ISH->SizeOfRawData+múltiplo de file alignment;

La sección (intermedia) la puedes agrandar hasta un máximo del valor de Virtual size (ocupando la sección). La última sección puede tener un valor no múltiplo de file alignment y el programa funcionará correctamente.

He visto que preguntabais por el valor de SizeofImage. Este valor es la suma de la memoria virtual y es importantísimo ponerlo bien porque si no no funcionará. Tiene que ser múltiplo de Section Alignment redondeando por arriba.

Los valores de Virtual Address pueden no ser múltiplos de section alignment y normalmente indican dónde acaba realmente el código.(lo que ocupa).

Todo esto lo comento porque yo he hecho una aplicación para añadir bytes en secciones y me encontré con estos problemas.
Imagen:

[Zero]

Gracias karmany, luego de mucho intentarlo y de preguntas al gran Shaddy ( :xD) ya no tengo problemas, la v2 ya tiene para añadir secciones, añadir espacio a cualquier sección y más cosas sobre el PE. Me despistaron dos cosas, por eso no lo conseguía, uno lo que tu dices, que si no es la última sección tienes de límite el VirtualSize, ya que si agrandas más, la diferencia no se mapea en memoria. Lo otro fue que los compiladores suelen redondear alto el tamaño en disco de las secciones y luego ponen el VirtualSize más ajustando, quedando más pequeño que el SizeOfRawData, y eso me despistó bastante, pero ya por fin lo comprendí  ;D.

Ahora lo que más me quema es la IAT, tengo un código a medias para moverla, cambiar el orden de las entradas y reconstruírla con loader y sin loader, pero a medias, aún no conseguí terminarlo  :P.

Saludos y gracias

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

karmany

#49
He echado un vistazo al código.

Algunas secciones no se observa correctamente el nombre de la misma, esto es porque lo haces así:
wsprintf(sName,"%s",ISH->Name);

Para que los nombres se vean correctamente, es mejor no utilizar wsprintf, de este siguiente modo se verán correctos:
lstrcpyn(&sName, LPCSTR(ISH->Name), 9); //el máximo son 8 caracteres. lo he hecho para VC.

Creo que con las importaciones pasa algo parecido...
Un saludo

Edit...
Parece una tontería pero queda mucho mejor que los valores hexadecimales estén con formato de 8 bytes, es decir, en vez de hacer así:
wsprintf(sVOffset,"%X",ISH->VirtualAddress);

hacerlo así:
wsprintf(sVOffset,"%08X",ISH->VirtualAddress);