飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2367|回复: 5

[原创] Linux 下的逆向分析-初探

  [复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2022-6-20 14:12:55 | 显示全部楼层 |阅读模式
    本帖最后由 梦幻的彼岸 于 2022-6-23 16:34 编辑

    环境信息
    系统信息:统信UOS 家庭版21.3

    涉及工具:gcc、edb-debugger、ghidra、radare2
    [Bash shell] 纯文本查看 复制代码
    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 [url=https://github.com/eteran/edb-debugger.git]https://github.com/eteran/edb-debugger.git[/url]
    cd edb-debugger
    mkdir build
    cd build
    cmake ..
    make
    ./edb
    # 所有用户在系统中安装
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
    make
    make install
    edb

    测试代码 test.c
    [C] 纯文本查看 复制代码
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/ptrace.h>
     
     
    void main() {
        puts("test");
    }

    1.jpg
    基本信息
    可使用r2  -A ./helllo 打开要分析的文件   命令解析:运行“aaa”命令以分析所有引用的代码
    2.jpg

    it   //命令解析:计算文件hash信息
    3.jpg

    iI   //命令解析:显示文件二进制信息
    4.jpg


    ii //命令解析:显示文件导入信息
    5.jpg


    iz    //命令解析:列出数据段中的字符串
    6.jpg


    iE   //命令解析:导出(全局符号)
    7.jpg


    afl   //命令解析:列出函数
    8.jpg


    s main //跳转到main函数地址    命令解析:要在我们正在检查的文件中移动,我们需要使用s命令更改偏移量。

    px 16进制查看

    pdf 反汇编
    9.jpg


    或使用pdf@main命令进行查看  //@指定函数名称
    10.jpg


    或使用agf查看基本的函数视图
    11.jpg


    查看关键地址的16进制信息
    12.jpg


    备注:若命令进不住可输入v命令进入图形化操作界面

    调试
    载入后运行
        edb 打开生成的hello文件,检测到函数入口点自动暂停
        看到关键代码地址---0x402004
    13.jpg

    跳转到对应地址
        反汇编区右键选择Goto Expression...  输入对应地址
    14.jpg


    右键编辑
    15.jpg


    看到此区域对应te
    16.jpg


    下一行对应st
    17.jpg


    二进制编辑字符串将te修改为fe
    18.jpg


    返回查看对应的数据已改变  //右键Goto Rip 可返回
    19.jpg


    输出验证
    20.jpg


    反编译查看
    使用Ghidra加载hello文件,在Symbol Tree模块的FunctiOS文件夹内找到main函数,点击进入

    发现反编译后的伪代码与实际代码对比关键位置无错误,可读性也很不错
    21.jpg


    修改文件
    备注:建议在修改前对涉及到的原文件进行备份

    写入模式进行分析
    22.jpg

    关键代码数据对应地址信息:0x402004
    23.jpg

    查看地址引用情况
    24.jpg

    原始
    25.jpg

    修改
    26.jpg

    测试
    27.jpg

    初探部分内容到此告一段落,有缘再会

    评分

    参与人数 4威望 +8 飘云币 +8 收起 理由
    tree_fly + 5 + 5 PYG有你更精彩!
    smallhorse + 1 + 1 原创精品 感谢分享!
    不破不立 + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    llh001 + 1 + 1 赞一个,这个帖子很给力!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    昨天 11:22
  • 签到天数: 340 天

    [LV.8]以坛为家I

    发表于 2022-6-20 14:49:12 | 显示全部楼层
    感谢分享!令我知道了未知领域的一部分知识。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2022-6-21 10:36:03 | 显示全部楼层
    厉害,学习了。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    昨天 09:36
  • 签到天数: 521 天

    [LV.9]以坛为家II

    发表于 2022-6-21 14:11:18 | 显示全部楼层
    过来了解一下,多谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 14:53
  • 签到天数: 320 天

    [LV.8]以坛为家I

    发表于 2022-6-23 21:05:22 | 显示全部楼层
    感谢分享!令我知道了未知领域的一部分知识。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表