私はメモリへのジャンプを書こうとしています。どのように動作するのか説明できる場所を見つけることができません。メモリへのジャンプの書き出し
typedef UINT(WINAPI* tResetWriteWatch)(LPVOID lpBaseAddress, SIZE_T dwRegionSize);
UINT WINAPI ResetWriteWatchHook(LPVOID lpBaseAddress, SIZE_T dwRegionSize){
printf("Function called\n");
return 0;
}
void main(){
DWORD64 hookAddr = (DWORD64)&ResetWriteWatch;
WriteJump(hookAddr, ResetWriteWatchHook/*Let's say it's 0x7FE12345678*/);//Writes E9 XX XX XX XX to memory
}
私の主な問題は、私は理解していないということです:どのように私は私がhookAddrでそれを書くことができE9 XX XX XX XXにASM JMP 0x7FE12345678を変換します。
プロセスは64ビットです。
従来のC++ではできないことをここでは何をしようとしていますか?これはデトウアーズの角度に関連していますか? – tadman
私はそれが従来のC++を使って行うことができるかどうかはわかりませんが、私はWindowsのAPI関数の多くを知らないので、これを実行する最善の方法と思われました。 (ResetWriteWatchはkernel32.dllにあります) – ioospa