一.ezIDA
首先是一个简单题,直接下载附件
直接拖入DIE,查看基本信息(基本步骤
ok,大概看到文件类型PE64,是windows下的64位文件
放入IDA pro(x64),在左侧找到main函数
看到flag字样,hgame{W3lc0me_T0_Th3_World_of_Rev3rse!}
二 .ezASM
这题考察汇编的基本知识,
打开附件,找到可疑字样,
大致明白是flag异或0x22得到c,根据异或的性质,c异或0x22得到flag
编写脚本
k=[74, 69, 67,79, 71, 89, 99, 113, 111, 125, 107, 81, 125, 107, 79, 82, 18, 80, 86, 22, 76, 86, 125, 22, 125, 112, 71, 84, 17, 80, 81, 17, 95, 34]
for i in range(len(k)):
print(chr(k[i]^0x22),end='')
得到flag:hgame{ASM_Is_Imp0rt4nt_4_Rev3rs3}
三.ezUPX
下载附件,依旧是放进DIE,
又是windows下的64位文件,但是注意到,有打包工具,也就是我们口中的“壳”
有壳的程序放入ida一般无法有效分析(因为基本上看不到什么东西
所以进行脱壳操作,
壳可以通过程序去除,也可以手动脱壳(感兴趣的小伙伴可以了解一下)
这里使用程序脱壳(需要用到upx
将文件,和程序放入同一目录下,打开终端
输入
可见脱壳成功,
放入DIE,进一步确认,
壳消失了
放入IDA pro(x64)分析
找到main函数
代码审计然后,编写脚本
s=[0x64, 0x7B, 0x76, 0x73, 0x60, 0x49, 0x65, 0x5D, 0x45, 0x13,
0x6B, 0x02, 0x47, 0x6D, 0x59, 0x5C, 0x02, 0x45, 0x6D, 0x06,
0x6D, 0x5E, 0x03, 0x46, 0x46, 0x5E, 0x01, 0x6D, 0x02, 0x54,
0x6D, 0x67, 0x62, 0x6A, 0x13, 0x4F, 0x32]
k=''
for i in range(len(s)):
k+=chr(s[i]^0x32)
print(k)
得到结果,VIDAR{Wow!Y0u_kn0w_4_l1ttl3_0f_UPX!}
四.ezPYC
最后一题,有点小麻烦,
首先,下载附件,根据提示和题目名知道是python逆向,
首先准备pyinstxtractor工具(事实上是个脚本。获取方式:github,本站搜索)
将附件和pyinstxtractor.py放入同个目录下
然后打开终端,
反编译成功,目录下出现文件夹 打开找到ezPYC.pyc
使用在线反编译工具
在线Python pyc文件编译与反编译 (lddgo.net)
# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information
# Version : Python 3.8
flag = [
87,
75,
71,
69,
83,
121,
83,
125,
117,
106,
108,
106,
94,
80,
48,
114,
100,
112,
112,
55,
94,
51,
112,
91,
48,
108,
119,
97,
115,
49,
112,
112,
48,
108,
100,
37,
124,
2]
c = [
1,
2,
3,
4]
input = input('plz input flag:')
for i in range(0, 36, 1):
if ord(input[i]) ^ c[i % 4] != flag[i]:
print('Sry, try again...')
exit()
continue
print('Wow!You know a little of python reverse')
return None
代码审计,然后进行解密(写脚本)
k=[87,75,71,69,83,121,83,125,117,106,108,106,
94,80,48,114,100,112,112,55,94,51,112,91,48,
108,119,97,115,49,112,112,48,108,100,37,124,2]
c= [1, 2, 3, 4]
flag=''
for i in range(len(k)):
flag+=chr(k[i] ^ c[i % 4])
print(flag)
得到VIDAR{Python_R3vers3_1s_1nter3st1ng!}
闲聊:本来想早点发的,拖着拖着就忘了QAQ
这几题还是挺好的,让新手接触了一下各个方向
如有错误,请指正