我是靠谱客的博主 无私服饰,最近开发中收集的这篇文章主要介绍IDA简单使用及源码修改教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单使用

待记录...

修改源码

修改字符串 题目链接

  1. 要修改的函数如下

    void read_flag()
    {
      int fd; // [esp+1Ch] [ebp-Ch]
    ​
      fd = open("/proc/flag", 0);
      read(fd, gbuf, 0x1000u);
    ​

  2. 因为正常情况下没有该目录文件,修改结果应为./flag.txt

  3. 双击该字符串,定位地址如下

    .rodata:080486B0 file            db '/proc/flag',0       ; DATA XREF: read_flag+E↑o

  4. 然后查看Hex View-1窗口,如下图所示:可以看到地址和上图相对应

     

  5. 将./flag.txt转化为字节码(也就是对应的ASCII)

    • 比较low的做法是查看ASCII对照表,一个一个的修改

      ./flag.txt => 2E 2F 66 6C 61 67 2E 74 78 74 00

      这里有一点需要注意:当要修改的字符串和原先字符串长度不能对应时,用00填充长度

      引申一下,如果修改命令后,长度不能对应,使用nop指令填充,X86中对应的字节码为90

    • 还有一个方法是通过python简单函数转化,后期补充

      #通过输入,转化字符串或者指令为字节码

  6. 将光标停留在2F之前,进行定位,然后Edit =》 Patch program =》Change byte

    ps 大部分情况修改源码,都是通过change byte 方式进行

     

  7. 替换后的结果:

  8. 为了保存修改的结果,操作步骤为 Edit =》 Patch program =》Apply patchs to input file

  9. 关闭文件后,重新打开查看结果:

    void read_flag()
    {
      int fd; // [esp+1Ch] [ebp-Ch]
    ​
      fd = open("./flag.txt", 0);
      read(fd, gbuf, 0x1000u);
    }

修改汇编指令

未完待续...

最后

以上就是无私服饰为你收集整理的IDA简单使用及源码修改教程的全部内容,希望文章能够帮你解决IDA简单使用及源码修改教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部