Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. HookPatch.cpp
  2.  
  3.  
  4. __declspec(naked) void NKD_PersonManagerCTor()
  5. {
  6. __asm
  7. {
  8. MOV BYTE PTR DS : [EAX + 0x878], 0
  9.  
  10. MOV EAX, DWORD PTR SS : [EBP - 0x74]
  11. PUSH EAX
  12. CALL HKD_PersonManagerCTor
  13.  
  14. PUSH 0x04DCCBE
  15. RETN
  16. }
  17. }
  18.  
  19. __declspec(naked) void NKD_OpenWindowPerso()
  20. {
  21. __asm
  22. {
  23. MOV ECX, DWORD PTR SS:[EBP-0x9C]
  24. PUSH ECX
  25. CALL HKD_OpenWindowPerso
  26.  
  27. PUSH 1
  28. MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  29. PUSH 0x04E9FAB
  30. RETN
  31. }
  32. }
  33.  
  34. __declspec(naked) void NKD_OnUserOutOfScreen()
  35. {
  36.  
  37. __asm
  38. {
  39. MOV ECX, DWORD PTR SS : [EBP - 0x18]
  40. PUSH ECX
  41. CALL HKD_OnUserOutOfScreen
  42.  
  43. MOV ECX, DWORD PTR SS : [EBP - 0x18]
  44. CMP DWORD PTR DS : [ECX + 0x3D0], 0
  45. PUSH 0x04DE2EB
  46. RETN
  47. }
  48. }
  49. #pragma optimize( "", off )
  50.  
  51. __declspec(naked) void NKD_RefreshPosition()
  52. {
  53. __asm
  54. {
  55. PUSH DWORD PTR SS : [EBP - 0x40] //
  56. PUSH DWORD PTR SS : [EBP - 0x4C] //
  57. PUSH DWORD PTR SS : [EBP - 0xC] //
  58. PUSH DWORD PTR SS : [EBP - 0x88] //
  59. MOV EDX, DWORD PTR SS:[EBP-0x9C]
  60. PUSH EDX
  61. CALL HKD_RefreshPosition
  62.  
  63. FLD DWORD PTR DS : [0x5CEA58]
  64. PUSH 0x04EAA20
  65. RETN
  66. }
  67. }
  68.  
  69. __declspec(naked) void NKD_OnOutOfCamera()
  70. {
  71. __asm
  72. {
  73. MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  74. PUSH EAX
  75. CALL HKD_OnOutOfCamera
  76.  
  77. MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  78. PUSH 0x04EB272
  79. RETN
  80. }
  81. }
  82.  
  83.  
  84. __declspec(naked) void NKD_OnNClick()
  85. {
  86. __asm
  87. {
  88. MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  89. PUSH EAX
  90. CALL HKD_OnNClick
  91.  
  92. MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  93. PUSH 0x04E966A
  94. RETN
  95. }
  96. }
  97.  
  98. #pragma optimize( "", on )
  99.  
  100. JMP_NEAR(0x04E9664, NKD_OnNClick, 1);
  101. JMP_NEAR(0x04EB26C, NKD_OnOutOfCamera, 1);
  102. JMP_NEAR(0x04EAA1A, NKD_RefreshPosition, 1);
  103. JMP_NEAR(0x04DE2E1, NKD_OnUserOutOfScreen, 5);
  104. JMP_NEAR(0x04E9FA3, NKD_OpenWindowPerso, 3);
  105. JMP_NEAR(0x04DCCB7, NKD_PersonManagerCTor, 2);
  106.  
  107. SetConst.cpp
  108.  
  109.  
  110. void MallocSizeChangesOnPersonManagerClass()
  111. {
  112. *(short*)(0x043DC00 + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  113. *(short*)(0x0445961 + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  114. *(short*)(0x04890E3 + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  115. *(short*)(0x04AD99A + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  116. *(short*)(0x04B210B + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  117. *(short*)(0x04B303D + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  118. *(short*)(0x04B72CE + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  119. *(short*)(0x04ABAA2 + 1) = 0x87C + NEW_ADD_MALLOC_SIZE;
  120.  
  121. }
  122.  
  123. Defines
  124. #define NEW_ADD_MALLOC_SIZE 20
  125. #define EMBLEM_ACESS_ADDR 0x87C + 4
  126.  
  127. PersoDraw.cpp
  128.  
  129. void __stdcall HKD_OnNClick(int thisPointer)
  130. {
  131. if (GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR) != 0)
  132. {
  133. CloseWindow(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR));
  134. }
  135. }
  136.  
  137. void __stdcall HKD_OnOutOfCamera(int thisPointer)
  138. {
  139. if (GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR) != 0)
  140. {
  141. CloseWindow(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR));
  142. }
  143. }
  144.  
  145. void __stdcall HKD_RefreshPosition(int thisPointer, float v67, int v83, int v71, float v74)
  146. {
  147. //auto x = v67 - 3.0, ;
  148. //auto y = (float)v83 - (float)(6 * (v71 + 2)) * 1.7075f / 20.0 + 27.0;
  149.  
  150. RefreshPosition(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR), v67 - 3.0,
  151. (float)v83 - (float)(6 * (v71 + 2)) * 1.7075f / 20.0 + 27.0);
  152. }
  153.  
  154. void __stdcall HKD_OnUserOutOfScreen(int thisPointer)
  155. {
  156. CloseWindow(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR));
  157. }
  158.  
  159.  
  160. void __stdcall HKD_OpenWindowPerso(int thisPointer)
  161. {
  162. OpenWindow(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR));
  163. }
  164.  
  165. void __stdcall HKD_PersonManagerCTor(int thisPointer)
  166. {
  167. SetManagerOnPointer(thisPointer, EMBLEM_ACESS_ADDR, SetTexture(550, 15.0f, 15.0f));
  168. ChangeTextureFromUITextureList(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR), 1);
  169.  
  170. InitializeWindow(GetPointerValue(thisPointer, EMBLEM_ACESS_ADDR));
  171. }
  172.  
  173. void SetManagerOnPointer(int thisPointer, int acessAddr, int value)
  174. {
  175. *(int*)(thisPointer + acessAddr) = value;
  176. }
  177.  
  178. int GetPointerValue(int thisPointer, int acessAddr)
  179. {
  180. return *(int*)(thisPointer + acessAddr);
  181. }
  182.  
  183. int SetStringOnPerson(char * string)
  184. {
  185. int malloc = 0;
  186. int value = 0;
  187. __asm
  188. {
  189. PUSH 0x0E4C
  190. MOV EAX, 0x05B8113
  191. CALL EAX
  192. ADD ESP, 0x4
  193.  
  194. MOV malloc, EAX
  195.  
  196. PUSH 1
  197. PUSH 1
  198. PUSH 0x55AA0000
  199. PUSH 0
  200. PUSH 0x41800000
  201. PUSH 0x43480000
  202. PUSH 0
  203. PUSH 0
  204. PUSH 0x56
  205. PUSH string
  206. PUSH 1
  207. MOV ECX, malloc
  208. MOV EAX, 0x0401CCD
  209. CALL EAX
  210. MOV value, EAX
  211. }
  212.  
  213. return value;
  214. }
  215.  
  216. int SetTexture(int textureId, float sizeX, float sizeY)
  217. {
  218. int malloc = 0;
  219. int value = 0;
  220.  
  221. __asm
  222. {
  223. PUSH 0x1E4
  224. MOV EAX, 0x05B8113
  225. CALL EAX
  226. ADD ESP, 4
  227. MOV DWORD PTR SS : [malloc], EAX
  228.  
  229. PUSH 4
  230. PUSH -1
  231. PUSH sizeY
  232. PUSH sizeX
  233. PUSH 0x441EC000
  234. PUSH 0xC1200000
  235. PUSH textureId
  236. MOV ECX, DWORD PTR SS : [malloc]
  237. MOV EAX, 0x0401426
  238. CALL EAX
  239. MOV DWORD PTR SS : [value], EAX
  240. }
  241.  
  242. return value;
  243. }
  244.  
  245. void RefreshPosition(int id, float x, float y)
  246. {
  247. int callAddr = 0x0401286;
  248. __asm
  249. {
  250. PUSH y
  251. PUSH x
  252. MOV ECX, id
  253. CALL callAddr
  254. }
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement