《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探

本篇分享知识要点:

1:查壳工具介绍

2:upx脱壳初探

3:IDA分析常规流程讲解

4:linux运行elf文件

5:gdb调试初探

学习,交流,分享

CTF并肩作战,你,并不孤单!

阅读完本篇文章大概需要5分钟,enjoy yourself!

一、查壳工具介绍

常见的查壳工具有exeinfope、PEID、EID,推荐EID或者exeinfope,因为PEID查壳有时候会误报,好尴尬。。。

示例1:
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
通过查壳得到如下关键信息:

32位、Windows可执行程序、C++编写、无壳

示例2:《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
通过查壳得到如下关键信息:

64位、linux 可执行程序、UPX壳

二、upx脱壳初探

使用 upx -d 命令即可对upx壳进行脱壳
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
如上图所示,壳已脱,可以验证一下

《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
可见,确实脱掉了。

三、IDA分析常规流程讲解

首先,判断目标是32位还是64位

然后使用对应位数的IDA工具打开目标文件。
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探

先从main函数开始分析

这里有一个小技巧

可以使用快捷键F5查看伪代码
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探

简单分析一下伪代码

先通过strcpy函数将字符串复制到v13所指向的内存,

然后对输入的v3进行判断,输入的v3字符串要小于17

接着进行比较,看字符串v13是否和字符串v10相等

如果相等,则得到正确的flag

四、linux运行elf文件

使用file命令

将ELF文件放入Linux环境中进行分析
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
运行成功示例:
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
执行报错示例:

《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
五、gdb调试初探

gdb -q no-strings-attached
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
使用 b decrypt 找到这个函数的Breakpoint地址

然后使用命令r下断点运行

接着使用n单步步过

使用 info reg 查询注册信息
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
使用 x/w $eax 命令打印eax的内容
《转载》CTF笔记-reverse第2弹-带你走近逆向世界之逆向初探
转载微信公众号

《西子实验室》