利用ida内置脚本IDC静态调试和Linux内核动态调试gdb两种方法解决攻防世界no-strings-attached

最后都变了- 提交于 2021-02-05 15:27:38

利用ida内置脚本IDC静态调试和Linux内核动态调试gdb两种方法解决攻防世界no-strings-attached

一、首先来看静态调试的解决办法

1、文件识别

直接拖进PE识别工具 elf/32位
可以看出不是window可执行的PE文件,而是以Linux为内核的ELF文件,要在Linux系统下进行运行。

2、进行汇编与反汇编

话不多说,程序直击拖进ida.(注意这里的程序是32位的,要用32位ida来进行反汇编)



加密是对s和dword_8048A90进行操作
s代码段

由于我们一个一个读取数据太麻烦这里我们利用ida的内置脚本IDC将十分方便

在这里插入图片描述
这样我们就得到s全部的数据


接下来我们再打一脚本来模拟加密过程

运行之后我们就可以得到答案

通过静态调试后我们发现flag为9447{you_are_an_international_mystery}

二、Linux动态调试gdb来解决该问题

从上面ida的分析我们可以知道,加密过程decrypt运行完成后只要知道返回值dest即可,所以利用gdb在decrypt下断点即可

1、gdb ./文件名 载入程序

2、b decrypt(函数名)在decrypt下断点

3、r运行

在这里插入图片描述

4、n单步进入

在这里插入图片描述

5、x查看值 /s以字符串的形式 $eax 查看寄存器eax的值

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!