A - call B
C - nop
D - .....(之後不管它了)
============================
B - .....(前面也不理它)
...
..(中間一直都有程序再跑哦)
E - mov ecx,edx <---則我們可以從這裡開始修改.
F - mov eax,ebx
G - ret
============================
myset:
mov ecx,edx
mov eax,ebx
cmp [esp],C //這個位置等於G那個地址的RET的返回值,在A位置CALL的同時就會設定ESP值了
je Setting
ret //假如要改寫的位置不是我們要修改的位置,則跳回正確位置
Setting:
add esp,4 //復原消耗 假如你看不懂意思,就記下來吧,總之沒這行=斷線
[這裡就可以開始寫壞壞的東西]
jmp C //假若你確定ESP=C,則可以直接寫Ret