[原创]Linux 下的逆向分析-初探
2022-6-20 13:40 11333
系统信息:统信UOS 家庭版21.3
涉及工具:gcc、edb-debugger、ghidra、radare2
edb-debugger安装 # 安装构建所需依赖 //设置开发者模式可开启root权限 apt-get install git apt-get install pkg-config apt-get install cmake apt-get install build-essential apt-get install libboost-dev apt-get install libqt5xmlpatterns5-dev apt-get install qtbase5-dev apt-get install qt5-default apt-get install libgraphviz-dev apt-get install libqt5svg5-dev apt-get install libcapstone-dev # 构建与运行 //只打算在构建目录中运行edb-debugger git clone --recursive https://github.com/eteran/edb-debugger.git cd edb-debugger mkdir build cd build cmake .. make ./edb # 所有用户在系统中安装 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ .. make make install edb
#include <stdio.h> #include <stdlib.h> #include <sys/ptrace.h> void main() { puts("test"); }
可使用r2 -A ./helllo 打开要分析的文件 命令解析:运行“aaa”命令以分析所有引用的代码
it //命令解析:计算文件hash信息
iI //命令解析:显示文件二进制信息
ii //命令解析:显示文件导入信息
iz //命令解析:列出数据段中的字符串
iE //命令解析:导出(全局符号)
afl //命令解析:列出函数
s main //跳转到main函数地址 命令解析:要在我们正在检查的文件中移动,我们需要使用s命令更改偏移量。
px 16进制查看
pdf 反汇编
或使用[email protected]命令进行查看 //@指定函数名称
或使用agf查看基本的函数视图
查看关键地址的16进制信息
备注:若命令进不住可输入v命令进入图形化操作界面
edb 打开生成的hello文件,检测到函数入口点自动暂停
看到关键代码地址---0x402004
反汇编区右键选择Goto Expression... 输入对应地址
右键编辑
看到此区域对应te
下一行对应st
二进制编辑字符串将te修改为fe
返回查看对应的数据已改变 //右键Goto Rip 可返回
输出验证
使用Ghidra加载hello文件,在Symbol Tree模块的Functios文件夹内找到main函数,点击进入
发现反编译后的伪代码与实际代码对比关键位置无错误,可读性也很不错
备注:建议在修改前对涉及到的原文件进行备份
写入模式进行分析
关键代码数据对应地址信息:0x402004
查看地址引用情况
原始
修改
测试
初探部分内容到此告一段落,有缘再会
看雪2022 KCTF 秋季赛 防守篇规则,征题截止日期11月12日!(iPhone 14等你拿!)
最后于 2022-6-23 16:33 被梦幻的彼岸编辑 ,原因: