Cita de: APOKLIPTICO en 7 Agosto 2012, 02:58 AM
Si en vez de cargarlas en tiempo de diseño las APIs, lo cual se puede ver con depends o algún otro programa que vea las funciones que importa el programa, se cargan dinámicamente en tiempo de ejecución, estos ya no aparecen. Si uno abre con un editor hexadecimal el ejecutable, va a haber en la parte de los strings las apis. Si uno lo cifra y luego lo descifra en tiempo de ejecución, sólo se va a poder saber esto si se debuggea el programa, si uno evita que el programa se pueda debuggear o emular, no hay manera de saber qué APIs se cargan.
Tanto baile .... para hookear un par de funciones (o más fácil? correr el binario sobre wine con APIs modificadas, menos drama), y saltearse todo el asunto del depurador ... Apenas se vea LoadLibrary() y GetProcAddress() en la tabla y "garbage" en el editor, unx sabe en dónde esperar la versión descifrada de ese garbage.
Saludos.
P.S → Lo del cifrado no lo habías mencionado, aún así sigue siendo al pedo.