[HOT] Avira Bypass

Iniciado por Karcrack, Junio 16, 2013, 06:29:48 PM

Tema anterior - Siguiente tema

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

Bueno, siendo Avira el antivirus que más me ha tocado los cojo*** a la hora de codear malware me puse a analizar porque saltaba la más famosa de sus detecciones (TR/Dropper.Gen)... Ésta salta por muchas razones... pero he descubierto una que no he visto nunca documentada en ningún foro :P

Básicamente Avira detecta como Dropper una aplicación en VB6 si ésta gasta __vbaAryLock/__vbaAryUnlock... Estas funciones sirven para evitar que al llamar a una función el Array que pasas como parámetro cambie de tamaño. Como dato diré que sencillamente llaman a sus funciones análogas en OLEAUT32.

Y ahora lo interesante ¿Cómo narices evitamos llamar a esas APIs si tenemos que pasar un item de un Array a una función? La única forma que se me ha ocurrido a mí es usando la estructura SAFEARRAY (de la que están compuestos todos los Arrays en VB6) para acceder al puntero con los datos del array.
Tal que así:
Código: php
DWORD[DWORD[VarPtrA(arr)] + &HC]


Siendo VarPtrA() una declaración especial de VarPtr() que acepte como entrada Arrays :D No pongo código de ejemplo para dejar algo de trabajo al lector :P

Saludos! ;D


Otro pequeño tip :D
Para saltarse en algunas ocasiones Avira-TR/Dropper.Gen o F-PROT-W32/VBTrojan.9!Maximus basta con establecer el FormCount del VBHeader a 0 aún teniendo formularios en tú aplicación (eso sí, éstos no se cargarán)
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer


Hace tiempo tontee por esos lares obteniendo algún que otro resultado (Hablando siempre desde el código XD), pero lo tuyo es superior bro, enhorabuena!



-Saludos-

 ??? No se por que se complican xD.
Ofuscando código lo tienes todo

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
??? No se por que se complican xD.
Ofuscando código lo tienes todo

Pero asi no se aprende...

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
??? No se por que se complican xD.
Ofuscando código lo tienes todo
¿Ofuscar el código? ¿El código que genera VB6? Eso sí es complicarse.

En otros lenguajes como C/ASM sí puedes simplemente ofuscar el código, aquí no basta con ofuscar el código porque la parte detectada tiene que ver con el paso de arrays como parámetros y la forma en que VB6 lo maneja.
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

He indagado sobre el lo que recomiendas, pero sin embargo tengo la duda de como pasas los datos del split.
Recomiendas algo? Usas Split() realmente?

Aprovecho para agradecerte por la info al inicio del post