So I made a BO2 rapid fire hack, and I wanted to share how it works, and how I made it. I'm putting the source code so people can learn from.
So lets start
Code:
#include <windows.h>
#include <iostream>
Okay so let me explain the code above,
#include <windows.h> Lets you press virtual keys and lets us get the position of the cursor.
#include <iostream> Lets us use cout (displays letters on console) and other basic stuff.
So now the next code is
Code:
#define KeyDown(Key) (GetAsyncKeyState(Key) & 0x8000)
Were are defining a keydown which searches for the key that is being pressed.
Next part of the code
Code:
using namespace std;
int main()
{
using namespace std; once we put that we won't have to put std:: in a lot of places (shortens the code)
int main() This is the main part we put our code that the program will run.
Now this you can skip if you want a blank intro. (Optional)
Code:
cout << "\n\n\t\tHold F to start rapid fire!" << endl;
cout << "\n\n\t\tPress button End to close rapid fire!" << endl;
So what cout << does it printing our text in the console window.
So after we put that we put our quotation marks "" is what will be printed so in this case I put Hold F to start rapid fire! (using F as the example)
The /n/n/t/t lets us put spaces from the text so it will be displayed more in the middle.
Next line of code
This will let us get coordinates of our mouse.
Next line of code
Code:
for (; KeyDown(VK_END) == NULL; Sleep(5))
{
So this line of code is checking if we have press END other wise it will go to the next line
Code:
if (KeyDown(0x46))
{
This is saying if we press F do the following code
0x46 is c++'s virtual key of F, I will list all the buttons later
Code:
GetCursorPos( &p );
This will let us get the position of our cursor and use it for clicks so our mouse won't go crazy when the rapid fire starts.
Code:
mouse_event(MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, NULL);
This is telling the computer to Left click down and gets our cursor position
This will let the left click be held down for 50/thousands of a second the lower the number is the faster the rapid fire will be 50 is the fastest it'll go for black ops 2
Code:
mouse_event(MOUSEEVENTF_LEFTUP, p.x, p.y, 0, 0);
This is telling the mouse to let go of the left click so it'll complete a full click.
(Optional line of code)
Code:
cout << "\n\n\t\tRapid Fire Activated" << endl;
this will display that the rapid fire is working once you press F
We need to close out part of code once were done so we are closing
if (KeyDown(0x46))
Now we need to close out other bracket for the line that is searching for the End key if it's being pressed.
Optional!
You can add a closing message to thank the user for using you hack.
Code:
cout << "\n\n\t\tThank you for using mpgh Rapid Fire!";
Or you can make is a msgbox, it can be annoying, but you can add it in
Code:
MessageBox(0, "Msg HERE", "MSG Box Title", MB_OK);
Now we add
This will tell the program not to go back to the beginning of the code and close itself.
And we close out last bracket to finish the program
List of virtual keys
Code:
Constant/value Description
VK_LBUTTON
0x01
Left mouse button
VK_RBUTTON
0x02
Right mouse button
VK_CANCEL
0x03
Control-break processing
VK_MBUTTON
0x04
Middle mouse button (three-button mouse)
VK_XBUTTON1
0x05
X1 mouse button
VK_XBUTTON2
0x06
X2 mouse button
-
0x07
Undefined
VK_BACK
0x08
BACKSPACE key
VK_TAB
0x09
TAB key
-
0x0A-0B
Reserved
VK_CLEAR
0x0C
CLEAR key
VK_RETURN
0x0D
ENTER key
-
0x0E-0F
Undefined
VK_SHIFT
0x10
SHIFT key
VK_CONTROL
0x11
CTRL key
VK_MENU
0x12
ALT key
VK_PAUSE
0x13
PAUSE key
VK_CAPITAL
0x14
CAPS LOCK key
VK_KANA
0x15
IME Kana mode
VK_HANGUEL
0x15
IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
VK_HANGUL
0x15
IME Hangul mode
-
0x16
Undefined
VK_JUNJA
0x17
IME Junja mode
VK_FINAL
0x18
IME final mode
VK_HANJA
0x19
IME Hanja mode
VK_KANJI
0x19
IME Kanji mode
-
0x1A
Undefined
VK_ESCAPE
0x1B
ESC key
VK_CONVERT
0x1C
IME convert
VK_NONCONVERT
0x1D
IME nonconvert
VK_ACCEPT
0x1E
IME accept
VK_MODECHANGE
0x1F
IME mode change request
VK_SPACE
0x20
SPACEBAR
VK_PRIOR
0x21
PAGE UP key
VK_NEXT
0x22
PAGE DOWN key
VK_END
0x23
END key
VK_HOME
0x24
HOME key
VK_LEFT
0x25
LEFT ARROW key
VK_UP
0x26
UP ARROW key
VK_RIGHT
0x27
RIGHT ARROW key
VK_DOWN
0x28
DOWN ARROW key
VK_SELECT
0x29
SELECT key
VK_PRINT
0x2A
PRINT key
VK_EXECUTE
0x2B
EXECUTE key
VK_SNAPSHOT
0x2C
PRINT SCREEN key
VK_INSERT
0x2D
INS key
VK_DELETE
0x2E
DEL key
VK_HELP
0x2F
HELP key
0x30
0 key
0x31
1 key
0x32
2 key
0x33
3 key
0x34
4 key
0x35
5 key
0x36
6 key
0x37
7 key
0x38
8 key
0x39
9 key
-
0x3A-40
Undefined
0x41
A key
0x42
B key
0x43
C key
0x44
D key
0x45
E key
0x46
F key
0x47
G key
0x48
H key
0x49
I key
0x4A
J key
0x4B
K key
0x4C
L key
0x4D
M key
0x4E
N key
0x4F
O key
0x50
P key
0x51
Q key
0x52
R key
0x53
S key
0x54
T key
0x55
U key
0x56
V key
0x57
W key
0x58
X key
0x59
Y key
0x5A
Z key
VK_LWIN
0x5B
Left Windows key (Natural keyboard)
VK_RWIN
0x5C
Right Windows key (Natural keyboard)
VK_APPS
0x5D
Applications key (Natural keyboard)
-
0x5E
Reserved
VK_SLEEP
0x5F
Computer Sleep key
VK_NUMPAD0
0x60
Numeric keypad 0 key
VK_NUMPAD1
0x61
Numeric keypad 1 key
VK_NUMPAD2
0x62
Numeric keypad 2 key
VK_NUMPAD3
0x63
Numeric keypad 3 key
VK_NUMPAD4
0x64
Numeric keypad 4 key
VK_NUMPAD5
0x65
Numeric keypad 5 key
VK_NUMPAD6
0x66
Numeric keypad 6 key
VK_NUMPAD7
0x67
Numeric keypad 7 key
VK_NUMPAD8
0x68
Numeric keypad 8 key
VK_NUMPAD9
0x69
Numeric keypad 9 key
VK_MULTIPLY
0x6A
Multiply key
VK_ADD
0x6B
Add key
VK_SEPARATOR
0x6C
Separator key
VK_SUBTRACT
0x6D
Subtract key
VK_DECIMAL
0x6E
Decimal key
VK_DIVIDE
0x6F
Divide key
VK_F1
0x70
F1 key
VK_F2
0x71
F2 key
VK_F3
0x72
F3 key
VK_F4
0x73
F4 key
VK_F5
0x74
F5 key
VK_F6
0x75
F6 key
VK_F7
0x76
F7 key
VK_F8
0x77
F8 key
VK_F9
0x78
F9 key
VK_F10
0x79
F10 key
VK_F11
0x7A
F11 key
VK_F12
0x7B
F12 key
VK_F13
0x7C
F13 key
VK_F14
0x7D
F14 key
VK_F15
0x7E
F15 key
VK_F16
0x7F
F16 key
VK_F17
0x80
F17 key
VK_F18
0x81
F18 key
VK_F19
0x82
F19 key
VK_F20
0x83
F20 key
VK_F21
0x84
F21 key
VK_F22
0x85
F22 key
VK_F23
0x86
F23 key
VK_F24
0x87
F24 key
-
0x88-8F
Unassigned
VK_NUMLOCK
0x90
NUM LOCK key
VK_SCROLL
0x91
SCROLL LOCK key
0x92-96
OEM specific
-
0x97-9F
Unassigned
VK_LSHIFT
0xA0
Left SHIFT key
VK_RSHIFT
0xA1
Right SHIFT key
VK_LCONTROL
0xA2
Left CONTROL key
VK_RCONTROL
0xA3
Right CONTROL key
VK_LMENU
0xA4
Left MENU key
VK_RMENU
0xA5
Right MENU key
Yes there is a ton more you can find the rest on your own
Now the full code( for the leechers )
Code:
#include <windows.h>
#include <iostream>
#define KeyDown(Key) (GetAsyncKeyState(Key) & 0x8000)
using namespace std;
int main()
{
cout << "\n\n\t\tHold F to start rapid fire!" << endl;
cout << "\n\n\t\tPress button End to close rapid fire!" << endl;
POINT p;
for (; KeyDown(VK_END) == NULL; Sleep(5))
{
if (KeyDown(0x46))
{
GetCursorPos( &p );
mouse_event(MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, NULL);
Sleep(50);
mouse_event(MOUSEEVENTF_LEFTUP, p.x, p.y, 0, 0);
Sleep(50);
cout << "\n\n\t\tRapid Fire Activated" << endl;
}
}
cout << "\n\n\t\tThank you for using mpgh Rapid Fire!";
MessageBox(0, "Thank You For Using this program by Vincent Dominguez", "Now Closing Bye-Bye", MB_OK);
return 0;
}
Thank you for your time!
Please press the thanks button if this helped!
This is external which means it should get detected!