Reverse
ViQinere
64位elf文件,载入ida后发现与以往的不同。很多函数都没显示出来。
linux中运行一下,显示对flag加密,然后是一些乱码。后来群里通知, 这个有靶机。
nc连接一下,那题目的flag存放在服务器,文件操作取出flag,经过加密。
接着再在ida中看一下,有几个字符很懵,后面才发现就是改变输出字符串样式,这也是为什么linux中运行的时候会有涂鸦与闪动。
然后是被涂鸦的那一段坑了,显示 Flag was encrypted by http://cc.TaQini.space ,一直以为加密和这个有关, 嗯…后来发现是题目作者给自己打的广告。
虽然很多函数不能显示出来,但也是能猜出来作用。看看汇编会更清楚。
最后找到加密函数 sub_1249((__int64)byte_4080); 这下就好办了。进去函数可以知道,大写字母加密为大写字母,小写字母加密为小写字母,其他字符不变。
对于逆这个算法,没有过多的想,算是直接穷尽的吧。因为大写字母变大写字母,小写字母变小写字母。
exp:
1 |
|
最后补充一下对改变输出字符串的知识。
\033[0m | 关闭所有属性 |
---|---|
\033[01m | 设置高亮度 |
\033[04m | 下划线 |
\033[05m | 闪烁 |
\033[07m | 反显 |
\033[08m | 消隐 |
\033[30m – \033[37m | 设置前景色 |
\033[40m – \033[47m | 设置背景色 |
\033[nA | 光标上移n行 |
\033[nB | 光标下移n行 |
\033[nC | 光标右移n行 |
\033[nD | 光标左移n |
\033[y;xH | 设置光标位置 |
\033[2J | 清屏 |
\033[K | 清除从光标到行尾的内容 |
\033[s | 保存光标位置 |
\033[u | 恢复光标位置 |
\033[?25l | 隐藏光标 |
\033[?25h | 显示光标 |
总结: 题本来很简单,主要几次被带入坑。也是没经验。
MiscVm
下载下来, 64位的无壳elf文件和一个操作码文件。操作码其实题中也有, 这里单独给了方便很多。
载入ida. C++逆向类的,但还好都是很基本的语法。
分别进去三个加密函数,第一个: sub_19E2((int64)&v13 (__int64)&v14); 很简单,就是 2个数的值交换。
第二个: sub_1551((int64)&v14, (int64)&v13); 就是按照给定顺序进行简单的值交换。
第三个: v8 = (unsigned int)sub_EEC(&v14, &v15, 0LL) != 0,这个相对于要麻烦一些, 但分析一下, 思路理清,逆回去就好了。
exp: C语言写的,比较冗长。
1 |
|
BScript
感觉有点意思。主要就是考对文件内容的提取,还有就是找规律!!!
下载下来803个exe文件。随便打开一个看见简单的输入对比, 再打开一个还是同样的.但没有发现与解题相关的东西。
也是后面想着再去看看这个题才发现 每个exe文件让我们输入的都是一个PE文件的一部分, 那 熟悉的 MZ(4D5A)。
接下来就是去文件内容了。但是每个程序都是加了upx壳的。
然后用C语言写了脱壳:
1 |
|
下面提取每个程序的 PE文件那部分的内容. 弄完, 保存为exe文件后, 打不开…ida都不行, 看看了PE文件内容发现区段都没有。。
那就提取的内容有问题, 多看了几个原来的exe文件, 果然,有的提取内容的位置不一样。
但有803个exe。
开始找规律。列举了很多还是没发现。这也是本题花费时间最多的地方……..根据exe文件的字节大小来区分…改了一下提取内容的程序。
1 |
|
仍然打不开,但是这次区段都是齐的, ida可以打开就好了。
载入ida,发现有很多干扰项,但可以在比较函数上面一个看出是 base64加密。最后与密文比较:
找密文, 可以发现是程序运行才赋值的。
提取出来base解密一下,再md5得到flag. e801bcbcc42d3120d910ccc46ae640dd
Crypto
bbcrypto
由于python接触的很少,做了一个密码学的感觉像是在学python。不断查语法。
1 | # -*- coding:utf-8 -*- |
从题中可以看到,A与salt未知,但是salt给出了限制,必须字母且3位。
又知道flag的格式 flag{ },那结合密文与加密表达式,直接列方程加爆破解出未知量即可。
记得当时解出 A = 57. si = “ahh” 开始解密。
1 |
|
flag: flag{ad7d973ffdd285b476a1a727b3a8fbc4}
Misc
Questionaire
开始网站始终打不开,因为没接触过web,始终认为是考web的知识。
后面想着挂vpn试试。打开了,很多刁难性问题,直接查看网页源代码,找到对应答案即可。
/bin/cat 2
得到一张 gif 图片, 还是老办法放在 stegesolve 工具中看看。
开始看了好几圈也没看出什么名堂,也是很久了,在red plane的页面发现很像一个二维码,带着试一试用工具截取了下来。
使用 PsQREdit 2.4.3 真的得到了 flag. 具体题没有保留下来。