objdump 反汇编_so文件反汇编

objdump 反汇编_so文件反汇编objdump反汇编,反汇编与源代码混合显示,C++符号逆向解析。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

objdump反汇编用法示例

原文:http://blog.csdn.net/zoomdy/article/details/50563680
mingdu.zheng at gmail dot com

  • -d:将代码段反汇编
  • -S:将代码段反汇编的同时,将反汇编代码和源代码交替显示,编译时需要给出-g,即需要调试信息。
  • -C:将C++符号名逆向解析。
  • -l:反汇编代码中插入源代码的文件名和行号。
  • -j section:仅反汇编指定的section。可以有多个-j参数来选择多个section。

有代码如下:

class Main
{ 
   
	int a;
public:
	Main()
	{ 
   
		a = 0;
	}

	int getA(void)
	{ 
   
		return this->a;
	}
};

Jetbrains全家桶1年46,售后保障稳定

$objdump -d a.out # 简单反汇编

08048456 <_ZN4MainC1Ev>:
 8048456:	55                   	push   %ebp
 8048457:	89 e5                	mov    %esp,%ebp
 8048459:	8b 45 08             	mov    0x8(%ebp),%eax
 804845c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
 8048462:	5d                   	pop    %ebp
 8048463:	c3                   	ret    

08048464 <_ZN4Main4getAEv>:
 8048464:	55                   	push   %ebp
 8048465:	89 e5                	mov    %esp,%ebp
 8048467:	8b 45 08             	mov    0x8(%ebp),%eax
 804846a:	8b 00                	mov    (%eax),%eax
 804846c:	5d                   	pop    %ebp
 804846d:	c3                   	ret    

$objdump -S a.out # 反汇编代码中混入对应的源代码

08048456 <_ZN4MainC1Ev>:
class Main
{
	int a;
public:
	Main()
 8048456:	55                   	push   %ebp
 8048457:	89 e5                	mov    %esp,%ebp
	{
		a = 0;
 8048459:	8b 45 08             	mov    0x8(%ebp),%eax
 804845c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
	}
 8048462:	5d                   	pop    %ebp
 8048463:	c3                   	ret    

08048464 <_ZN4Main4getAEv>:

	int getA(void)
 8048464:	55                   	push   %ebp
 8048465:	89 e5                	mov    %esp,%ebp
	{
		return this->a;
 8048467:	8b 45 08             	mov    0x8(%ebp),%eax
 804846a:	8b 00                	mov    (%eax),%eax
	}
 804846c:	5d                   	pop    %ebp
 804846d:	c3                   	ret    

$objdump -C -S a.out # C++符号名逆向解析

08048456 <Main::Main()>:
class Main
{
	int a;
public:
	Main()
 8048456:	55                   	push   %ebp
 8048457:	89 e5                	mov    %esp,%ebp
	{
		a = 0;
 8048459:	8b 45 08             	mov    0x8(%ebp),%eax
 804845c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
	}
 8048462:	5d                   	pop    %ebp
 8048463:	c3                   	ret    

08048464 <Main::getA()>:

	int getA(void)
 8048464:	55                   	push   %ebp
 8048465:	89 e5                	mov    %esp,%ebp
	{
		return this->a;
 8048467:	8b 45 08             	mov    0x8(%ebp),%eax
 804846a:	8b 00                	mov    (%eax),%eax
	}
 804846c:	5d                   	pop    %ebp
 804846d:	c3                   	ret    

objdump -j .text -l -C -S a.out # 打印源文件名和行号

08048456 <Main::Main()>:
_ZN4MainC2Ev():
~/objdump/main.h:5
class Main
{
	int a;
public:
	Main()
 8048456:	55                   	push   %ebp
 8048457:	89 e5                	mov    %esp,%ebp
~/objdump/main.h:7
	{
		a = 0;
 8048459:	8b 45 08             	mov    0x8(%ebp),%eax
 804845c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
~/objdump/main.h:8
	}
 8048462:	5d                   	pop    %ebp
 8048463:	c3                   	ret    

08048464 <Main::getA()>:
_ZN4Main4getAEv():
~/objdump/main.h:10

	int getA(void)
 8048464:	55                   	push   %ebp
 8048465:	89 e5                	mov    %esp,%ebp
~/objdump/main.h:12
	{
		return this->a;
 8048467:	8b 45 08             	mov    0x8(%ebp),%eax
 804846a:	8b 00                	mov    (%eax),%eax
~/objdump/main.h:13
	}
 804846c:	5d                   	pop    %ebp
 804846d:	c3                   	ret    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213528.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言经典面试题_c语言常见面试题

    C语言经典面试题_c语言常见面试题100道c语言面试题2018年01月12日18:52:35cocos+unity+服务器阅读数:9166https://blog.csdn.net/themagickeyjianan/article/details/79047242题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C语言面试宝典(林锐《高质量编程第三版》)。说明:1、部…

    2022年8月28日
    3
  • 网页实时显示时间_html页面布局代码

    网页实时显示时间_html页面布局代码在html页面实时显示系统时间桌面新建记事本,将下列代码复制粘贴,重命名后缀为.html,保存,用浏览器打开即可<html><head><metahttp-equiv=”Content-Type”content=”text/html;charset=utf-8″/><title>系统时间</title&gt…

    2025年9月1日
    13
  • 树、二叉树(完全二叉树、满二叉树)概念图解「建议收藏」

    树、二叉树(完全二叉树、满二叉树)概念图解「建议收藏」1、树的定义树是n个结点的有限集合,有且仅有一个根结点,其余结点可分为m个根结点的子树。2、树的概念结点的度:一个结点拥有子树的个数称为度。比如A的度为3,C的度为2,H的度为0。度为0的结点称为叶子节点(D,F,G,H)。树的度是树中所有结点的度的最大值,此树的度为3。 树中结点的最大层次成为树的深度或高度。此树的深度为4。 父节点A的子结点B,C,D;B,C,D也是兄弟节点…

    2022年7月13日
    17
  • Android 短信验证码自动填充

    Android 短信验证码自动填充一、前言:这周项目做优化,为用户操作更加方便,注册、忘记密码、更换手机号、所需要的获取验证码操作,增加获取短信验证码,然后自动填写到输入框中。思路简单,主要是监听短信的广播,然后正则短信中的验证码二、具体代码:packagecom.taikongdan.app.service;importandroid.content.BroadcastReceiver;importan

    2022年7月16日
    34
  • SPSS学习笔记(五)卡方检验

    SPSS学习笔记(五)卡方检验和“SPSS学习笔记”的其他方法不同,卡方检验​​​​​​​是针对计数资料的目录一、卡方检验、Fisher精确检验(2*2)分析操作结果及分析二、卡方检验(R×C)分析操作结果及分析三、配对卡方检验分析操作结果及分析一、卡方检验、Fisher精确检验(2*2)分析:案例:该医生招募了100名研究对象,按照吸烟状态分为两组,其中吸烟者52人,不吸烟者48人,探讨吸烟与阿尔兹海默症之间的关联性需要先满足4项假设:假设1:存在两个二分类变量,

    2022年10月19日
    3
  • linux 海思hi3798m_海思Hi3798模块芯片,Hi3798处理器参数介绍[通俗易懂]

    linux 海思hi3798m_海思Hi3798模块芯片,Hi3798处理器参数介绍[通俗易懂]Hi3798CV200是用于DVB和IPTV机顶盒市场的支持4KP60解码的超高清高性能SOC芯片,集成4核64位高性能CortexA53处理器、内置NEON加速引擎,强大的CPU处理能力可以满足各种差异化的业务需求。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。Hi3798支持4Kx2K@P6010bit超高清视频解码,支持H.265/HEVC、H.2…

    2022年6月24日
    198

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号