OldSchoolHack

Register / Login English

NonSDK Project

icon Thread: NonSDK Project

Join Date: Aug 2007

Posts: 8643

User-Rating:

199 positive
33 negative
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