[Admin] tierrilopes Posted April 16, 2016 Share Posted April 16, 2016 Para que serve? Verifica se os ficheiros do cliente têm o mesmo hash md5 do que os colocados na source do executável. Caso o hash seja diferente, o cliente não abrirá. Possíveis utilizações: Verificar se as libs foram modificadas Se algum das dll de cliente foi modificada Se algum ficheiro ficou corrompido com o download (caso tenha ficado o hash será diferente). Colocar o ficheiro verificar.h (em anexo) na vossa pasta Extern/include Abrir o ficheiro UserInterface/locale.cpp Adicionar este include (no inicio do ficheiro) #include "verificar.h" Por baixo do include que adicionaram, colar o seguinte código (código de exemplo dentro do Bloquear): void verificar_md5(char* cFile, char* hash) { MD5 verificar; if (strcmp(verificar.digestFile(cFile), hash)) { MessageBoxA(NULL, "Por favor utilize o patcher!", "Cliente corrompido", NULL); ExitProcess(0);}} void Bloquear(){ inicio: verificar_md5("granny2.dll", "f6b1a03647bbe56477060638d761f517"); verificar_md5("devil.dll", "8df4d4324e5755f1a0567db3c5be4c58"); verificar_md5("DSETUP.dll", "1768d2d5fb2868967b4684e9620de666"); verificar_md5("miles/mss32.dll", "3713b70df4337874fb32e2bd37dbf699"); verificar_md5("miles/mssa3d.m3d", "e089ce52b0617a6530069f22e0bdba2a"); verificar_md5("miles/mssds3d.m3d", "85267776d45dbf5475c7d9882f08117c"); verificar_md5("miles/mssdsp.flt", "cb71b1791009eca618e9b1ad4baa4fa9"); verificar_md5("miles/mssdx7.m3d", "2727e2671482a55b2f1f16aa88d2780f"); verificar_md5("miles/msseax.m3d", "788bd950efe89fa5166292bd6729fa62"); verificar_md5("miles/mssmp3.asi", "189576dfe55af3b70db7e3e2312cd0fd"); verificar_md5("miles/mssrsx.m3d", "7fae15b559eb91f491a5f75cfa103cd4"); verificar_md5("miles/msssoft.m3d", "bdc9ad58ade17dbd939522eee447416f"); verificar_md5("miles/mssvoice.asi", "3d5342edebe722748ace78c930f4d8a5"); Sleep(60000); goto inicio; } Dentro do void Bloquear () é onde especificam e adicionam mais ficheiros, sempre neste formato: verificar_md5("localização_relativa_do_ficheiro","hash_md5"); Para ativar este função, ainda dentro de UserInterface/locale.cpp, procurar por: void LocaleService_LoadConfig(const char* fileName){ E adicionar o seguinte debaixo: Bloquear(); Podem utilizar a seguinte ferramenta para gerar o código: verificar.h Link to comment Share on other sites More sharing options...
Dynamic Things Posted April 19, 2016 Share Posted April 19, 2016 Obrigado pela partilha, este tópico irá certamente ser uma ajuda a pessoas que procurar segurança contra hacks/cheats... Desta maneira torna muito mais difícil entrar com hacks no cliente visto que se o ficheiro for modificado ou alterado por outro o cliente não abrirá. Cumprimentos Gol .D Roger Link to comment Share on other sites More sharing options...
Guest ReFresh Posted April 16, 2018 Share Posted April 16, 2018 (edited) Can someone post me here the MD5 Encrypter? I can't download it. And under what I have to place : Bloquear(); ? Edited April 16, 2018 by ReFresh Link to comment Share on other sites More sharing options...
Guest ReFresh Posted April 19, 2018 Share Posted April 19, 2018 The game won't start with your code, so this release is useless. Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted April 19, 2018 Author Share Posted April 19, 2018 It works like a charm, I known some servers using it since 2014 with no issues. Use it as a thread: CreateThread(NULL, NULL, LPTHREAD_START_ROUTINE(Bloquear), NULL, 0, 0); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now