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

ghidra

https://github.com/NationalSecurityAgency/ghidra

ghidra是一个so的逆向工具,功能和jadx-gui类似,但是和jadx-gui专注于java层的不同,ghidra专注于native层的代码反编译(从二进制到c语言)。

一、 安装

  1. 准备好java17的环境(mac: brew install openjdk@17,软件基于java,是跨平台的)
  2. Github下载,从github上的release下载最新版本的ghidra,解压,执行 ./ghidraRun 即可打开。

使用zsh可以在~/.zshrc中配置这个alias,可以快速打开:)

alias ghidra=“/Users/${your_name}/Applications/ghidra_11.0.3_PUBLIC/ghidraRun”

二、基本使用

  1. 打开后点击file new project,按指引选中项目和存放暂存文件的目录。

  2. 选中import file,导入要逆向的so,比如如下导入了libyeshen.so

  3. 双击so即打开工程

  4. mac用户注意下打开允许使用

  5. 功能区说明:
    a. 左边是导出的方法,我是从入口方法开始看起,下面还有Functions,也是一堆堆方法
    b. 中间部分是静态地址和汇编指令。静态地址很关键,运行时hook、查看入参出参都需要对这个地址做操作。点击 “G” 按键可以输入地址,回车即可跳到目标地址。
    c. 反编译出来的C代码,含有程序的逻辑信息,看起来是比较辛苦,当时可以看个大概大概…
    d. 搜索so中的字符串信息可以这样搜索:

     i. 点击search 点击memoryii. 找到地址上的数据iii. 右键Reference -> show reference to DAT_xxxxxiv. 双击看到的地址,即可跳到使用这个地址的地方
    
  6. 备注和修改名字,都是右键出菜单,选中改名/改备注。考虑到复杂一点的so可能一天分析不完,所以增加备注,修改函数名字可以加速分析、暂存分析过程。

http://www.lryc.cn/news/368246.html

相关文章:

  • 如何解决网络问题?
  • 高速USB转串口芯片CH343
  • C++ MPI多进程并发
  • UFS协议入门-分层结构
  • Docker Desktop - WSL distro terminated abruptly
  • HTML-CSS练习例子
  • 【JavaScript脚本宇宙】创造声音的魔法:深入了解Web音频处理库
  • 苹果需要专注于让人工智能变得实用,而不是华而不实
  • 安全专业的硬件远控方案 设备无网也能远程运维
  • Freeswitch-soundtouch-变声开发
  • Unity2D游戏制作入门 | 09(之人物动画制作)
  • 【自动部署】4.阿里云ECS服务器 IDEA自动部署项目
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • LabVIEW控制PLC的实现方式
  • JSTL知识点讲解与配置
  • Autodesk 3ds Max软件下载安装;3ds Max功能强大的三维建模、渲染软件安装包获取
  • 联合体和枚举<C语言>
  • 算法人生(21):从“React框架”看“情绪管理”
  • 千益畅行:合法合规的旅游卡服务,真实可靠的旅游体验
  • Linux下软件安装
  • 在线按模板批量生成文本工具
  • Linux之关机重启
  • 【Android】使用EventBus进行线程间通讯
  • Leetcode 3179. Find the N-th Value After K Seconds
  • 发光二极管十大品牌
  • nginx配置文件
  • Linux基础I/O
  • 视觉SLAM14精讲——相机与图像3.1
  • ARM功耗管理框架之SCP
  • uni-app学习--基础组件使用、页面生命周期、本地存储、网络请求、条件编译、路由跳转