IDA

IDA中文网站 > 使用技巧 > 利用IDA简单找出逆向题的flag

利用IDA简单找出逆向题的flag

发布时间:2021/05/25

我们都知道程序编程好之后是不能看见它的源代码的,这时候就需要静态反编译软件IDA来进行简单地分析程序运行的主要逻辑。

IDA是目前公认逆向工程的利器之一,在安全分析上是必不可少的工具。在这里小编用一个逆向题作为实操内容,还能简单了解学习IDA的基本操作。

1、判断程序是32位还是64位

这道题小编是在bugku找到的,首先打开我们的程序,最简单的方法就是打开我们的任务管理器,在应用中找到我们打开的程序,然后后面有显示32位,那就已经确定了,判断完之后我们打开32位的IDA进行操作。

1
图 1:判断操作系统
  1. 运行程序

我们先运行一下程序,看看能不能直接找到有用的字符串信息,这里我们可以看到“DUTCTF”这个关键字符串,然后我们在IDA重点找到它就行。

2
图 2:运行程序

3、IDA打开程序

打开我们32位的IDA,进来点击“ok”,然后点击“new”选择我们要打开的程序。

之后会出现很多选项,我们这里直接默认,然后一直点“ok”就可以了。进去之后,左边的是程序的函数窗口,右边则是反汇编窗口,简单的逆向题只需要找到对应的关键字符串即可。

3
图 3:IDA打开程序界面
  1. 寻找程序代码

先找到“DUTCTF”字符串,找到“Viem”菜单打开“Open subviews”—“Strings”按键,也可以使用“Shift+F12”快捷键打开。

4
图 4:字符串工具

进入字符串窗口之后,通过浏览找到“DUTCTF”字样的字符串。

5
图 5:字符串窗口

然后我们双击点开,看看到底引用了什么东西。找到我们需要的关键字符串后,将光标移动到字符串然后按快捷键“x”(查看交叉引用)看看程序在哪里被引用了。

6
图 6:rdata字段窗口

然后会出现交叉引用窗口,我们直接点击“OK”就行了,进去会发现全部都是汇编代码。

7
图 7:程序汇编代码窗口

我们可以用IDA将汇编代码转换成伪代码进行分析查看程序的运行逻辑,这里按快捷键“F5”(查看伪代码)。通过简单的分析,我们可以轻松知道这里的V4的值就是我们要找的flag了,它实际的值在rdata段的“413E34”那里。

8
图 8:程序伪代码窗口

我们回到“view-A”窗口找到“413E34”字段,在字段所在的空白处按下快捷键“A”(按照ASCII形式显示数据) 将影藏的数据显示出来,后面的“DUTCTF{We1c0met0DUTCTF}” 就是我们要找的flag啦。

9
图 9:flag具体值
  1. 解题结果

重新运行我们的逆向题程序,然后复制粘贴刚刚找到的flag看看解题情况吧,可想而知答案是正确的。

10
图 10:解题结果

好了以上就是关于利用IDA简单找出逆向题的flag的实操讲解,实操中所用的例题较为简单,方便学习IDA的基本操作。

如遇到复杂程序,还需用到更多的IDA相关知识,如需学习更多有关IDA的内容可以前往IDA官网学习。

作者:茂杨                                                                                                  

标签:IDA反编译软件

读者也访问过这里: