[ACTF新生赛2020]easyre 题解

简介: [ACTF新生赛2020]easyre 题解

1.查壳

32位文件,加了UPX壳

2.手动脱壳

使用Ollydbg

UPX是一个压缩壳,运行了UPX将我们要运行的已经压缩的程序解压,才是真正的程序入口点OEP

我们需要将跟着汇编代码,找到程序真正的入口点

使用ESP定律可以快速定位

按下F7,单步运行程序

运行了一步之后,发现右侧只有ESP标红了

跟踪,选择任意长的数据,打下硬件断点

按下F9运行,断下来的位置就是程序真正的入口点

 

在此处重建PE文件

点击dump就可以了

3.IDA分析

Shift+F12打开字符串窗口

跟踪可疑字符串

找到主函数

在数据处按下R,获得了对应的ASCII,是ACTF{},是一个flag的格式

然后剩余的flag部分减一后如果与存储的v1数组相同就是正确的flag

v1在上面由qmemcpy赋值

获得v1的值,编写脚本

v1 = [42,70,39,34,78,44,34,40,73,63,43,64]
//v1数组
byte_402000=[0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x20,0x21,0x22,0x00]
//byte_402000
flag=""
for i in v1:
   flag+=chr(byte_402000.index(i)+1)
print(flag)

flag{U9X_1S_W6@T?}

相关文章
BUUCTF [SWPU2019]我有一只马里奥 1
BUUCTF [SWPU2019]我有一只马里奥 1
487 0
BUUCTF [SWPU2019]我有一只马里奥 1
|
数据安全/隐私保护
BUUCTF zip伪加密 1
BUUCTF zip伪加密 1
1104 1
BUUCTF [WUSTCTF2020]爬 1
BUUCTF [WUSTCTF2020]爬 1
338 0
BUUCTF 文件中的秘密 1
BUUCTF 文件中的秘密 1
477 0
|
数据安全/隐私保护 Python
BUUCTF 传统知识+古典密码 1
BUUCTF 传统知识+古典密码 1
844 0
[HDCTF2019]Maze(初识逆向)
[HDCTF2019]Maze(初识逆向)
417 1
|
10月前
|
算法 安全 数据安全/隐私保护
BUUCTF-[2019红帽杯]easyRE(Reverse逆向)
本文详细介绍了对一个无壳的64位ELF文件进行逆向分析的过程。首先通过IDA查找关键字符串定位主函数,然后逐步分析函数逻辑,包括读取输入、异或操作等。接着通过多次Base64解码和异或操作,最终得到了关键的flag。整个过程涉及数组寻址、条件判断和函数调用等技术细节,展示了CTF竞赛中常见的逆向工程技巧。最后附上了完整的Python代码实现,帮助读者理解和复现。
561 1
BUUCTF-[2019红帽杯]easyRE(Reverse逆向)
|
10月前
|
安全 数据安全/隐私保护 Python
BUUCTF-[GUET-CTF2019]re(Reverse逆向)
本文介绍了如何对一个带有UPX壳的ELF文件进行逆向分析。首先通过010Editor确认文件类型和壳的存在,接着使用Free UPX工具进行脱壳。脱壳后在IDA中加载文件,通过字符串查找和交叉引用跟踪定位关键函数。最终利用Python的z3库解决约束问题,得到flag。过程中还遇到了Python版本兼容性问题,并通过重新安装z3-solver解决。最终flag为`flag{e165421110ba03099a1c039337}`,经MD5解密验证为`233`。
327 0
BUUCTF-[GUET-CTF2019]re(Reverse逆向)
20基础解决-buuctf-1.RSA1
20基础解决-buuctf-1.RSA1