西普ctf 逆向题Writeup

西普ctf 逆向题Writeup

一、你知道注册码吗

用户名和注册码的比较运算用ida可以很清楚的逆向出:

根据用户名为syclover就可以获取flag了。

二、阿拉丁神灯

zhimakaimen@2011通关密语,提交上去就能获取flag

三、该题不简单

关键运算:

注册码为hello就能获取flag

四、此处无声

程序加了壳,dump后用ida分析,发现涉及到RC6和md5相关加密,

RC6Decrypt(MD5(username))的16进制输出即为注册码。具体算法如下:

五、证明自己吧

关键部分:

算法很简单,得出key即为flag。

六、你会吗

这题直接就很看到flag:

七、考验你能力的时候到了

算法简单,不难获取flag。

八、FALG

题目是一串很长的js脚本:

从中可以找到一些规律:每条运算都可以获取到一个数组的值,每条运算中下标最大的数组值就是该条运算可以获取的,从下标0开始可以依次获取所有数组的值。具体解密脚本如下:

九、有一个程序可以得到如下密文

一个pyc文件没有经过混淆,可以直接反编译获取到源码:

发现使用-d就能进行解码获取flag

十、这个flag有点怪

Apk加了不少反调试,以及检测不通过直接退出。通过静态分析也能获取flag,如下:

十一、babyCrack

C#写的CrackMe,Reflector反编译就能看到源码:

十二、wzwzDingDing

此题是win64驱动题,经过分析填充完善shellcode使其能运行,所需填充的数据即为flag。

未完善的shellcode:

根据堆栈平衡以及出栈入栈完善后的shellcode:

十三、Reversemeplz

该题主要涉及到一个字符的转换。

解密过程如下:

十四、John the packer

该题将几个重要的函数加密了,并在运行过程中才解密。

解密的过程不复杂,可以静态解密也可以动态调试来获取真实函数。下面是获取flag的脚本:

 

 

十五、Keylead

获取到的文件压缩了,解压后得到一个linux x64执行文件。静态分析后得知此题是5玩骰子,练习5次掷对后就能获取flag,可惜最后一个要掷出7,那是不可能的,不过稍微修改下程序flag就能出来了。

 

十六、Bin100(ebCTF 2013)

这题同样是掷骰子,和前一题类似,修改下程序flag就能出来了。

十七、NSCTF Reverse 400 & 500

NSCTF的writeup我在前一篇文章写过了,这里就不重复写了。

 

related:

http://www.shiyanbar.com/ctf/list/5

发表评论

电子邮件地址不会被公开。 必填项已用*标注