《逆向工程权威指南》—第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寄存器里取值,把它当作返回结果。

相关文章
|
人工智能 监控 算法
探索软件测试的未来:AI与自动化的融合
随着人工智能(AI)技术的飞速发展,软件测试领域正迎来一场革命。本文将深入探讨AI如何与自动化测试相结合,提升测试效率和准确性,同时分析面临的挑战和机遇。我们将通过具体案例,展示AI在自动化测试中的应用,并预测未来发展趋势。
311 31
|
机器学习/深度学习 存储 Kubernetes
如何将 Apache Airflow 用于机器学习工作流
Apache Airflow 是一个流行的平台,用于在 Python 中创建、调度和监控工作流。 它在 Github 上有超过 15,000 颗星,被 Twitter、Airbnb 和 Spotify 等公司的数据工程师使用。 如果您使用的是 Apache Airflow,那么您的架构可能已经根据任务数量及其要求进行了演变。 在 Skillup.co 工作时,我们首先有几百个 DAG 来执行我们所有的数据工程任务,然后我们开始做机器学习。
|
机器学习/深度学习 人工智能 运维
如何通过AI 全面提升运维效率?选型宝分享AIOps实战案例
前言 运维,是企业IT最基础的工作,也是痛点、槽点最多的工作。海量的数据、频繁的报警、艰难的排障、无情的投诉,足以让运维工程师们感到崩溃和绝望…… Gartner在ITOA (IT Operations Analytics IT运营分析)的基础上,提出了AIOps的概念。
3526 0
|
容器 .NET 开发框架
.net core 注入中的三种模式:Singleton、Scoped 和 Transient
我们都知道在 Startup 的 ConfigureServices 可以注入我们想要的服务,那么在注入的时候有三种模式可以选择,那么我们在什么时候选择什么样的模式呢? 在讲注入模式之前,我觉得很有必要了解服务生存期的概念! 服务生存期:ASP.NET Core 提供了一个内置的服务容器 IServiceProvider 负责管理服务的生命周期,从被依赖注入容器创建开始(就是将服务注入到你要使用的类的构造函数中),然后框架负责创建依赖关系的实例,并在不再需要时对其进行处理(就是说等我们调用完服务时,容器会自己去对注入的服务进行释放)。
2141 0
|
Arthas Java 测试技术
深入Spring Boot:利用Arthas排查NoSuchMethodError
## 前言 有时spring boot应用会遇到`java.lang.NoSuchMethodError`的问题,下面以具体的demo来说明怎样利用[arthas](https://github.com/alibaba/arthas)来排查。 Demo: https://github.com/hengyunabc/spring-boot-inside/tree/master/dem
2847 0
|
存储 Java 应用服务中间件
Cloud Toolkit Maven 插件部署应用到阿里云 EDAS
针对 EDAS 开发者,如果当前正在使用 WAR 包或 JAR 包来部署应用,那么就可以通过 Cloud Toolkit Maven 插件部署应用到阿里云 EDAS。
10555 86
|
弹性计算 运维 安全
RAM账号权限管理
希望通过本次演讲,让大家更深入了解RAM账号权限管理,以某电商网站项目为例,根据研发、测试、生产环境划分及业务流程,使用阿里云RAM访问控制服务规划实现资源分组、账号用户体系、权限分配、安全加固、定期安全检查等措施的最佳实践。
2801 1
RAM账号权限管理
|
编解码
win10笔记本外接显示器后,微信界面字体模糊问题的解决方案
win10笔记本外接显示器后,微信界面字体模糊问题的解决方案
2325 0
win10笔记本外接显示器后,微信界面字体模糊问题的解决方案
|
数据可视化 程序员 项目管理
强大、好用、适合程序员/软件开发者的专业编辑器/笔记软件综合评测和全面推荐
Atom、EMACS、Vim 、Notepad++、Sublime Text、Brackets、Vim、Visual Studio Code、Eclipse、PSPAD、GEANY、JEDIT、NETBEANS、Nvu、NoteTab、Gedit…
725 0
强大、好用、适合程序员/软件开发者的专业编辑器/笔记软件综合评测和全面推荐
|
消息中间件 监控 RocketMQ
Mqadmin命令介绍|学习笔记
快速学习Mqadmin命令介绍
1364 0