正如標題所示,這將如何完成?如果我在操作碼的開始處添加了一個字節,它將以一個字節將內存中的地址壓入。如果你不明白的問題:在不影響執行的情況下向PE添加字節
原:
0x1 mov ecx, 10
0x2 mov eax, 1
0x3 inc eac
0x4 cmp eax
0x5 jl 0x3
新增字節:
0x1 NOP
0x2 mov ecx, 10
0x3 mov eax, 1
0x4 inc eac
0x5 cmp eax
0x6 jl 0x3
我將不得不手動設置每一個JMP和調用等還是有什麼其他方法可以做到它?
您必須手動檢查程序中使用的每個存儲器地址,以確定是否需要調整它。在一個非平凡的程序中,這是不實際的,因爲你需要修復的地址可能在任何地方。另請注意,您列出的大多數指令長度超過1個字節。 –
嗯,這可能不是完全相同的。我選擇的dup目標是關於添加新代碼的一種特定方法(將其放在一個新的部分中,並用jmp替換一些現有的insn),但Jean-François的答案指出了其他技術。 –