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

简单使用

待记录...

修改源码

修改字符串 题目链接

  1. 要修改的函数如下

    复制代码
    1
    2
    3
    4
    5
    6
    7
    void read_flag() {  int fd; // [esp+1Ch] [ebp-Ch] ​  fd = open("/proc/flag", 0);  read(fd, gbuf, 0x1000u); ​

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

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

    复制代码
    1
    .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简单函数转化,后期补充

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

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

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

     

  7. 替换后的结果:

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

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

    复制代码
    1
    2
    3
    4
    5
    6
    7
    void read_flag() {  int fd; // [esp+1Ch] [ebp-Ch] ​  fd = open("./flag.txt", 0);  read(fd, gbuf, 0x1000u); }

修改汇编指令

未完待续...

最后

以上就是无私服饰最近收集整理的关于IDA简单使用及源码修改教程的全部内容,更多相关IDA简单使用及源码修改教程内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部