Advertisement
Guest User

RSHCK12

a guest
Feb 12th, 2012
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. // dllmain.cpp : Defines the entry point for the DLL application.
  2. #include "stdafx.h"
  3.  
  4. // Injectar desde dll SndDrv
  5. #include "exports.h"
  6.  
  7. // Addy para cambiar armas
  8. #define WeaponMgr 0xA68F80                                
  9.  
  10.  
  11. BOOL WINAPI Iniciador(LPVOID param);
  12.  
  13. // Cshell
  14. DWORD dllfile;
  15.  
  16. // Entrada
  17. BOOL APIENTRY DllMain( HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved)
  18. {
  19.     switch (ul_reason_for_call)
  20.     {
  21.     case DLL_PROCESS_ATTACH:
  22.         DisableThreadLibraryCalls(hModule);
  23.         // Lanzar hilo del iniciador
  24.         CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Iniciador, NULL, NULL, NULL);
  25.         break;
  26.     case DLL_THREAD_ATTACH:
  27.     case DLL_THREAD_DETACH:
  28.     case DLL_PROCESS_DETACH:
  29.         // Nada
  30.         break;
  31.     }
  32.     return TRUE;
  33. }
  34.  
  35.  
  36. DWORD WINAPI Principal(LPVOID param) {
  37.     DWORD pWeaponMgr = *(PDWORD)(dllfile+WeaponMgr);
  38.     if (pWeaponMgr){
  39.         DWORD* m4a1 = (DWORD*)((*(DWORD*)(dllfile + WeaponMgr))+11*4);
  40.         DWORD* m4a1asilver = (DWORD*)((*(DWORD*)(dllfile + WeaponMgr))+351*4);
  41.         *m4a1 = *m4a1asilver;
  42.     }
  43.     return true;
  44. }
  45.  
  46. BOOL WINAPI Iniciador(LPVOID) {
  47.     // Esperar a que se cargue el módulo Cshell
  48.     Sleep(9800);
  49.     try {
  50.         dllfile = (DWORD)GetModuleHandleA("Cshell.dll");
  51.         // Si no se ha cargado ir a la excepción 1
  52.         if(dllfile == false) {
  53.             throw 1;
  54.         }
  55.     }
  56.     catch (int error) {
  57.         switch(error) {
  58.         case 1:
  59.             // Si el módulo CShell no se ha cargado, crear un nuevo hilo (Iniciador)
  60.             CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Iniciador, NULL, NULL, NULL);
  61.             break;
  62.         default:
  63.             //Error!
  64.             return false;
  65.         }
  66.     }
  67.     // Beep indicador
  68.     Beep(1000,1000);
  69.     // Si el módulo ya se cargó, iniciar el hilo principal
  70.     CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Principal, NULL, NULL, NULL);
  71.     return true;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement