OldSchoolHack

Registrieren / Anmelden Deutsch

NonSDK Project

icon Thema: NonSDK Project

Anmeldungsdatum: Aug 2007

Beiträge: 8643

Benutzer-Bewertung:

199 positiv
33 negativ
Tagchen,

heute habe ich angefangen wieder eine ESP Version meines CSS Hacks zu machen. Da ich nicht das SDK benutzen, muss ich alle Funktionen von Hand nachbauen. Vorteil dadran ist, dass man für kleinere Hacks auf das SDK verzichten kann und dadurch die DLL sehr klein gehalten wird.

Hier schonmal mein Anfang:

CPP Code:
  1. typedef void* (*CreateInterfaceFn)(const char *pName, int *pReturnCode);
  2.  
  3. CreateInterfaceFn CaptureFactory(char *FactoryModuleName)
  4. {
  5. CreateInterfaceFn ret = NULL;
  6.  
  7. while(!ret)
  8. {
  9. HMODULE FactoryModule = GetModuleHandleA(FactoryModuleName);
  10.  
  11. if(FactoryModule)
  12. ret = reinterpret_cast<CreateInterfaceFn>(GetProcAddress(FactoryModule,"CreateInterface"));
  13.  
  14. Sleep(10);
  15. }
  16.  
  17. return ret;
  18. }
  19.  
  20. void *CaptureInterface(CreateInterfaceFn Fn, char *InterfaceName)
  21. {
  22. unsigned long *ret = NULL;
  23.  
  24. while(!ret)
  25. {
  26. ret = reinterpret_cast<unsigned long*>(Fn(InterfaceName,NULL));
  27. Sleep(10);
  28. }
  29.  
  30. return ret;
  31. }
  32.  
  33. DWORD cEntList = *(DWORD*)CaptureInterface(CaptureFactory("client.dll"),"VClientEntityList003");
  34. DWORD cEngine = *(DWORD*)CaptureInterface(CaptureFactory("engine.dll"),"VEngineClient013");
  35.  
  36. int GetLocalPlayer()
  37. {
  38. int ret = 0;
  39. _asm
  40. {
  41. MOV ECX, DWORD PTR DS:[cEngine]
  42. MOV EAX, DWORD PTR DS:[ECX]
  43. CALL DWORD PTR DS:[EAX+0x30]
  44. MOV ret, EAX
  45. }
  46. return ret;
  47. }
  48.  
  49. CBaseEntity *GetEntityByIndex(int index)
  50. {
  51. CBaseEntity *ret = null;
  52. _asm
  53. {
  54. MOV ECX, DWORD PTR DS:[cEntList]
  55. MOV EAX, DWORD PTR DS:[ECX]
  56. PUSH index
  57. CALL DWORD PTR DS:[EAX+0xC]
  58. MOV ret, EAX
  59. }
  60. if(ret == null)
  61. return null;
  62. _asm
  63. {
  64. MOV EDX, DWORD PTR DS:[ret]
  65. MOV ECX, EAX
  66. CALL DWORD PTR DS:[EDX+0x1C]
  67. MOV ret, EAX
  68. }
  69. return ret;
  70. }
  71.  
  72. CBaseEntity *GetLocalEntity()
  73. {
  74. return GetEntityByIndex(GetLocalPlayer());
  75. }
  76.  
  77. int GetMaxEntities()
  78. {
  79. int ret = 0;
  80. _asm
  81. {
  82. MOV ECX, DWORD PTR DS:[cEntList]
  83. MOV EAX, DWORD PTR DS:[ECX+0x24]
  84. MOV ret, EAX
  85. }
  86. return ret;
  87. }

Wer will, darf gern was beisteuern. Visiblechecks und so fehlen zB noch.

greetz KN4CK3R

__________________

Hallo