2017 极客 RE Windows_3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017 极客 RE Windows_3相关的知识,希望对你有一定的参考价值。
像这种 RE 的题目看到第一反应应该是去查找它的信息,关于它是什么系统下的文件,32位还是64位机器的文件
我的办法是用虚拟机查看它的信息
可以看出它是 Windows 系统下的 32位机器下的文件
下一步,在 Windows 系统下打开 exe 文件
运行之后,它让你输入密码,若是不对则出现 check faild!
接下来,用 32 位的 IDA 打开程序,发现里面有很多可调用函数,5499个
于是可以直接用 shift + F12 查询反汇编中的字符串
可以看到一个 SYC{%s} ,这就是我们要找的关键地方,点开之后到达数据段,再点一下旁边的向上箭头可以到关键函数的栈区
再 F5 一下,可以看到它粗略的函数
发现只需要按照它的要求正序做一遍就行,这时候需要看 v 这些变量的地址是怎么样的 和 找到 byte_52E000 这个数组是什么
点开上面一串变量的地方,发现 v16 – v23的地址是连着的,而 v8 – v15的地址是连着的
再点开 byte_52E000 之后可以看到它的数据段,可以看到它的数据
现在就是想要将这部分数据处理出来,我是用 Notepad++
在 Notepad++ 里面,用 Alt + 鼠标选定,可以像截图一样去除一部分
然后再稍微处理一下变成一列竖条的数据,再用 python 把数字变成 10 进制,并把 ‘\\n‘ 换成 ‘,‘
最后就是代码实现正向运行
#include <stdio.h> int main() { int v16[8] = {7, 3, 1, 8, 7, 2, 3, 2}, v8[8] = {18, 19, 20, 1, 15, 20, 16, 11}; int m[22] = {79, 49, 33, 108, 46, 46, 46, 117, 111, 95, 95, 112, 53, 95, 85, 79, 115, 102, 115, 101, 68, 21}; for(int i = 0; i < 8; i++) { int v7 = m[v16[i]]; m[v16[i]] = m[v8[i]]; m[v8[i]] = v7; } m[21] = 0; for(int i = 0; i < 22; i++) printf("%c", m[i]); return 0; }
done by Vangelis
以上是关于2017 极客 RE Windows_3的主要内容,如果未能解决你的问题,请参考以下文章
小米回应“被意大利机构罚款2176万元”;Win 12要来?曝微软调整Windows迭代节奏;Vite 3.0 发布|极客头条...
小米回应“被意大利机构罚款2176万元”;Win 12要来?曝微软调整Windows迭代节奏;Vite 3.0 发布|极客头条