linux系统查询二进制BIn文件方法
在 Linux 上分析二进制文件的方法有很多,以下是其中几种常见的方法:
- 使用 objdump 命令
objdump 命令可以显示二进制文件的汇编代码、符号表和其他信息,可以用来分析二进制文件的结构和代码逻辑。例如:
objdump -d binaryfile
这个命令会显示二进制文件的汇编代码。可以通过分析汇编代码来了解程序的执行流程和逻辑。
下面是一个使用 objdump 命令的例子:
假设有一个名为 test 的可执行文件,我们想要分析它的汇编代码,可以使用以下命令:
objdump -d test
这个命令会显示 test 可执行文件的汇编代码,例如:
08048400 <_start>:8048400: 31 ed xor %ebp,%ebp8048402: 5e pop %esi8048403: 89 e1 mov %esp,%ecx8048405: 83 e4 f0 and $0xfffffff0,%esp8048408: 50 push %eax8048409: 54 push %esp804840a: 52 push %edx804840b: 68 00 60 00 00 push $0x60008048410: 68 08 00 00 00 push $0x88048415: 68 00 10 00 00 push $0x1000804841a: e8 71 ff ff ff call 804838f <mmap@plt>804841f: 83 c4 10 add $0x10,%esp8048422: 89 c2 mov %eax,%edx8048424: 83 e2 01 and $0x1,%edx8048427: 85 c0 test %eax,%eax8048429: 79 06 jns 8048431 <_start+0x31>804842b: 50 push %eax804842c: e8 3f ff ff ff call 8048370 <exit@plt>8048431: 83 ec 0c sub $0xc,%esp8048434: 6a 00 push $0x08048436: 68 00 60 00 00 push $0x6000804843b: 68 00 10 00 00 push $0x10008048440: 6a 07 push $0x78048442: e8 29 ff ff ff call 8048370 <exit@plt>8048447: 90 nop
可以看到,这个命令输出了 test 可执行文件的汇编代码,以 _start 函数为起点,每行显示一条汇编指令。可以通过分析汇编代码来了解程序的执行流程和逻辑。
- 使用 gdb 调试器
gdb 调试器可以用来调试二进制文件,也可以用来分析二进制文件的代码逻辑。例如:
gdb binaryfile
这个命令会启动 gdb 调试器,并加载二进制文件。可以通过 gdb 调试器来分析程序的执行流程、变量值和内存状态等信息。
- 使用 strace 命令
strace 命令可以用来跟踪程序的系统调用,可以用来分析程序的行为和逻辑。例如:
strace binaryfile
这个命令会跟踪二进制文件的系统调用,并输出系统调用的参数和返回值。可以通过分析系统调用来了解程序的行为和逻辑。
- 使用 ltrace 命令
ltrace 命令可以用来跟踪程序的库函数调用,可以用来分析程序的行为和逻辑。例如:
ltrace binaryfile
这个命令会跟踪二进制文件的库函数调用,并输出函数的参数和返回值。可以通过分析库函数调用来了解程序的行为和逻辑。
- 使用 objcopy 命令
objcopy 命令可以用来复制二进制文件,并对其进行格式转换、分离等操作。例如:
objcopy -O binary -j .text binaryfile binaryfile.bin
这个命令会将二进制文件的 .text 段复制到一个新的二进制文件 binaryfile.bin 中。可以通过这种方式来提取二进制文件中的某个段或者分离出可执行文件的代码段和数据段等。
- 使用 radare2 工具
radare2 是一款开源的反汇编和逆向工程工具,可以用来分析二进制文件的代码逻辑、函数调用关系和控制流等信息。它支持多种架构和文件格式,并提供了丰富的命令行工具和插件。与 IDA Pro 相比,radare2 是一个完全免费的工具,但是学习曲线比较陡峭。
- 使用 Binary Ninja 工具
Binary Ninja 是一款商业的反汇编和逆向工程工具,可以用来分析二进制文件的代码逻辑、函数调用关系和数据结构等信息。它提供了直观的图形化界面和强大的分析功能,支持多种架构和文件格式,并且可以通过插件机制扩展功能。与 IDA Pro 相比,Binary Ninja 是一款新兴的工具,但是已经受到了广泛的关注和使用。
这些方法和工具都可以用来分析二进制文件,每种方法和工具都有其独特的功能和优势,可以根据具体情况选择合适的方法来进行分析。
- 使用 Ghidra 工具
Ghidra 是一款由美国国家安全局(NSA)开发的开源反汇编和逆向工程工具,可以用来分析二进制文件的代码逻辑、函数调用关系和数据结构等信息。它提供了直观的图形化界面和强大的分析功能,支持多种架构和文件格式,并且可以通过插件机制扩展功能。与 IDA Pro 和 Binary Ninja 相比,Ghidra 是一款新兴的工具,但是已经受到了广泛的关注和使用。
- 使用 objdump 的反汇编功能
除了 objdump 显示汇编代码外,它还提供了反汇编功能,可以将二进制文件反汇编为汇编代码。例如:
objdump -M intel -D binaryfile
这个命令会将二进制文件反汇编为 Intel 格式的汇编代码。可以通过分析汇编代码来了解程序的执行流程和逻辑。
- 使用 gdb 的反汇编功能
除了调试功能外,gdb 还提供了反汇编功能,可以将二进制文件反汇编为汇编代码。例如:
gdb binaryfile
(gdb) disassemble
这个命令会将二进制文件反汇编为汇编代码。可以通过分析汇编代码来了解程序的执行流程和逻辑。
- 使用 readelf 的段信息功能
除了查看 ELF 文件格式信息外,readelf 还提供了段信息功能,可以显示二进制文件中各个段的信息。例如:
readelf -S binaryfile
这个命令会显示二进制文件中各个段的信息,包括名称、起始地址、大小等。可以通过分析段信息来了解程序的结构和代码逻辑。
这些方法和工具都可以用来分析二进制文件,每种方法和工具都有其独特的功能和优势,可以根据具体情况选择合适的方法来进行分析。
相关文章:
linux系统查询二进制BIn文件方法
在 Linux 上分析二进制文件的方法有很多,以下是其中几种常见的方法: 使用 objdump 命令 objdump 命令可以显示二进制文件的汇编代码、符号表和其他信息,可以用来分析二进制文件的结构和代码逻辑。例如: objdump -d binaryfile这…...
api接口调用(1688/Taobao/jd平台API接口的调用实例)
api接口调用 CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网…...
Python+Yolov5舰船侦测识别
程序示例精选 PythonYolov5舰船侦测识别 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对<<PythonYolov5舰船侦测识别>>编写代码,代码整洁,规则,…...
Qt5.9学习笔记-事件(五) 事件调试和排查
⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…...
【实用工具】SpringBoot实现接口签名验证
需求场景 由于项目需要开发第三方接口给多个供应商,为保证Api接口的安全性,遂采用Api接口签名验证。 Api接口签名验证主要防御措施为以下几个: 请求发起时间得在限制范围内请求的用户是否真实存在是否存在重复请求请求参数是否被篡改 项目…...
DDR基础
欢迎关注我的博客网站nr-linux.com,图片清晰度和,排版会更好些,文章优先更新至博客站。 DDR全称Double Data Rate Synchronous Dynamic Random Access Memory,是当代处理器必不可少的存储器件之一。本文关于DDR介绍的核心点如下&…...
理解find命令
find命令使用通配符,而不是正则表达式 对于如下两个命令 find ./ -name *txt 和 find ./ -name \*txt 这两个命令之间的区别在于 shell 对通配符字符 * 的解释和展开方式不同。 find ./ -name *txt:在这个命令中,shell 在将命令传递给 fin…...
OpenCV教程——调整图像亮度与对比度,绘制形状和文字
调整图像亮度与对比度 1.图像变换 图像变换通常有两种方式: 像素变换:点操作邻域操作:区域 调整图像亮度和对比度属于像素变换(点操作)。 2.调整图像亮度与对比度 可以通过以下公式调整图像的亮度和对比度&#…...
Python模块篇:函数/类/变量和常量/注释/导入和使用
大家好,我是辣条哥!本期应邀写了一些Python模块相关内容~ Python模块是一种组织Python代码的方式,它将相关的代码放在一个文件中,以便于重用和维护。Python模块可以包含函数、类、变量和常量等,可以被其他Python程序导…...
Java反射和动态代理
反射 反射允许对封装类的成员变量、成员方法和构造方法的信息进行编程访问 成员变量:修饰符、名字、类型、get/set值 构造方法:修饰符、名字、形参、创建对象 成员方法:修饰符、名字、形参、返回值、抛出的异常、获取注解、运行方法 获取…...
[NOIP2004 提高组] 津津的储蓄计划(思路+代码详解)Python实现
题目描述 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年…...
分布式搜索引擎es 面试突击
es elastocsearch 倒排索引是在数据查询之前建立,在查询的时候可以直接通过关键词定位到文档内容。用空间换时间 分布式架构原理说一下? es底层是基于lucene来的 大概就是一个用于全文检索的jar包 用es来做分布式的搜索引擎 可以承载一秒钟几千的…...
社会心理学的六个经典实验
社会心理学的六个经典实验 社会心理学(Social Psychology)是一门研究我们周围情境的力量的科学,尤其关注我们是如何看待他人,如何影响他人的。更确切地说,社会心理学是一门就人们如何看待他人,如何影响他人…...
Java 单例模式详解
单例模式(Singleton Pattern)是一种常见的设计模式,它可以确保某个类只有一个实例,并提供对该实例的全局访问点。本文将详细介绍 Java 中所有单例模式实现,包括懒汉式、饿汉式、枚举式、双重检查锁定式、静态内部类式等…...
AI读心重磅突破登Nature!大脑信号1秒被看穿,还能预测未来画面
最近,来自洛桑联邦理工学院的研究团队提出了一种全新的方法,可以用AI从大脑信号中提取视频画面。论文已登Nature,却遭网友疯狂「打假」。 现在,AI不仅会读脑,还会预测下一个画面了! 利用AI,一个…...
【SAP Abap】X-DOC:SNRO - ABAP流水号应用
【SAP Abap】X-DOC:SNRO - ABAP流水号应用 1、定义表(字段域)2、定义流水号3、使用流水号4、测试程序 1、定义表(字段域) 2、定义流水号 Tcode: SNRO/SNUM, 根据以上创建的字段域 YDSNRO,创建对…...
基于AT89C51单片机的交通灯设计与仿真
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87763760?spm1001.2014.3001.5503 源码获取 主要内容: 设计一个能够控制十二盏交通信号灯的模拟系统,:利用单片机的定时器定时,令十字路口…...
MySQL系列三(定位慢SQL、SQL优化与索引优化)Using filesort
文章目录 1. 慢SQL1.1 定位慢SQL(慢查询日志)1.2 慢SQL优化整体思路 2. 索引优化3. SQL语句优化回表Using filesort 1. 慢SQL 1.1 定位慢SQL(慢查询日志) 在mysql 配置文件中 (my.conf),进行下面配置&…...
免费使用GPT-4.0?【AI聊天 | GPT4教学】 —— 微软 New Bing GPT4 申请与使用保姆级教程
目录 认识 New Bing 2. 注册并登录 Microsoft 账号 3. 如何免科学上网使用 New Bing? 4. 加入 WaitList 候补名单 5. 使用 New Bing! 6. 使用 Skype 免科学上网访问 New Bing! 7. 在 Chrome 浏览器中使用 New Bing! 8. 总…...
渲染对电脑伤害大吗_如何减少渲染伤机?
虽然说摄影穷三代,但想要自己的本地配置跟上自己的创作速度,高昂的硬件配置支出也可以让自己穷一段时间。CG制作过程中,渲染是必不可少的一步,而且这一步也是很吃“机器”的,那很多人也会担心,如果经常用自…...
抖音数字资产管理方法论:构建个人内容沉淀系统的技术实践
抖音数字资产管理方法论:构建个人内容沉淀系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑
用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时,那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者,理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...
Win10系统清理避坑指南:你的BAT脚本真的安全吗?盘点那些不能乱删的文件
Win10系统清理避坑指南:BAT脚本安全操作手册每次看到那些号称"一键清理系统垃圾"的BAT脚本在技术论坛被疯狂转发,我的工程师朋友老张就会忍不住摇头。上周他刚帮一位设计师修复了崩溃的Photoshop——原因正是某个清理脚本删除了Adobe的临时工作…...
DeepSeek-R1补全能力封测倒计时(仅剩72小时开放API灰度权限):这份内部测试SOP已被3家头部科技公司紧急采购
更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1代码补全能力封测全景概览 DeepSeek-R1 是深度求索(DeepSeek)推出的高性能开源推理模型,在代码补全场景中展现出显著的上下文理解力与多语言泛化能力。本…...
告别浪费!SolidWorks企业级共享方案,实现降本增效全攻略
还在为 SolidWorks 高昂的硬件投入和混乱的图纸管理头疼?告别“一人一机”的浪费模式,企业级共享方案才是降本增效的正解。这套攻略基于“1 台高性能服务器 云飞云共享云桌面”架构,帮你把硬件成本砍掉 60%,把软件利用率翻倍。一…...
解决方法:庐山派K230接串口没识别到端口问题
一、插入usb转串口工具之前二、插入usb转串口工具之后三、解决方法说明:🔍 核心原因:USB Serial 设备,没有被识别为 COM 口你现在看到的 USB Serial,说明开发板已经正常启动了,USB 也被电脑识别到了&#x…...
php有什么版本,php语言有几个版本
php有什么版本,php语言有几个版本PHP的大版本主要分四支:PHP4/PHP5/PHP6/PHP7 其中,PHP4由于太古老、对OO支持不力已基本被淘汰,请无视PHP4。 PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP…...
网飞成立 AI 动画工作室,开启流媒体“原生 AI 制片时代”,中外布局逻辑有何不同?
1. Netflix“偷跑”在影视巨头关于 AIGC 的军备竞赛中,Netflix 再次加速。据外媒 TheVerge 报道,网飞于今年 3 月成立了名为 "INKubator" 的工作室,这是全球流媒体巨头中首个以生成式人工智能为核心的动画制作部门。此动作引发全球…...
终极指南:用D2DX让《暗黑破坏神2》在现代电脑上焕发新生
终极指南:用D2DX让《暗黑破坏神2》在现代电脑上焕发新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经…...
从《王者荣耀》野怪巡逻到RTS单位集结:拆解Unity Navigation系统在实战中的4种高级用法
从《王者荣耀》野怪巡逻到RTS单位集结:拆解Unity Navigation系统在实战中的4种高级用法在MOBA游戏中,野怪沿着固定路线巡逻时突然转向追击玩家;RTS战场上,上百个单位向同一目标点移动却能保持整齐队形;潜行游戏中&…...
