当前位置: 首页 > news >正文

一个自动反汇编脚本

一、环境

        wsl ubuntu18.04、python3.6

二、目的

        调试程序,需要分析第三方库。希望能将多个库自动转为汇编文件。

三、使用方法

        将该脚本下载,进入wsl,进入到该脚本所有文件夹。

        请使用      python 脚本名.py    运行。

        1)、运行第一次,此时会出现o, a, dis三个文件夹。

        2)、将需要分析的.a放入子目录a中。

        3)、运行第二次,结束后,发现反汇编文件全部在dis目录内。

四:代码(python3.6) 与 下载

import osPATH_LIBA   = "a"
PATH_OBJECT = "o"
PATH_DIS    = "dis"
CC          = "arm-none-eabi-"folder_path = "./"+PATH_LIBAdef ar_x(fileName):print(fileName)os.system(f"ar -x {fileName}")def mov_object_to_dir_O():"""for root, dirs, files in os.walk("./"):for f in files:if f.endswith(".o"):os.system(f"mv {f} ./o")"""os.system(f"mv *.o ./o")print("-"*40 + "move object to dir ./O finish.." + "-"*40)def objdump(fileName):print(fileName)os.system(f"{CC}objdump -d {PATH_OBJECT+'/'+fileName}.o > {fileName}.dis")def mov_dis_to_dir_dis():os.system(f"mv *.dis ./dis")if __name__ == "__main__":print(folder_path)os.system(f"mkdir -p {PATH_LIBA} {PATH_OBJECT} {PATH_DIS}")for root, dirs, files in os.walk(folder_path):print(f"current dir:{root}")#print(f"current dir sub:{dirs}")#print(f"current file:{files}")for f in files:if f.endswith(".a"):ar_x(PATH_LIBA+"/"+f)mov_object_to_dir_O()print("-"*40 + "ar -x finish" + "-"*40)for root, dirs, files in os.walk("./"+PATH_OBJECT):print(f"current dir:{root}")for f in files:if f.endswith(".o"):objdump(f.replace(".o", ""))mov_dis_to_dir_dis()print("-"*40 + f"{CC}objdump finish" + "-"*40)print("-"*40 + "total finish" + "-"*40)

PATH_LIBA   = "a"
PATH_OBJECT = "o"
PATH_DIS    = "dis"
CC          = "arm-none-eabi-"

以上参数视情况修改。

http://www.xdnf.cn/news/936739.html

相关文章:

  • 深度学习入门Day3--鱼书学习(2)
  • 前端十种排序算法解析
  • 电压型PHY芯片MDI接口设计
  • 计算机网络笔记(二十九)——5.1运输层协议概述
  • QT线程同步 QReadWriteLock并发访问
  • xtp+ctp 交易系统接口简介
  • DAX权威指南9:DAX 查询分析与优化1
  • leetcode 386. 字典序排数 中等
  • Python爬虫实战:研究demiurge框架相关技术
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十)
  • pgsql batch insert optimization (reWriteBatchedInserts )
  • Digital IC Design Flow
  • vue3:十六、个人中心-修改密码
  • bugku 网络安全事件应急响应
  • 02.管理数据库
  • CCPC guangdongjiangsu 2025 F
  • 【创新算法】改进深度优先搜索算法配合二进制粒子群的配电网故障恢复重构研究
  • 食养有方:进行性核上性麻痹患者的健康饮食指南
  • 解决SQL Server SQL语句性能问题(9)——SQL语句改写(2)
  • Linux系统防火墙之iptables
  • 工作记录 2017-08-01
  • 若依框架项目前缀配置
  • 如何在最短时间内提升打ctf(web)的水平?
  • Python安装使用教程
  • 实验三:VGA显示实验
  • JavaScript 数据类型详解
  • Razor编程中@Html的方法使用大全
  • Day25 异常处理
  • sizeof 与strlen的区别
  • Puppeteer测试框架 - Node.js