Misery (47 Posts hasta ahora) | | Bueno, ya que algunos me piden el código o como lo programé, les voy a decir algunas cosas para que investiguen o verifiquen.
Las dlls están programas en C++, ya que en VB (->VB6, sinó diría VB net), todabía sigo investigando y probando como hacer para cargar el DllMain como PE, sinó las haría en VB.
Pueden usar varios métodos, uno es modificando la memoria usando punteros.
Ej: DWORD *frmEntrenador = (DWORD*)0x004BEBFC;
O sinó mediante funciones para modificar la memoria.
Ej: #define frmEntrenador 0x004D166C
BYTE Entrenador[] = {0x90, 0x90, 0x90};
Entonces hacen:
void Bypass()
{
...
ModifyMemory((BYTE*)frmEntrenador, Entrenador, sizeof(Entrenador));
...
}
Y dentro del DllMain en DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
//Hack();
Bypass();
MessageBox(NULL,"Hacked!", "Successful Injection" ,NULL);
FreeLibraryAndExitThread(hModule, 0);
break;
Con respecto a encontrar el Address, abran el CE y empiecen a modificar código, donde les parezca, así aprendí yo, y empecé a entender un poco de ASM, yo no sé programar en ASM, es todo deducción nada más.
PD: las dlls las programo desde VC++ 6.0, todas las versiones 6.0 son las mejores.
Acá les dejo un ejemplo para buscaminas (winmine)
Link: http://www.rohitab.com/discuss/topic/28612-minesweeper-dll-tutorial/
Y para ver los módulos y manipularlos. (Advanced Process Manipulation)
Link: http://www.insecure.in/minesweeper_hack.asp
El proyecto: en Visual Studio 2008 (C++)
http://www.mediafire.com/?2p0zbm62c38oy75
http://www.4shared.com/file/seNmoIpx/Memoria.html? |