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

相关推荐

  1. ghidra

    2024-06-09 22:18:02       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 22:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 22:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 22:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 22:18:02       20 阅读

热门阅读

  1. P11 品牌管理

    2024-06-09 22:18:02       11 阅读
  2. 爬山算法的详细介绍

    2024-06-09 22:18:02       11 阅读
  3. Flutter 常见报错记录

    2024-06-09 22:18:02       13 阅读
  4. 解决更新Android Studio后下载Gradle超时

    2024-06-09 22:18:02       11 阅读
  5. 给自己Linux搞个『回收站』,防止文件误删除

    2024-06-09 22:18:02       12 阅读
  6. 前端通用样式调整方法(整理版)

    2024-06-09 22:18:02       9 阅读
  7. web 前端开发培训:深入探索与实战应用

    2024-06-09 22:18:02       14 阅读