2022年全国职业院校技能大赛B模块RE01解析

文章详细描述了对PE01.exe二进制文件进行静态调试的过程,包括查找main函数入口地址、识别关键函数、解密隐藏信息和破解注册机制,得到了不同Flag值,如0x0000000140001000和0x00000001400016A0等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将main函数的入口地址作为Flag值提交;

使用IDA64 Pro打开PE01.exe,然后点击左边函数列表一栏,按下Ctrl+F搜索main

在第三列可以发现main函数(WinMain)入口地址为0x0000000140001000
flag{0x0000000140001000}

2.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将该二进制文件中检查许可证的关键函数作为Flag值提交;

右键查看文本试图

搜索报错提示“wrong


查看sub_14001250的伪代码,发现名为su_140016A0函数

最终的FLAG为check函数的入口地址,0x00000001400016A0

flag{0x00000001400016A0}

3. 对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,找到Flag1值并提交;

查看main伪代码,发现关键函数sub_14001920

发现这么一段话“Maybe the secret is in the background image”


发现这么一段话“Maybe the secret is in the background image”

对文件进行提取

在“.rsrc\2052\BITMAP”下发现图片

使用十六编辑工具,查看尾部发现问题

from binascii import a2b_hex
a2b_hex(b'466c6167317b63404e745f35655f6d457d')
#按照 ASCII 编码表,将每两个十六进制字符视为一个字节(即 8 个比特位),并将多个字节合并在一起,就可以得到明文 'Flag1{c@Nt_5e_mE}


Flag1{c@Nt_53_mE}

4.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,尝试破解该二进制文件,将注册成功后的回显信息作为Flag值提交;


编辑IDA数据库中的字节值

原01改为00

Edit->Patch program->Apply patches to input file… 将修改保存到原二进制文件中

5.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将该激活所需的许可证码作为Flag值提交;

#include <stdio.h>`

int main() {
    int final_code[17] = {-100, 72, -98, -103, 78, -118, 61, -91, 83, -74, -128, 6, 39, -93, 117, -103, -65};
    int key = 0x41;

    for (int i = 0; i < 17; i++) {
        final_code[i] ^= key + i;
        final_code[i] = -final_code[i];
        final_code[i] = 16 * (final_code[i] & 0xF) | (final_code[i] >> 4) & 0xF;
        putchar(final_code[i]);
    }

    return 0;
}
//*这段C代码包括一个main()函数,其中声明了一个长度为17的整型数组 final_code 和一个整型常量 key。
//代码使用for循环遍历数组中的每个元素,然后对每个元素执行一系列操作,并将最终的flag打印。

flag{2o22_Ch1n@Ski1ls!} 
题号FLAG值
题目一0x0000000140001000
题目二0x00000001400016A0
题目三Flag1{c@Nt_5e_mE}
题目四Flag{yes_u_w0n!}
题目五2o22_Ch1n@Ski1ls!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Battle me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值