Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.39 KB | None | 0 0
  1. #include "dll.h" // On inclut le fichier d'en tête qui contient les variables basiques et les fonctions Win32.
  2.  
  3. HINSTANCE hInstance; // Buffer pour plus tard.
  4.  
  5. void WriteMemory( DWORD Address, void * ValueToWrite, int Size ) // Ceci est une fonction qui pourra nous servir pour écrire dans la mémoire (en beta).
  6. {
  7.     memcpy( (void*)Address, ValueToWrite, Size ); // On copie l'intérieur de ValueToWrite à l'addresse Address en prenant en compte sa taille.
  8. }
  9.  
  10. void ReadMemory( DWORD Address, void * Buffer, int Size ) // Ceci est une fonction qui pourra nous servir pour lire dans la mémoire (en beta).
  11. {
  12.     memcpy( Buffer, (void*)Address, Size ); // On copie "la taille de Buffer" bytes qui se situe à l'addresse Address dans Buffer, la conversion sera auto.
  13. }
  14.  
  15. DWORD WINAPI ThreadProc( LPVOID lpParam ) // Ceci est donc "le" contenu de la DLL, le code qu'elle va éxécuter.
  16. {
  17.     while (1)
  18.     {
  19.         char Cheat1[100]; // Variable cheat 1
  20.         GetPrivateProfileStringA("CHEAT","Cheat1","error",Cheat1,100,"arkenix.ini"); // Value de la variable cheat 1
  21.    
  22.         if(!strcmp(Cheat1,"On")) // Si Cheat 1 = On > hack ok !
  23.         {
  24.             char Cheat1Type[100];
  25.             GetPrivateProfileStringA("CHEAT1","Type","error",Cheat1Type,100,"arkenix.ini"); // Value de la variable cheat 1 Type
  26.             if (!strcmp(Cheat1Type,"string")) // SI c'est du string hack
  27.             {
  28.                 char Val1[100];
  29.  
  30.                 DWORD Add1 = (DWORD)GetPrivateProfileIntA("CHEAT1","Add",0,"arkenix.ini");
  31.                 GetPrivateProfileStringA("CHEAT1","Val","error",Val1,100,"arkenix.ini");
  32.                 int Byt1 = (int)GetPrivateProfileIntA("CHEAT1","Byt",4,"arkenix.ini");
  33.                 WriteMemory(Add1, Val1, Byt1 ); // On écrit le contenu de Val à l'addresse contenu dans Add.
  34.                 WritePrivateProfileStringA("CHEAT","CHEAT1","Off","arkenix.ini");
  35.             }
  36.             else if(!strcmp(Cheat1Type,"number")) // Si c'est autre que string hack
  37.             {
  38.                 DWORD Add1 = (DWORD)GetPrivateProfileIntA("CHEAT1","Add",0,"arkenix.ini");
  39.                 int Val1 = (int)GetPrivateProfileIntA("CHEAT1","Val",0,"arkenix.ini");
  40.                 int Byt1 = (int)GetPrivateProfileIntA("CHEAT1","Byt",4,"arkenix.ini");
  41.                 WriteMemory(Add1, &Val1, Byt1 ); // On écrit le contenu de Val à l'addresse contenu dans Add.
  42.                 WritePrivateProfileStringA("CHEAT","CHEAT1","Off","arkenix.ini");
  43.             }
  44.         }
  45.         char Cheat2[100]; // Variable cheat 2
  46.         GetPrivateProfileStringA("CHEAT","Cheat2","error",Cheat2,100,"arkenix.ini"); // Value de la variable cheat 2
  47.    
  48.         if(!strcmp(Cheat2,"On")) // Si Cheat 2 = On > hack ok !
  49.         {
  50.             char Cheat2Type[100];
  51.             GetPrivateProfileStringA("CHEAT2","Type","error",Cheat2Type,100,"arkenix.ini"); // Value de la variable cheat 2 Type
  52.             if (!strcmp(Cheat2Type,"string")) // SI c'est du string hack
  53.             {
  54.                 char Val2[100];
  55.  
  56.                 DWORD Add2 = (DWORD)GetPrivateProfileIntA("CHEAT2","Add",0,"arkenix.ini");
  57.                 GetPrivateProfileStringA("CHEAT2","Val","error",Val2,100,"arkenix.ini");
  58.                 int Byt2 = (int)GetPrivateProfileIntA("CHEAT2","Byt",4,"arkenix.ini");
  59.                 WriteMemory(Add2, Val2, Byt2 ); // On écrit le contenu de Val à l'addresse contenu dans Add.
  60.                 WritePrivateProfileStringA("CHEAT","CHEAT2","Off","arkenix.ini");
  61.             }
  62.             else if(!strcmp(Cheat2Type,"number")) // Si c'est autre que string hack
  63.             {
  64.                 DWORD Add2 = (DWORD)GetPrivateProfileIntA("CHEAT2","Add",0,"arkenix.ini");
  65.                 int Val2 = (int)GetPrivateProfileIntA("CHEAT2","Val",0,"arkenix.ini");
  66.                 int Byt2 = (int)GetPrivateProfileIntA("CHEAT2","Byt",4,"arkenix.ini");
  67.                 WriteMemory(Add2, &Val2, Byt2 ); // On écrit le contenu de Val à l'addresse contenu dans Add.
  68.                 WritePrivateProfileStringA("CHEAT","CHEAT2","Off","arkenix.ini");
  69.             }
  70.    
  71.         }
  72.     }
  73.    
  74.     ExitThread(0); // On "supprime" le thread créé par la fonction CreateThread. (On ferme la DLL)
  75.  
  76.     return 1; // On retourne "n'importe quoi" pour être en accord avec le type de fonction.
  77. }
  78.  
  79. BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved ) // Cette fonction est appelé lorsque quelque chose intéragit avec la DLL.
  80. {
  81.     if( ul_reason_for_call == DLL_PROCESS_ATTACH ) // Dans le cas où la DLL vient d'entrer dans un processus.
  82.     {
  83.         hInstance = hModule; // On récupère "l'envirronement" de la DLL qui pourra être utile plus tard.
  84.         CreateThread(0, 0, ThreadProc, 0, 0, 0); // On lance notre propre code.
  85.         MessageBoxA(NULL,"Injected!","Arkenix",NULL); // On affiche un messag qui confirme l'injection !
  86.     }
  87.  
  88.     return TRUE; // On retourne que la DLL s'est correctement injectée.
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement