2016_CSAW_CTF_Quals_Reverse_Rock100 Writeup
2017-04-14 11:44
731 查看
百度杯提供了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
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
相关文章推荐
- 小菜一碟 - WHCTF - 2016 - Reverse
- [置顶] CTF--2016XDCTF全国网络安全大赛之reverse5
- D-CTF Quals 2016 - Warm heap
- 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp
- volga-ctf-quals-2016 pwn web_of_scicen_250 writeup
- [置顶] CTF--2016XDCTF全国网络安全大赛之reverse2
- [zctf 2016] reverse 100 write up
- H4CK1T CTF 2016 Mexico-Remote pentest writeup
- 2016 CFF Reverse
- 2016 ISCC CTF 比赛 BASE 心灵鸡汤
- CTF练习-TU-CTF-2016 pwn BBYS-first-elf-25 记录
- VK Cup 2016 - Round 1 (Div. 2 Edition) A. Bear and Reverse Radewoosh 水题
- ctf.360.cn第二届,逆向部分writeup――第一题
- 171101 逆向-EISCTF(Reverse)
- 【bugku】CTF-练习平台writeup
- CTF练习 TU-ctf-2016 pwn woO-50
- VK Cup 2016 - Round 1 (Div. 2 Edition) A Bear and Reverse Radewoosh
- Iscc2016 writeup
- VK Cup 2016 - Round 1 (Div. 2 Edition) A. Bear and Reverse Radewoosh
- ctf.360.cn第二届,逆向部分writeup――第二题