Muy buen programa.
Aunque en algunos archivos tarda demasiado en ejecutarse.
Lo he estado probando y he visto lo siguiente:
1-Poniendo la mayor ofuscación, he visto que en algún ejecutable mío hecho con MASM32, en las secciones dejaba bastante código sin modificar. Por ejemplo en mi programa estos son los datos de la sección .text(la que tiene el código):
Image Base: 400000
Sección: .text
Virtual Offset: 00001000
Virtual Size: 00000044
Raw Offset: 00000400
Raw Size: 00000200
El código va realmente de la dirección 401000 a 401044 y todo lo que hay de 401044 en adelante son 0 que se pueden modificar.
Pues Cactus Metamorph modifica desde 401044 hasta 4011B4.
Haciendo matemáticas:
4011B4 - 401000 = 1B4 bytes
Raw Size(.text) = 200; 200 - 1B4 = 4C (76 decimal)bytes sin modificar(tal vez sea uno más o uno menos, da lo mismo).
Realmente el algoritmo que has diseñado me parece fabuloso, pero solamente quería comentarte esto que he visto.
2-No se puede drag and drop... esto no te cuesta nada implementarlo.
3-Sería interesante que en vez de poner fechas aleatorias de creación, acceso y modificación, el usuario pudiese poner la que él quisiera.
4-Esto va unido al punto anterior. En algunos archivos sólo es necesario cambiar la fecha de creación del mismo, sin embargo, Cactus Metamorph obliga siempre a modificar código. Sería interesante y seguro que muy fácil de hacer, un nivel 0 de ofuscación destinado únicamente a modificar las fechas de creación, modificación etc... Además esto es interesante si usas SetFileTime(no lo sé ni lo he buscado), pero es interesante ya que al modificar estos tiempo el archivo permanece inalterado.
Muy buenos Cactus Soft.
Un saludo
Gracias por tu crítica karmany, te voy a responder algunos puntos.
1- Depende de cada ejecutable, el agoritmo podrá modificar más o menos offset's. Con las pruebas que hice he visto que los ejecutables compilados en ASM, MASM, FASM, etc... son muy difíciles de modificar, ya que hay pocos espacios donde cactus metamorph pueda "atacar". Intenté diseñar un mismo algoritmo funcional para cualquier ejecutable compilado (ya sea VB, C, Delphi, AMS, etc...9 pero como comprenderás no puedo hacer que sea igual de efectivo en todos los casos.
2- Lo del drag & drop lo implementaré en la próxima reviw de cactus metamorph
3- En principio lo iba a hacer así, pero si el usuario ponia una fecha del tipo: 30/02/2008 (esta fecha no existe) o una hora tipo: 26:12:005 (esta hora tampoco existe) el programa se bloqueaba y provocaba error, no tenía tiempo (ni ganas) de programar un forzaje de datos y para evitar eso programé la función Random y listos... si tengo tiempo programaré el forzaje de datos y listos.
4- Es cierto, en la proxima review permitiré al usuario seleccionar si desea ofuscar o no el binario, permitiendo solo usar la función de SetFileTime a solas.
Saludos y gracias por tomarte tu tiempo para mirar mi soft
