2016_CSAW_CTF_Quals_Reverse_Rock100 Writeup

百度杯提供了Rock题目

GitHub上有Writeup


先运行找关键点

1234是自己随意输入的,可以看到提示字符串:Checking和Too short or too long

说明检查函数给了我们提示字符,用IDA-string查找一下

至少看到了两个关键函数:4016BA和4017E6

还有个FLAG的字符串,猜测是作为初始化的值然后需要做运算等,4015DC也是有用的

进入main中,查看函数逻辑,先是读取我们的input,存入v18变量,然后用4015DC函数对于v18做处理之后,存入v23

接着是4016BA的处理,因为我们需要看到Flag,所以4017E6处的判断需要成立,如下:

那么进入三个函数去看功能

4015DC只给了我们初始字符串,4016BA是对我们输入的字符串进行判断和处理,先是判断长度是否为30,然后进行两次for循环都是简单xor操作

4017E6是判断初始字符串和处理后的输入字符串是否相等

只需要把过程逆着就好了,简单数学

string = 'FLAG23456912365453475897834567'
flag = ''
for i in string:
	flag += chr((((ord(i) - 9) ^ 16) - 20) ^ 0x50)
print flag


全部评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务