Está en C++. El cifrado es un XOR que hice yo, las cadenas no se pueden ver en el binario, pero en cuanto arranca el programa se descifran para poder trabajar con ella y se cargan en el stack.
La mayoría de los imports están hechas de manera dinámica y los strings que se le pasa a las funciones getprocaddress y getmodulehandle están cifrados. Contame de esos caminos alternativos... Para mi está detectando cosas como que por ejemplo se instala como servicio, o que modifica el registro.
PD: probé AVDevil y también ZeroDetection pero ninguno me dió buen resultado, estoy tratando de hacerlo pasar contra el F-Protect utilizando el Coranti, que es un AV que tiene varios engines de AV en uno.
Okay, tranqui che, estoy aprendiendo. Y funciona perfectamente con los procesos de 32 bits. Explicame como es eso de inyectar el array de 64 bits. Y como harían las personas "no perezosas"?
No, el 0x00000000 (8 ceros porque es una dirección de 32 bits) es un error, no se puede acceder a esa dirección de memoria. Es por eso que crasheaba el programa.
Osea, este es el que más salta, tiene un diseño modular el virus, este es el núcleo, el que menos quiero que se pueda detectar. Los otros tienen 1, 2, 0 y 5 detecciones.