CUIT CTF WriteUp-鬼子进村
2014-05-22 16:23
218 查看
该题也出的比较有意思,64位的linux下的逆向,对于我这种逆向菜鸟第一次利用IDA纯静态分析撸出题来,简直是一大突破,下面就简单分析下撸题过程。
首先运行看程序是个什么东西,运行后发现需要输入一个文件名作为参数
正确的文件名通过IDA定位后发现为“baidushadu”(这名字:好坑)
(IDA的Graph还真清晰呢)通过IDA的Graph显示就可以很清楚地看到整个程序的流程,后面的操作就好办多了
直接在Graph里面分析,当参数为“baidushadu”时,程序会分两次读取文件内的信息,两次读取的字节不一样
通过IDA分析可以知道,第一次读取10Bytes,第二次为12Bytes,并且通过IDA反汇编处的代码,可以判断出,程序会将第一次读取的字符串与“enterkey ”进行匹配
继续往下面看,发现程序会将第二次读入的12bytes进行处理然后与“pqllauzduh”进行比对,经过分析具体处理过程如下
设第二次读入的12bytes为字符串Str1,并令Str2 = “pqllauzduh”,那么处理过程如下
然后写个程序逆向处理可以得到Str1为:tupperware
So,flag:tupperware
首先运行看程序是个什么东西,运行后发现需要输入一个文件名作为参数
正确的文件名通过IDA定位后发现为“baidushadu”(这名字:好坑)
(IDA的Graph还真清晰呢)通过IDA的Graph显示就可以很清楚地看到整个程序的流程,后面的操作就好办多了
直接在Graph里面分析,当参数为“baidushadu”时,程序会分两次读取文件内的信息,两次读取的字节不一样
通过IDA分析可以知道,第一次读取10Bytes,第二次为12Bytes,并且通过IDA反汇编处的代码,可以判断出,程序会将第一次读取的字符串与“enterkey ”进行匹配
继续往下面看,发现程序会将第二次读入的12bytes进行处理然后与“pqllauzduh”进行比对,经过分析具体处理过程如下
设第二次读入的12bytes为字符串Str1,并令Str2 = “pqllauzduh”,那么处理过程如下
for i in range(0, 5): Str1[i] = chr(ord(Str[i]) - 4) for i in range(5, 10): Str1[i] = chr(ord(Str[i]) + 3)
然后写个程序逆向处理可以得到Str1为:tupperware
s = ‘pqllauzduh’ flag = ‘’ for i in range(0, 5): flag += chr(ord(s[i]) + 4) for i in range(5, 10): flag += chr(ord(s[i]) - 3)
So,flag:tupperware
相关文章推荐
- CUIT CTF WriteUp-BP断点
- CUIT CTF WriteUp-最简单的加解密
- CUIT CTF WriteUp-Code100
- CUIT CTF WriteUp-女神的秘密
- CUIT CTF WriteUp-小白和小黑的故事
- CUIT CTF WriteUp-最简单的题目
- CUIT CTF WriteUp-初中数学题
- CTF writeup:tomcat上传webshell后门
- 记一次CTF过程(Writeup)
- 中级CTF:pyscript writeup
- [置顶] BugkuCTF——web篇writeup(持续更新)
- 【Writeup】Boston Key Party CTF 2015(部分题目)
- bugkuctf练习平台reverse部分writeup
- 南邮CTF平台writeup:Web(一)
- writeup hitcon-ctf-2014/stkof
- 34C3 ctf writeup
- CTF考核writeup(2)
- CTF writeup:python脚本爆破zip密码
- 9447 ctf writeup
- [zctf 2016] reverse 100 write up