![]() |
#2
zklhp2012-01-31 23:42
|
http://zhidao.baidu.com/question/372475724.html
对得分答案我保留意见
如何得到EIP的值?

mov eax,$+5
因为这条指令的长度为5 而EIP指向的是要执行的指令的地址 所以 这句执行后eax得到的是EIP
可惜这个不是动态的 下面的更好、、、

call @1
@1:
pop eax
pop eax执行后得到的是EIP-1 因为这个时候这句话已经执行完了 你可以再加得到EIP、、、

call @1
@1:
pop eax
add eax,4
这样最后一条指令执行完了得到的就是EIP的值 此时也就是下条指令的地址 也就是要执行的指令。。
[ 本帖最后由 zklhp 于 2012-1-31 23:42 编辑 ]