《逆向工程权威指南》—第2章2.1节x86

简介:

本节书摘来自异步社区《逆向工程权威指南》一书中的第2章2.1节x86,作者【乌克兰】Dennis Yurichev(丹尼斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 最简函数
逆向工程权威指南
返回预定常量的函数,已经算得上是最简单的函数了。

本章围绕下列函数进行演示:

指令清单2.1 C/C++ 代码

int f() 
{
         return 123;
};

2.1 x86
在开启优化功能之后,GCC编译器产生的汇编指令,如下所示。

指令清单2.2 Optimizing GCC/MSVC(汇编输出)

f:
        mov   eax, 123
        ret

MSVC编译的程序和上述指令完全一致。

这个函数仅由两条指令构成:第一条指令把数值123存放在EAX寄存器里;根据函数调用约定[1],后面一条指令会把EAX的值当作返回值传递给调用者函数,而调用者函数(caller)会从EAX寄存器里取值,把它当作返回结果。

相关文章
|
Unix 开发工具 iOS开发
iOS应用逆向工程笔记 -1
iOS应用逆向工程笔记 -1
61 0
|
3月前
|
数据可视化 前端开发 rax
x64汇编语言与逆向工程实战指南(一)
x64汇编语言与逆向工程实战指南(一)
59 1
|
6月前
|
安全 NoSQL Linux
《ARM汇编与逆向工程 蓝狐卷 基础知识》
《ARM汇编与逆向工程 蓝狐卷 基础知识》
92 0
程序人生 - 携号转网权威指南
程序人生 - 携号转网权威指南
171 0
程序人生 - 携号转网权威指南
|
安全 Oracle 关系型数据库
《逆向工程权威指南》目录—导读
本书适合对逆向工程技术、操作系统底层技术、程序分析技术感兴趣的读者阅读,也适合专业的程序开发人员参考。
5463 1
|
区块链 数据库 数据安全/隐私保护
|
JSON JavaScript 前端开发
《JavaScript开发框架权威指南》——2.4 处理任务
今后你遇到的绝大多数Grunt插件都会是可配置的多任务。由此而来的灵活性使得我们可以针对不同的应用环境,以不同的方式运行同一个任务。一个常见的情景就是为不同的构建环境创建不同的输出目标。例如,在编译程序时,针对本地开发环境和产品发布可以选用不同的任务运行配置。
1885 0