Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.43 KB | None | 0 0
  1. //Alt + G = Godmode
  2. //Alt + L = Lawnmower
  3. //Alt + R = Rapeshot
  4.  
  5. #include <windows.h>
  6.  
  7. #define ZRuleBerserker__BonusHealthAddr 0x4C12A0
  8. #define ZPostStageEnterBattleAddr 0x4AD4B0
  9. #define ZGetGameAddr 0x4B9730
  10. #define ZGetGameClientAddr 0x4B9620
  11. #define ZBypassAddr 0x5A1857
  12. #define ZNewCmdAddr 0x4D1DA0
  13. #define ZPostCommandAddr 0x4D1E60
  14. #define ZUnknownOneAddr 0x5A2CE0
  15. #define ZUnknownTwoAddr 0x63C632
  16. #define ZUnknownThreeAddr 0x517150
  17. #define ZUnknownFourAddr 0x5195F0
  18.  
  19. bool godmode,lawnmower,rapeshot;
  20.  
  21. struct MUID
  22. {
  23. DWORD LowID;
  24. DWORD HighID;
  25. };
  26.  
  27. void ToggleSound(bool on)
  28. {
  29. if(on)
  30. {
  31. }
  32. else
  33. {
  34. }
  35. }
  36.  
  37. DWORD ZGetGame()
  38. {
  39. DWORD GAME;
  40. __asm
  41. {
  42. MOV EAX,ZGetGameAddr
  43. CALL EAX
  44. MOV GAME,EAX
  45. }
  46. return GAME;
  47. }
  48.  
  49. DWORD ZGetGameClient()
  50. {
  51. DWORD CLIENT;
  52. __asm
  53. {
  54. MOV EAX,ZGetGameClientAddr
  55. CALL EAX
  56. MOV CLIENT,EAX
  57. }
  58. return CLIENT;
  59. }
  60.  
  61. MUID *GetPlayer()
  62. {
  63. return(MUID*)(ZGetGameClient()+0x1A0);
  64. }
  65.  
  66. MUID *GetStage()
  67. {
  68. return(MUID*)(ZGetGameClient()+0x1B0);
  69. }
  70.  
  71. int GetGameType()
  72. {
  73. return *(int*)(ZGetGameClient()+0xD20);
  74. }
  75. DWORD ZMyCharacter()
  76. {
  77. DWORD Game;
  78. __asm
  79. {
  80. MOV EAX,ZGetGameAddr
  81. CALL EAX
  82. CMP EAX,0
  83. JA RetGame
  84. MOV Game,0
  85. JMP End
  86. RetGame:
  87. LEA EAX,DWORD PTR DS:[EAX+0x94]
  88. MOV EAX,DWORD PTR DS:[EAX]
  89. MOV Game,EAX
  90. End:
  91. }
  92. return Game;
  93. }
  94.  
  95. float *GetPosition(DWORD ZCharacter)
  96. {
  97. float *POS;
  98. __asm
  99. {
  100. PUSH ESI
  101. MOV ESI,ZCharacter
  102. MOV EAX,DWORD PTR DS:[ESI+0x30]
  103. TEST EAX,EAX
  104. JNZ OP2
  105. LEA EAX,DWORD PTR DS:[ESI+0x24]
  106. OP2:
  107. MOV EAX,DWORD PTR DS:[EAX]
  108. MOV POS,EAX
  109. POP ESI
  110. }
  111. return POS;
  112. }
  113.  
  114. float *GetDirection(DWORD ZCharacter)
  115. {
  116. float *DIR;
  117. __asm
  118. {
  119. PUSH ESI
  120. MOV ESI,DWORD PTR SS:[EBP+8]
  121. ADD ESI,0x340
  122. MOV DIR,ESI
  123. POP ESI
  124. }
  125. return DIR;
  126. }
  127.  
  128. void Rejoin()
  129. {
  130. MUID *PLAYER=GetPlayer();
  131. MUID *STAGE=GetStage();
  132. __asm
  133. {
  134. PUSH STAGE
  135. PUSH PLAYER
  136. MOV EAX,ZPostStageEnterBattleAddr
  137. CALL EAX
  138. }
  139. }
  140.  
  141. void BonusHealth()
  142. {
  143. __asm
  144. {
  145. PUSH HEALTHRET
  146. PUSH EBP
  147. MOV EBP,ESP
  148. CALL ZMyCharacter
  149. PUSH EAX
  150. PUSH ZBypassAddr
  151. MOV EAX,ZRuleBerserker__BonusHealthAddr
  152. JMP EAX
  153. HEALTHRET:
  154. }
  155. }
  156.  
  157. void __declspec(naked) ZPostShot(float *Pos,float *Dir,int)
  158. {
  159. __asm
  160. {
  161. PUSH EBP
  162. MOV EBP,ESP
  163. MOV DWORD PTR FS:[0],ESP
  164. SUB ESP,0xC4
  165. PUSH EBX
  166. PUSH ESI
  167. PUSH EDI
  168. MOV EAX,ZGetGameAddr
  169. CALL EAX
  170. MOV EAX,DWORD PTR DS:[EAX+0x30]
  171. MOV EAX,DWORD PTR DS:[EAX]
  172. MOV ECX,DWORD PTR DS:[EAX]
  173. MOV ESI,DWORD PTR SS:[EBP+8]
  174. FLD DWORD PTR DS:[ESI]
  175. MOV DWORD PTR SS:[EBP-0x84],ECX
  176. MOV EAX,ZUnknownOneAddr
  177. CALL EAX
  178. FLD DWORD PTR DS:[ESI+4]
  179. MOV WORD PTR SS:[EBP-0x80],AX
  180. MOV EAX,ZUnknownOneAddr
  181. CALL EAX
  182. FLD DWORD PTR DS:[ESI+8]
  183. MOV WORD PTR SS:[EBP-0x7E],AX
  184. MOV EAX,ZUnknownOneAddr
  185. CALL EAX
  186. MOV ESI,[EBP+0x0C]
  187. FLD DWORD PTR DS:[ESI]
  188. MOV WORD PTR SS:[EBP-0x7C],AX
  189. MOV EAX,ZUnknownOneAddr
  190. CALL EAX
  191. FLD DWORD PTR DS:[ESI+4]
  192. MOV WORD PTR SS:[EBP-0x7A],AX
  193. MOV EAX,ZUnknownOneAddr
  194. CALL EAX
  195. FLD DWORD PTR DS:[ESI+8]
  196. MOV WORD PTR SS:[EBP-0x78],AX
  197. MOV EAX,ZUnknownOneAddr
  198. CALL EAX
  199. MOV DL,BYTE PTR SS:[EBP+0x10]
  200. MOV WORD PTR SS:[EBP-0x76],AX
  201. MOV BYTE PTR SS:[EBP-0x74],DL
  202. PUSH 0x2732
  203. MOV EAX,ZNewCmdAddr
  204. CALL EAX
  205. PUSH 0x10
  206. MOV ESI,EAX
  207. MOV EAX,ZUnknownTwoAddr
  208. CALL EAX
  209. ADD ESP,0x10
  210. MOV DWORD PTR SS:[EBP-0x10],EAX
  211. TEST EAX,EAX
  212. MOV DWORD PTR SS:[EBP-4],0
  213. JE LNJ1
  214. PUSH 0x11
  215. LEA ECX,DWORD PTR SS:[EBP-0x84]
  216. PUSH ECX
  217. MOV ECX,EAX
  218. MOV EAX,ZUnknownThreeAddr
  219. CALL EAX
  220. JMP LNJ2
  221. LNJ1:
  222. XOR EAX,EAX
  223. LNJ2:
  224. MOV ECX,ESI
  225. PUSH EAX
  226. MOV DWORD PTR SS:[EBP-4],-1
  227. MOV EAX,ZUnknownFourAddr
  228. CALL EAX
  229. PUSH SHOTRET
  230. PUSH EBP
  231. MOV EBP,ESP
  232. PUSH ESI
  233. PUSH ZBypassAddr
  234. MOV EAX,ZPostCommandAddr
  235. JMP EAX
  236. SHOTRET:
  237. ADD ESP,4
  238. MOV ECX,DWORD PTR SS:[EBP-0xC]
  239. POP EDI
  240. POP ESI
  241. POP EBX
  242. MOV DWORD PTR FS:[0],ECX
  243. MOV ESP,EBP
  244. POP EBP
  245. RETN
  246. }
  247. }
  248.  
  249. void Keys()
  250. {
  251. while(true)
  252. {
  253. if((GetAsyncKeyState(0x12)&0x8000)&&(GetAsyncKeyState('G')&0x8000))
  254. {
  255. godmode=!godmode;
  256. ToggleSound(godmode);
  257. Sleep( 500 );
  258. }
  259. if((GetAsyncKeyState(0x12)&0x8000)&&(GetAsyncKeyState('L')&0x8000))
  260. {
  261. lawnmower=!lawnmower;
  262. ToggleSound(lawnmower);
  263. Sleep( 500 );
  264. }
  265. if((GetAsyncKeyState(0x12)&0x8000)&&(GetAsyncKeyState('R')&0x8000))
  266. {
  267. rapeshot=!rapeshot;
  268. ToggleSound(rapeshot);
  269. Sleep( 500 );
  270. }
  271. Sleep(30);
  272. }
  273. }
  274.  
  275. void Execute()
  276. {
  277. while(true)
  278. {
  279. if(ZMyCharacter())
  280. {
  281. if(godmode)
  282. {
  283. BonusHealth();
  284. }
  285. if(lawnmower)
  286. {
  287. ZPostShot(GetPosition(ZMyCharacter()),GetDirection(ZMyCharacter()),7);
  288. ZPostShot(GetPosition(ZMyCharacter()),GetDirection(ZMyCharacter()),1);
  289. }
  290. if(rapeshot&&(GetAsyncKeyState(0x01)&0x8000))
  291. {
  292. float *MyPosition=GetPosition(ZMyCharacter());
  293. float *MyDirection=GetDirection(ZMyCharacter());
  294. float NewPosition[3];
  295. NewPosition[0]=MyPosition[0];
  296. NewPosition[1]=MyPosition[1];
  297. NewPosition[2]=MyPosition[2]+200;
  298. float NewDirection[3];
  299. NewDirection[0]=MyPosition[0]+(MyDirection[0]*9001);
  300. NewDirection[1]=MyPosition[1]+(MyDirection[1]*9001);
  301. NewDirection[2]=200+MyPosition[2]+(MyDirection[2]*9001);
  302. for(int i=0;i<10;i++)
  303. {
  304. ZPostShot(NewPosition,NewDirection,8);
  305. ZPostShot(NewPosition,NewDirection,1);
  306. ZPostShot(NewPosition,NewDirection,9);
  307. ZPostShot(NewPosition,NewDirection,1);
  308. }
  309. Rejoin();
  310. Sleep(200);
  311. }
  312. }
  313. Sleep(10);
  314. }
  315. }
  316.  
  317. extern "C"
  318. {
  319. __declspec(dllexport) BOOL __stdcall DllMain(HINSTANCE hInst,DWORD reason,LPVOID lpv)
  320. {
  321. if(reason==DLL_PROCESS_ATTACH)
  322. {
  323. DisableThreadLibraryCalls(hInst);
  324. CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Keys,NULL,0,NULL);
  325. CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Execute,NULL,0,NULL);
  326. Beep(500,500);
  327. }
  328. return true;
  329. }
  330. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement