ctf逆向题目训练笔记(一)
ctf逆向题目训练笔记(一)
一:OPEN-SOURCE
题目来源:HackYou CTF
附件:main.c
拿到手的是c语言源代码。要做的就是算法逆向,很基础的题型了。格式化整理一下,看着更清晰:
发现有几个不认识的函数,看来c学的还不到位,那就先解决看不懂这个问题吧。经过百度以后,记下几个新学的东西。
1、atoi:函数 int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)
知道这个就可以了,不看中间那些条件,我们之间看最后输出结果。是一个算式。很明显是利用atoi函数转换数字以后再转换回来。
然后在按照前面的条件一一带入计算就行,另写一个脚本。
1 | CODE |
得到flag:c0fee
二:simple-unpack
题目来源:xctf
附件:bin
一道入门加壳题。首先用exeinfope查壳。
是UPX
打开kali,输入upx -d 1unpack脱壳,得到源文件。
1 | CODE |
将脱壳完的二进制文件丢进ida64里面。Shift+F12查看字符串窗口。Ctrl+F查找关键词“flag”。
直接 找到flag:flag{Upx_1s_n0t_a_d3liv3r_c0mp4ny}
三:python-trade
题目来源:NJUPT CTF 2017
附件:1.pyc
python逆向,之前在杂项碰到过这题。需要安装一个插件“uncompyle6”。首先安装python以后执行下面命令安装uncompyle6
1 | CODE |
安装完成后直接执行下面语句:
uncompyle6 1.pyc > 1.py
得到源代码。然后发现是一个加密算法,我们再写一个解密脚本,还是很简单的。
逆向思路:先base解码,再减少,再异或,转成字符串
1 | PYTHON |
最后得到flag:nctf{d3c0mpil1n9_PyC}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shangu's Blog!