WhaleCTF 逆向篇(上)~

WhaleCTF 逆向篇(上)~

    • PE格式
    • Warmup
    • app-release
    • r100(defcamp)
    • 逆向练习

闲来无事,写了几道逆向题目~~
简单记录一下

PE格式

题目描述:
WhaleCTF 逆向篇(上)~_第1张图片
使用PETool打开查看即可,块数目:
WhaleCTF 逆向篇(上)~_第2张图片
时间戳和信息标识:
WhaleCTF 逆向篇(上)~_第3张图片
入口地址:
WhaleCTF 逆向篇(上)~_第4张图片
所以得到flag:BJWXB_CTF{0004h-591D5CCCh-0005B789h-0103h}

Warmup

题目提示:
在这里插入图片描述
下载文件使用OD打开,找到关键函数:
WhaleCTF 逆向篇(上)~_第5张图片
经过分析,箭头所指向的应该是输入,然后经过系列变化得到新的值,然后与变量aLdyvlqmzhuyCqQ比较:
在这里插入图片描述
编写脚本:

s = "LDYVLQMZHuY:|cQ[^Qyo|cQ{~QYO\\CQ[^/s"

flag = ""
for i in s:
	flag += chr(ord(i) ^ 0xE)

print(flag)

得到:
在这里插入图片描述
flag:BJWXB_CTF{W4rm_UP_warm_up_WARM_UP!}

app-release

下载发现是apk文件,,,
直接使用工具查看源码:
WhaleCTF 逆向篇(上)~_第6张图片
查看一下,MainActivity.a这个函数:
WhaleCTF 逆向篇(上)~_第7张图片
ok,又是异或~
直接编写脚本:

s = "PXEJPMQFTiS|v`\"#vMDw`KMA3_b~w3o"

flag = ""
for i in s:
    flag += chr(ord(i) ^ 0x12)
   
print(flag)

得到:
在这里插入图片描述
flag:BJWXB_CTF{Andr01d_VerY_S!Mple!}

r100(defcamp)

下载文件查看main函数~
WhaleCTF 逆向篇(上)~_第8张图片
进入关键函数:
WhaleCTF 逆向篇(上)~_第9张图片
ok,一个二维数组的东西进行减法~
直接上脚本:

v3 = [['D','u','f','h','b','m','f'],
['p','G','`','i','m','o','s'],
['e','w','U','g','l','p','t']]

flag = ""
for i in range(0,12):
	x = ord(v3[i % 3][2 * int(i / 3)]) - 1
	flag += chr(x)

print(flag)

得到:
在这里插入图片描述
flag:Code_Talkers

逆向练习

下载文件使用ida打开,分析主函数:
WhaleCTF 逆向篇(上)~_第10张图片
要使v8不等于1~
WhaleCTF 逆向篇(上)~_第11张图片
在这里插入图片描述
给出字符串,然后根据下标把flag给找出来~
根据分析,下标为:
WhaleCTF 逆向篇(上)~_第12张图片
一共17个,编写脚本:

s = "KfxEeft}f{gyrYgthtyhifsjei53UUrrr_t2cdsef66246087138\\0087138"

v9 = [1,4,14,10,5,36,23,42,13,19,28,13,27,39,48,41,42]

flag = ""

for i in v9:
	flag += s[i-1]

print(flag)

得到一个不完整的key~
在这里插入图片描述
继续分析,发现:
在这里插入图片描述
得到完整的flag:KEY{e2s6ry3r5s8f61024}

你可能感兴趣的:(CTF题,WhaleCTF)