本篇分享知识要点:
1:查壳工具介绍
2:upx脱壳初探
3:IDA分析常规流程讲解
4:linux运行elf文件
5:gdb调试初探
学习,交流,分享
CTF并肩作战,你,并不孤单!
阅读完本篇文章大概需要5分钟,enjoy yourself!
一、查壳工具介绍
常见的查壳工具有exeinfope、PEID、EID,推荐EID或者exeinfope,因为PEID查壳有时候会误报,好尴尬。。。
示例1:
通过查壳得到如下关键信息:
32位、Windows可执行程序、C++编写、无壳
示例2:
通过查壳得到如下关键信息:
64位、linux 可执行程序、UPX壳
二、upx脱壳初探
使用 upx -d 命令即可对upx壳进行脱壳
如上图所示,壳已脱,可以验证一下
可见,确实脱掉了。
三、IDA分析常规流程讲解
首先,判断目标是32位还是64位
然后使用对应位数的IDA工具打开目标文件。
先从main函数开始分析
这里有一个小技巧
可以使用快捷键F5查看伪代码
简单分析一下伪代码
先通过strcpy函数将字符串复制到v13所指向的内存,
然后对输入的v3进行判断,输入的v3字符串要小于17
接着进行比较,看字符串v13是否和字符串v10相等
如果相等,则得到正确的flag
四、linux运行elf文件
使用file命令
将ELF文件放入Linux环境中进行分析
运行成功示例:
执行报错示例:
五、gdb调试初探
gdb -q no-strings-attached
使用 b decrypt 找到这个函数的Breakpoint地址
然后使用命令r下断点运行
接着使用n单步步过
使用 info reg 查询注册信息
使用 x/w $eax 命令打印eax的内容
转载微信公众号