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的主要内容,如果未能解决你的问题,请参考以下文章

片段项目不会折叠

学习笔记:python3,代码片段(2017)

小米回应“被意大利机构罚款2176万元”;Win 12要来?曝微软调整Windows迭代节奏;Vite 3.0 发布|极客头条...

小米回应“被意大利机构罚款2176万元”;Win 12要来?曝微软调整Windows迭代节奏;Vite 3.0 发布|极客头条

在片段中制作用于开始活动的图像按钮?

python成长之路第三篇_正则表达式