vc部分外挂相関コード、どんどん増加ing
ASMコードを回す
プロセスデータの読み込み:
プロセスデータの書き込み:
コールアドレスコードを呼び出します.
------------------------------------------------------------------------------------------------------
dllロード:
1:
exe:
1:
------------------------------------------------------------------------------------------------------
リモートプロセスでコードを書き込み、次のように実行します.
------------------------------------------------------------------------------------------------------
キーボードhook dllコード(defファイルのエクスポートに注意)
------------------------------------------------------------------------------------------------------
@echo offf
@cd /d "%~dp0"
cl /c /FAs %1
プロセスデータの読み込み:
HWND g=::FindWindow(NULL,gamename);
DWORD a;
::GetWindowThreadProcessId(g,(LPDWORD)&a);
HANDLE ph=::OpenProcess(PROCESS_ALL_ACCESS,false,a);
int buff;
::ReadProcessMemory(ph,(LPCVOID)0xffffffff,(LPVOID)&buff,4,NULL);//0xffffffff
プロセスデータの書き込み:
HWND g=::FindWindow(NULL,gamename);
DWORD a;
::GetWindowThreadProcessId(g,(LPDWORD)&a);
HANDLE ph=::OpenProcess(PROCESS_ALL_ACCESS,false,a);
int buff;
::WriteProcessMemory(ph,(LPCVOID)0xffffffff,(LPVOID)&buff,4,NULL);//0xffffffff
コールアドレスコードを呼び出します.
HWND g=::FindWindow(NULL,gamename);
DWORD a;
::GetWindowThreadProcessId(g,(LPDWORD)&a);
HANDLE ph=::OpenProcess(PROCESS_ALL_ACCESS,false,a);
DWORD b;
::CreateRemoteThread(ph,NULL,0,(LPTHREAD_START_ROUTINE)0xffffffff,0,0,&b);//0xffffffff ( )
------------------------------------------------------------------------------------------------------
dllロード:
1:
1. def
2. AFX_MANAGE_STATE(AfxGetStaticModuleState());
exe:
#pragma comment(lib,"some.lib")
1:
1. __declspec(dllimport)int myfun(int a,int b);
extern "c" int myfun(int a,int b)
------------------------------------------------------------------------------------------------------
リモートプロセスでコードを書き込み、次のように実行します.
------------------------------------------------------------------------------------------------------
キーボードhook dllコード(defファイルのエクスポートに注意)
//
LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); //MFC
if (wParam==VK_HOME && (lParam&(1<<31))==0 ){AfxMessageBox("asdasds");} // home
return CallNextHookEx(0,code,wParam,lParam);
}
//
void sethook()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());//MFC
HWND myg=::FindWindow(NULL,"1");
DWORD tid=::GetWindowThreadProcessId(myg,NULL);
::SetWindowsHookEx(
WH_KEYBOARD, // hook type
&KeyboardProc, // hook procedure
::GetModuleHandle("hookdll.dll"), // handle to application instance
tid // thread identifier
);
}
------------------------------------------------------------------------------------------------------