OldSchoolHack

Register / Login English

Externer Aimbot mit Hilfe des Radarstructs

icon Thread: Externer Aimbot mit Hilfe des Radarstructs

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Hallo erstmal,
Ich habe mir in den letzten Wochen mit einer Menge Hilfe von SilverFire einen externen Triggerbot und Bhop gecodet. Informationen für EnemyOnly wird aus dem Radarstruct abgelesen. Ich habe mal an einen externen Aimbot gedacht, doch ich weiß nicht sorecht etwas mit den Begriffen pitch, Yaw und Angle anzufangen. Ist ein externer aimbot ala SetCursorPos o.ä. mit Hilfe der Radarstruct Informationen überhaupt möglich und wenn ja, könnte mir einer einen Ansatz nennen? Hier mein Code: Credits: Manta und groooooße Credits zu SilverFire
CPP Code:
  1. #include "stdafx.h"
  2.  
  3. #include <windows.h>
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <tlhelp32.h>
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <string>
  10. #include <cstdlib>
  11. #include <sstream>
  12. #include <Windows.h>
  13. #include <cmath>
  14. #define DIKEYBOARD_L 0x0426
  15. #pragma comment(lib, "Psapi.lib")
  16. using namespace std;
  17. char Myname[32] = "M a n t a R o c h e n";
  18. DWORD LastShotTime = GetTickCount();
  19. struct player // our playerstruct...
  20. {
  21. BYTE hp; // here the hp will be saved...
  22. char name[32]; // the name in chars...
  23. BYTE team; // the team... 0 = spec, 2 = t, 3 = ct
  24. float x; // x coord
  25. float y; // y...
  26. float z; // z...
  27. float pitch; // pitch
  28. float yaw; // yaw
  29. float angle; // angle
  30. } players[64] = {0}; // struct array to save the readout data - max 64 players
  31. float rechnen(player eins, player zwei) {
  32. float x;
  33. float y;
  34. float z;
  35. float ergebnis;
  36. x = eins.x - zwei.x;
  37. x = x * x;
  38. y = eins.y - zwei.y;
  39. y = y * y;
  40. z = eins.z - zwei.z;
  41. z = z * z;
  42. ergebnis = sqrt(x+y+z);
  43. //Gibt das ergebnis an main zurück
  44. return ergebnis;
  45. }
  46. bool isLow;
  47. int Triggerkey;
  48. int a = 30;
  49. int c = 600;
  50. int focusindex = 64;
  51. int oppositeTeam(int team)
  52. {
  53. if (team == 2)
  54. {
  55. return 3;
  56. }
  57. else if (team == 3)
  58. {
  59. return 2;
  60. }
  61. else
  62. {
  63. return 0;
  64. }
  65. }
  66.  
  67. const int RadarOffset = 0x593334;
  68. int tempAdress, BaseAdress;
  69. BYTE inair;
  70.  
  71. void m_jump()// press l
  72. {
  73. INPUT inp;
  74. memset(&inp,0,sizeof(inp));
  75. inp.type=INPUT_KEYBOARD;
  76. inp.ki.wVk = 0;
  77. inp.ki.wScan = DIKEYBOARD_L; //DIKEYBOARD_SPACE; LMENU
  78. inp.ki.time = 0;
  79. inp.ki.dwExtraInfo = 0;
  80. inp.ki.dwFlags=KEYEVENTF_SCANCODE;
  81. SendInput(1,&inp,sizeof(inp));
  82. Sleep(60);
  83. inp.type=INPUT_KEYBOARD;
  84. inp.ki.wVk = 0;
  85. inp.ki.time = 0;
  86. inp.ki.dwExtraInfo = 0;
  87. inp.ki.wScan = DIKEYBOARD_L; //DIKEYBOARD_SPACE; LMENU
  88. inp.ki.dwFlags=KEYEVENTF_SCANCODE|KEYEVENTF_KEYUP;
  89. SendInput(1,&inp,sizeof(inp));
  90. }
  91. void m_click()
  92. {
  93. if (LastShotTime + a < GetTickCount())
  94. {
  95. INPUT input;
  96. memset(&input,0,sizeof(INPUT));
  97. input.mi.dx = 0;
  98. input.mi.dy = 0;
  99. input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
  100. input.mi.dwExtraInfo = 0;
  101. input.mi.mouseData = 0;
  102. input.mi.time = 0;
  103. SendInput(1,&input,sizeof(input));
  104. Sleep(3);
  105. memset(&input,0,sizeof(INPUT));
  106. input.mi.dx = 0;
  107. input.mi.dy = 0;
  108. input.mi.dwExtraInfo = 0;
  109. input.mi.mouseData = 0;
  110. input.mi.time = 0;
  111. input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
  112. SendInput(1,&input,sizeof(input));
  113. LastShotTime = GetTickCount();
  114. }
  115. }
  116.  
  117. DWORD GetModuleBaseExtern(const DWORD dwProcessId, const char *szModuleName)
  118. {
  119. #ifdef _GMBE_CHECK_PARAMS_
  120. if (!dwProcessID) || (!szModuleName) return 0;
  121. #endif
  122.  
  123. HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
  124. if (!hSnap) return 0;
  125.  
  126. MODULEENTRY32 me;
  127. me.dwSize = sizeof(MODULEENTRY32);
  128.  
  129. DWORD dwReturn = 0;
  130.  
  131. if (Module32First(hSnap, &me)) {
  132. while (Module32Next(hSnap, &me)) {
  133. if (lstrcmpi(me.szModule, szModuleName) == 0) {
  134. dwReturn = (DWORD)me.modBaseAddr;
  135. break;
  136. }
  137. }
  138. }
  139.  
  140. CloseHandle(hSnap);
  141.  
  142. return dwReturn;
  143. }
  144.  
  145.  
  146. int main(int argc, char *argv[])
  147. {
  148. char TriggerKey[500];
  149. DWORD destSize;
  150. destSize=500;
  151. GetPrivateProfileString("trigger","Myname","NULL",Myname,destSize,"C://settings.ini");
  152. cout << " Auszug deines Namens aus der Settings.ini : " << Myname << endl;
  153. GetPrivateProfileString("trigger","TriggerKey","NULL",TriggerKey,destSize,"C://settings.ini");
  154. Triggerkey = atoi (TriggerKey);
  155. // Wenn die Variablen aus der Ini nicht eingelesen werden können, steht nach dem Aufruf der Default-Wert in Test, EinPfad oder Test (In diesem Beispiel "NULL");
  156. SetConsoleTitle( "Mantas Trigger - Exorbital gut" );
  157. HWND hwnd = NULL;
  158. DWORD pid;
  159. HANDLE hProcess;
  160. DWORD clientbase;
  161. int Gegner;
  162. int InCrosshair;
  163. cout << " Starte jetzt CS:S du Lappen." << endl;
  164. while(hwnd==NULL)
  165. {
  166. hwnd = FindWindow (NULL, "Counter-Strike Source");
  167. cout << " Es ist ja immer noch nicht an ! " << endl;
  168. Sleep(3000);
  169. }
  170. GetWindowThreadProcessId (hwnd, &pid);
  171. hProcess = OpenProcess (PROCESS_VM_READ, FALSE, pid);
  172. cout << " Isch hab ihn gefunden ;) " << endl;
  173. cout << " _____ _____ _ " << endl;
  174. cout << " | __|___ _ _ ___ ___ __ | __|_ _ ___| |_ " << endl;
  175. cout << " |__ | . | | | _| _| -_| | __| | | _| '_|" << endl;
  176. cout << " |_____|___|___|_| |___|___| |__| |___|___|_,_|" << endl;
  177. cout << "" << endl;
  178.  
  179. clientbase = GetModuleBaseExtern(pid, "client.dll");
  180.  
  181. while (true)
  182. {
  183.  
  184.  
  185. ReadProcessMemory (hProcess, (PVOID)(clientbase + 0x56A244), &Gegner, sizeof(Gegner), NULL);
  186. ReadProcessMemory (hProcess, (PVOID)(Gegner + 0x1448), &InCrosshair, sizeof(InCrosshair), NULL);
  187. ReadProcessMemory (hProcess, (PVOID)(clientbase + 0x5C20E0), &inair, sizeof(inair), NULL);
  188. tempAdress = clientbase + RadarOffset;
  189. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &BaseAdress, sizeof(BaseAdress), 0);
  190. tempAdress = BaseAdress + 0x8;
  191. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &BaseAdress, sizeof(BaseAdress), 0);
  192.  
  193. BYTE Playerteam[64] = {0};
  194. BYTE buffer[65*0x140];
  195.  
  196. tempAdress = BaseAdress;
  197. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &buffer, 65*0x140, 0);
  198. for ( int i = 1; i<= 64; i++) // copying the relevant data in our extra structs.
  199. {
  200. memcpy(&players[i].team, &buffer[0x140*i+0x34], sizeof(players[i].team));
  201. memcpy(&players[i].name, &buffer[0x140*i+0x14], sizeof(players[i].name));
  202. memcpy(&players[i].angle, &buffer[0x140*i+0x50], sizeof(players[i].angle));
  203. memcpy(&players[i].x, &buffer[0x140*i+0x3C], sizeof(players[i].x));
  204. memcpy(&players[i].y, &buffer[0x140*i+0x40], sizeof(players[i].y));
  205. memcpy(&players[i].z, &buffer[0x140*i+0x44], sizeof(players[i].z));
  206. }
  207.  
  208. isLow = FALSE; // we havent found right now our name
  209. for (int i = 0; i <= 64; i++) // identifying focusplayer
  210. {
  211. if (strcmp(Myname, players[i].name) == 0) // is that us?
  212. {
  213. if (!isLow) // first player found with that name?
  214. {
  215. isLow = TRUE; // yeeeaaah
  216. focusindex = i; // gotcha!
  217. break; // breaking up with you 
  218. }
  219. }
  220. }
  221. Sleep(1);
  222. if (InCrosshair > 0 && InCrosshair <= 64){
  223. float ergebnis = rechnen(players[InCrosshair], players[focusindex]);
  224. if (ergebnis > 0 && ergebnis <= 75)
  225. {
  226. a = 10;
  227. c = 20;
  228. }
  229. if (ergebnis > 75 && ergebnis <= 200)
  230. {
  231. a = 15;
  232. c = 40;
  233. }
  234. if (ergebnis > 200 && ergebnis <= 400)
  235. {
  236. a = 10;
  237. c = 50;
  238. }
  239. if (ergebnis > 400 && ergebnis <= 600)
  240. {
  241. a = 8;
  242. c = 60;
  243. }
  244. if (ergebnis > 600)
  245. {
  246. a = 5;
  247. c = 70;
  248. }
  249. }
  250. if (GetAsyncKeyState(Triggerkey))
  251. {
  252. Sleep(100);
  253. if (InCrosshair > 0 && InCrosshair <= 64)
  254. {
  255.  
  256. if (oppositeTeam(players[InCrosshair].team) == players[focusindex].team)
  257. {
  258.  
  259. Sleep (a);
  260. m_click();
  261. Sleep(c);
  262. }
  263. }
  264. }
  265. if(GetKeyState(VK_LMENU) & 1<<15)
  266. {
  267. if(inair != 255)
  268. {
  269. m_jump();
  270. Sleep(1);
  271. }
  272. }
  273.  
  274. }
  275. Sleep(3);
  276. }
  277.  
  278.  


__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg