一个汇编代码小实验
First Post:
Last Update:
Last Update:
这几天闲着没事,突然想起自己已经把汇编忘得差不多了,于是重新拿起汇编做了个小实验
测试代码:
1 |
|
关闭随机地址后,0x40206C:leave;$+6=0x40206B;jmp相当于call入一个函数,该函数将使用ret返回到 $+6 处
机器码对照:
1 |
|
于是取址之后拿到 E0 这个机器码后,译码器发现它应该有一个操作数的,于是向后把 C9 带上了,最后就执行E0 C9去了
不过x32dbg会在滚动之后又将汇编代码识别回 leave 且看上去真的执行了,只是观察寄存器后发现并没有执行leave,因此姑且认为,还是以IDA动调分析的汇编代码为准较好
另外补充一句:译码器在遇到不认识的机器码时,会直接崩溃,这一点经过笔者尝试得到了验证
插画ID:91687652