文章目录
一、x86 汇编语言分析
一、x86 汇编语言分析
----
在上一篇博客 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件...: 程序执行过程中 , esp 是栈的地址 , 程序执行过程中需要用到 esp 变量 , 最好不要直接修改 esp , 这里将 esp 拷贝到 ebp 中 , ebp 全程没有修改以及使用 , 函数执行完毕后..., 保护这些值 , 函数执行完毕后再出栈 , 将这些值还原 , 其中 eax 不用入栈 , eax 用于记录返回值 , 该值是肯定要进行修改的 ;
push ebx
push edi
push...的含义是当前指令 + 5 , 即执行下一条指令 , 每个指令的长度是
5
字节 ; 该指令可能是为了兼容 arm 代码而生成的 ; 调用 call 指令后 , 会将下一条要执行的指令放到栈中 ;
call...$+5
该行指令对应的机器码如下 :
上面 call 调用后 , 会将下一条要执行的指令地址放到栈中 ;
这里使用 pop 将指令地址从栈中取出 , 放到 ebx 中 ;
从栈中取到的值实际上是