WhaleCTF 逆向篇(上)~


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

PE格式

题目描述:
在这里插入图片描述
使用PETool打开查看即可,块数目:
在这里插入图片描述
时间戳和信息标识:
在这里插入图片描述
入口地址:
在这里插入图片描述
所以得到flag:BJWXB_CTF{0004h-591D5CCCh-0005B789h-0103h}

Warmup

题目提示:
在这里插入图片描述
下载文件使用OD打开,找到关键函数:
在这里插入图片描述
经过分析,箭头所指向的应该是输入,然后经过系列变化得到新的值,然后与变量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文件,,,
直接使用工具查看源码:
在这里插入图片描述
查看一下,MainActivity.a这个函数:
在这里插入图片描述
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函数~
在这里插入图片描述
进入关键函数:
在这里插入图片描述
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打开,分析主函数:
在这里插入图片描述
要使v8不等于1~
在这里插入图片描述
在这里插入图片描述
给出字符串,然后根据下标把flag给找出来~
根据分析,下标为:
在这里插入图片描述
一共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}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值