fork download
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <iomanip>
  4. //non hacking related stuff
  5.  
  6. struct KeyManager
  7. {
  8. bool Pressed;
  9. bool Down;
  10. bool Released;
  11. bool Up;
  12. bool ConsumePressed()
  13. {
  14. if(Pressed)
  15. {
  16. Pressed = false;
  17. return true;
  18. }
  19. return false;
  20. }
  21. bool ConsumeReleased()
  22. {
  23. if(Released)
  24. {
  25. Released = false;
  26. return true;
  27. }
  28. return false;
  29. }
  30. bool ConsumeDown()
  31. {
  32. if(Down)
  33. {
  34. Down = false;
  35. return true;
  36. }
  37. return false;
  38. }
  39. bool ConsumeUp()
  40. {
  41. if(Up)
  42. {
  43. Up = false;
  44. return true;
  45. }
  46. return false;
  47. }
  48. };
  49.  
  50. std::string string_format(const std::string fmt, ...)
  51. {
  52. int size = 512;
  53. std::string str;
  54. va_list ap;
  55. while (1) {
  56. str.resize(size);
  57. va_start(ap, fmt);
  58. int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
  59. va_end(ap);
  60. if (n > -1 && n < size) {
  61. str.resize(n);
  62. return str;
  63. }
  64. if (n > -1)
  65. size = n + 1;
  66. else
  67. size *= 2;
  68. }
  69. return str;
  70. }
  71.  
  72. KeyManager Keys[256];
  73.  
  74. void KeyManagerRun()
  75. {
  76. for(unsigned int i = 0; i < 256; ++i)
  77. {
  78. if(GetAsyncKeyState(i))
  79. {
  80. if(!Keys[i].Down)
  81. {
  82. Keys[i].Down = true;
  83. Keys[i].Pressed = true;
  84. Keys[i].Released = false;
  85. Keys[i].Up = false;
  86. }
  87. else if(Keys[i].Pressed)
  88. {
  89. Keys[i].Pressed = false;
  90. }
  91. }
  92. else
  93. {
  94. if(!Keys[i].Up)
  95. {
  96. Keys[i].Released = true;
  97. Keys[i].Up = true;
  98. Keys[i].Down = false;
  99. Keys[i].Pressed = false;
  100. }
  101. else if(Keys[i].Released)
  102. {
  103. Keys[i].Released = false;
  104. }
  105. }
  106. }
  107. }
  108.  
  109. #define Keys(a) Keys[a]
  110.  
  111. void ClearScreen()
  112. {
  113. HANDLE hStdOut;
  114. CONSOLE_SCREEN_BUFFER_INFO csbi;
  115. DWORD count;
  116. DWORD cellCount;
  117. COORD homeCoords = { 0, 0 };
  118.  
  119. hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
  120. if (hStdOut == INVALID_HANDLE_VALUE) return;
  121.  
  122. /* Get the number of cells in the current buffer */
  123. if (!GetConsoleScreenBufferInfo( hStdOut, &csbi )) return;
  124. cellCount = csbi.dwSize.X *csbi.dwSize.Y;
  125.  
  126. /* Fill the entire buffer with spaces */
  127. if (!FillConsoleOutputCharacter(
  128. hStdOut,
  129. (TCHAR) ' ',
  130. cellCount,
  131. homeCoords,
  132. &count
  133. )) return;
  134.  
  135. /* Fill the entire buffer with the current colors and attributes */
  136. if (!FillConsoleOutputAttribute(
  137. hStdOut,
  138. csbi.wAttributes,
  139. cellCount,
  140. homeCoords,
  141. &count
  142. )) return;
  143.  
  144. /* Move the cursor home */
  145. SetConsoleCursorPosition( hStdOut, homeCoords );
  146. }
  147. //stuff to hack_me biatch!
  148.  
  149. int _gVar1 = 1;
  150. int * _gVar2 = &_gVar1;
  151. int * _gVar3 = NULL;
  152.  
  153. class HackMe
  154. {
  155. public:
  156. HackMe()
  157. {
  158. Var1 = 1;
  159. Var2 = 1;
  160. }
  161. int Var1;
  162. void SetPrivate(int Integer)
  163. {
  164. Var2 = Integer;
  165. }
  166. int GetVar2()
  167. {
  168. return Var2;
  169. }
  170. private:
  171. int Var2;
  172. };
  173.  
  174. HackMe _gClass1;
  175. HackMe *_gClass2;
  176.  
  177. //and there we go lol
  178.  
  179. int main()
  180. {
  181. int _lVar1 = 1;
  182. _gVar3 = &_lVar1;
  183. *_gVar3 = 1;
  184. _gClass2 = new HackMe();
  185. HackMe _lClass1;
  186. HackMe * _lClass2 = new HackMe();
  187. while(!Keys(VK_ESCAPE).Pressed)
  188. {
  189. KeyManagerRun();
  190. ClearScreen();
  191.  
  192. std::cout << std::setw(16) << "GVAR1" << std::setw(16) << _gVar1 << std::endl;
  193. std::cout << std::setw(16) << "GVAR2" << std::setw(16) << std::hex << _gVar2 << std::endl;
  194. std::cout << std::setw(16) << "*GVAR2" << std::setw(16) << *_gVar2 << std::endl;
  195. std::cout << std::setw(16) << "GVAR3" << std::setw(16) << std::hex << _gVar3 << std::endl;
  196. std::cout << std::setw(16) << "*GVAR3" << std::setw(16) << *_gVar3 << std::endl;
  197. std::cout << std::setw(16) << "LVAR1" << std::setw(16) << _lVar1 << std::endl;
  198. std::cout << std::setw(16) << "_gClass1.Var1" << std::setw(16) << _gClass1.Var1 << std::endl;
  199. std::cout << std::setw(16) << "_gClass1.Var2" << std::setw(16) << _gClass1.GetVar2() << std::endl;
  200. std::cout << std::setw(16) << "_gClass2->Var1" << std::setw(16) << _gClass2->Var1 << std::endl;
  201. std::cout << std::setw(16) << "_gClass2->Var2" << std::setw(16) << _gClass2->GetVar2() << std::endl;
  202. std::cout << std::setw(16) << "_lClass1.Var1" << std::setw(16) << _lClass1.Var1 << std::endl;
  203. std::cout << std::setw(16) << "_lClass1.Var2" << std::setw(16) << _lClass1.GetVar2() << std::endl;
  204. std::cout << std::setw(16) << "_lClass2.Var1" << std::setw(16) << _lClass2->Var1 << std::endl;
  205. std::cout << std::setw(16) << "_lClass2.Var2" << std::setw(16) << _lClass2->GetVar2() << std::endl;
  206.  
  207. if(Keys(VK_F1).Pressed)
  208. ++(_gVar1);
  209. if(Keys(VK_F2).Pressed)
  210. ++(*_gVar2);
  211. if(Keys(VK_F3).Pressed)
  212. ++(*_gVar3);
  213. if(Keys(VK_F4).Pressed)
  214. ++(_lVar1);
  215. if(Keys(VK_F5).Pressed)
  216. ++_gClass1.Var1;
  217. if(Keys(VK_F6).Pressed)
  218. _gClass1.SetPrivate(_gClass1.GetVar2()+1);
  219. if(Keys(VK_F7).Pressed)
  220. ++(_gClass2->Var1);
  221. if(Keys(VK_F8).Pressed)
  222. _gClass2->SetPrivate(_gClass2->GetVar2()+1);
  223. if(Keys(VK_F9).Pressed)
  224. ++_lClass1.Var1;
  225. if(Keys(VK_F10).Pressed)
  226. _lClass1.SetPrivate(_lClass1.GetVar2()+1);
  227. if(Keys(VK_F11).Pressed)
  228. ++(_lClass2->Var1);
  229. if(Keys(VK_F12).Pressed)
  230. _lClass2->SetPrivate(_lClass2->GetVar2()+1);
  231. Sleep(16);
  232. }
  233. return 0;
  234. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty