Buenas! Como algunos ya sabrán existe un método para hacer Bypass a cualquier Anti-Hack/Plugin mediante la inyección de una DLL que tenga el mismo nombre que la del Anti-Hack o Plugin apenas se inicia el juego.
El problema es el siguiente el cual se encuentra en el código fuente de sus
Main.dll:
void CProtect::CheckPluginFile() // OK
{
if(this->m_MainInfo.PluginCRC32 == 0)
return;
CCRC32 CRC32;
DWORD PluginCRC32;
if(CRC32.FileCRC(this->m_MainInfo.PluginName,&PluginCRC32,1024) == 0)
ExitProcess(0);
if(this->m_MainInfo.PluginCRC32 != PluginCRC32)
ExitProcess(0);
HMODULE module = LoadLibrary(this->m_MainInfo.PluginName);
if(module == 0)
ExitProcess(0);
void (*EntryProc)() = (void(*)())GetProcAddress(module,"EntryProc");
if(EntryProc != 0)
EntryProc();
}
Como verán, se trata de que el
Main.dll primero comprueba el CRC de los plugins que se encuentren en el directorio de sus clientes, y si el CRC es correcto, hace la carga del plugin mediante
LoadLibrary, y de presentarse el exporte EntryProc, lo llama.
El problema aquí es que falta una comprobación para
verificar si el plugin ya ha sido cargado de antemano y también comprobar el CRC del plugin cuando es cargado, entonces si fue cargado de antemano significa que no ha sido cargado por el
Main.dll, y si el
CRC del plugin cargado no es el que corresponde significa que por alguna razón el plugin cargado no es el correcto, por lo cual procedemos a cerrar el proceso del juego:
Y en cuanto a el
Camera.dll, también se puede agregar la misma comprobación y ya con eso tendrán este problema solucionado :D