0045B756 |. 8B5C24 10 MOV EBX,DWORD PTR SS:[ESP+10] 0045B75A |. 8910 MOV DWORD PTR DS:[EAX],EDX 0045B75C |. 8B76 14 MOV ESI,DWORD PTR DS:[ESI+14] 0045B75F FF0E DEC DWORD PTR DS:[ESI] 0045B761 |. 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24] 0045B765 |. E8 F6E4FFFF CALL ac_clien.00459C60
0045B756 |. 8B5C24 10 MOV EBX,DWORD PTR SS:[ESP+10] 0045B75A |. 8910 MOV DWORD PTR DS:[EAX],EDX 0045B75C |. 8B76 14 MOV ESI,DWORD PTR DS:[ESI+14] 0045B75F FF0E INC DWORD PTR DS:[ESI] 0045B761 |. 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24] 0045B765 |. E8 F6E4FFFF CALL ac_clien.00459C60
0045B756 E9 F09C0500 JMP ac_clien.004B544B 0045B75B 108B 7614FF0E ADC BYTE PTR DS:[EBX+EFF1476],CL 0045B761 |. 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24] 0045B765 |. E8 F6E4FFFF CALL ac_clien.00459C60
004B544B 8B5C24 10 MOV EBX,DWORD PTR SS:[ESP+10] 004B544F 8910 MOV DWORD PTR DS:[EAX],EDX 004B5451 8B76 14 MOV ESI,DWORD PTR DS:[ESI+14] 004B5454 FF06 INC DWORD PTR DS:[ESI] 004B5456 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24] 004B545A ^E9 0663FAFF JMP ac_clien.0045B765
#include "windows.h"
__declspec(naked) void Machine_Gun_Increase(void)
{
_asm
{
}
}
DWORD WINAPI MainThread(LPVOID)
{
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, MainThread, NULL, NULL, NULL);
}
return true;
}
#include "windows.h"
#include "detours.h"
#pragma comment(lib, "detours.lib")
DWORD address1 = 0x0045B75F;
unsigned long ret = address1 + 2; //2 is the length of the dec esi instruction
__declspec(naked) void Machine_Gun_Increase(void)
{
_asm
{
INC ESI;
JMP [ret];
}
}
DWORD WINAPI MainThread(LPVOID)
{
int a = 1;
while(a == 1)
{
if(GetAsyncKeyState(VK_INSERT))
{
DetourFunction((BYTE*)address1,(BYTE*)Machine_Gun_Increase());
}
}
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, MainThread, NULL, NULL, NULL);
}
return true;
}
unsigned long ret = address1 + 2; //2 is the length of the dec esi instruction
004B5454 FF06 INC DWORD PTR DS:[ESI]
DWORD address1 = 0x0045B75F;
unsigned long ret = address1 + 2; //2 is the length of the dec esi instruction
__declspec(naked) BYTE Machine_Gun_Increase(void)
{
_asm
{
PUSHAD;
PUSHFD;
INC DWORD PTR DS:[ESI];
JMP [ret];
}
}
DWORD WINAPI MainThread(LPVOID)
{
int a = 1;
while(a == 1)
{
if(GetAsyncKeyState(VK_INSERT))
{
DetourFunction((BYTE*)address1,(BYTE*)Machine_Gun_Increase());
}
}
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, MainThread, NULL, NULL, NULL);
}
return true;
}
0045B761 |. 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24]
#include "windows.h"
#include "detours.h"
#pragma comment(lib, "detours.lib")
//DWORD address1 = 0x0045B75F;
HANDLE hProcess;
DWORD proccess_ID;
HWND hWnd;
//unsigned long ret = address1 + 2; //2 is the length of the dec esi instruction
bool FindWindow(void)
{
hWnd = FindWindow("SDL_app", "AssaultCube");
return true;
if(hWnd == 0)
{
MessageBox(0, "Error cannot find window.", "Error", MB_OK|MB_ICONERROR);
return false;
}
else
{
GetWindowThreadProcessId(hWnd, &proccess_ID);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proccess_ID);
if(!hProcess)
{
MessageBox(0, "Could not open the process!", "Error!", MB_OK|MB_ICONERROR);
return false;
}
else
{
return true;
}
}
}
DWORD WINAPI MainThread(LPVOID)
{
FindWindow();
MessageBox(0, "Injected", "Success!",0);
WriteProcessMemory(hProcess,(LPVOID)(DWORD)0x45B75F,(LPVOID)0x90, 1, NULL);
WriteProcessMemory(hProcess,(LPVOID)(DWORD)0x45B760,(LPVOID)0x90, 1, NULL);
//DetourFunction((BYTE*)address1,(BYTE*)Machine_Gun_Increase());
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, MainThread, NULL, NULL, NULL);
}
return true;
}