我寫一個delphi小程式,來修改本地開啟的xxx.exe程式的指定地址的跳轉指令 je 為 jmp 有沒有類似的代碼段實體,請大神指教!!
uj5u.com熱心網友回復:
這需要二進制的編輯器來修政exe檔案。還要懂機器碼。
uj5u.com熱心網友回復:
hook試試uj5u.com熱心網友回復:
主要是考慮如何修改記憶體。uj5u.com熱心網友回復:
辦法比較多。1、writeprocessmemory 將寫有je指令的記憶體地址的值改成 jmp。
2、注入的dll,在dll中直接改寫記憶體修改權限,然后用delphi指標改寫記憶體。注入后直接行內匯編什么的都可以
uj5u.com熱心網友回復:
較穩定的方式:注入dll,方法和代碼都很多。需要可以私信我。注入后修改記憶體讀寫權限。
VirtualProtect(pointer(FHookAddr), FByteLen * sizeof(Byte), PAGE_EXECUTE_READWRITE, @oldprotect);
PByte(FHookAddr)^ := $E8;
PInteger(FHookAddr + $1)^ := temp - FHookAddr - 5;
for I := $5 to FByteLen - 1 do
begin
PByte(FHookAddr + I)^ := $90;
end;
VirtualProtect(pointer(FHookAddr), FByteLen * sizeof(Byte), oldprotect, @oldprotect);
類似上面的代碼就是修改記憶體FhookADDR位置的指令,改為跳轉,跳轉至 記憶體temp位置。可以參考著寫了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35967.html
標籤:語言基礎/算法/系統設計
