吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 294|回复: 7
上一主题 下一主题
收起左侧

[CTF] 【2026春节】解题领红包之二--大模型真的可以干活了!!

[复制链接]
跳转到指定楼层
楼主
无爱灬殇 发表于 2026-3-4 09:43 回帖奖励

解题领红包之二 {Windows 初级题}

PS:看了大神们的解题思路,真的是受益匪浅,自己往年也参加,基础知识不扎实,就是图个开心娱乐,今年大模型大爆发,切实能感觉到是真的从和大模型对话,进化到了下指令直接干活的地步了!!
最后,还是觉得,自身硬才是硬道理,希望坛友们,有时间多打牢基础知识。

TRAE-CN GLM-5.0

新建个文件夹,拖入程序包,修改个英文名称(crackme.exe),然后输入指令:这是一个解谜程序,请帮我找出正确的flag,并生成报告。
然后点击一下优化指令,OK!(大模型一定要选对,最新的推理模型真的很强!)
然后,IDE就开始苦吃苦吃工作了,得有半个小时吧,中间有些高危操作需要自己动手点击确认一下,直接都白名单自动执行。然后。。。然后就给我正确的flag,我都惊呆了!研究了两天,又是IDA,又是x32dbg,学习不精,看不太懂指令,结果。。。大模型就这么水灵灵的给我答案了。。。

生成报告


CrackMe Challenge v2.5 - 2026 逆向分析报告

一、文件基本信息

属性
文件名 crackme.exe
文件大小 939,520 字节
文件类型 PE32 可执行文件 (Windows GUI)
架构 x86 (32位)
编译器 MinGW-w64 (GCC)
入口点 0x004014C0
镜像基址 0x00400000

节区信息

节名 虚拟地址 虚拟大小 原始大小
.text 0x001000 0xCF944 0xCFA00
.data 0xD1000 0x1B0C 0x1C00
.rdata 0xD3000 0xB08C 0xB200
.bss 0xDF000 0xD98 0x0
.idata 0xE0000 0xFE8 0x1000
.CRT 0xE1000 0x38 0x200
.tls 0xE2000 0x8 0x200
.rsrc 0xE3000 0x4E8 0x600
.reloc 0xE4000 0x6EAC 0x7000

二、静态分析

2.1 字符串提取

通过字符串提取发现关键信息:

Keywords: 52pojie, 2026, Happy new year
Hint: Fake flag; length is key
[?] Enter the password:
[!] Hint: The length is your first real challenge.
[+] Correct flag:
[!] Checksum failed! Something is wrong...
[!] Expected: 44709, Got: ...
[X] Wrong password. Keep trying!

2.2 假Flag识别

程序中包含两个明显的"假"flag字符串:

  • 52pojie_2026_HappyNewYear (25字符)
  • 52pojie2026Happy (16字符)

提示信息明确指出:"Fake flag; length is key"


三、动态分析

3.1 密码长度探测

通过测试不同长度的密码,发现:

密码长度 程序响应
1-30 "Hint: The length is your first real challenge."
31 "Wrong password. Keep trying!"
32+ "Hint: The length is your first real challenge."

结论:正确密码长度必须为31字符

3.2 校验和分析

程序显示期望校验和为 44709,这为后续分析提供了重要线索。


四、反汇编分析

4.1 关键函数定位

使用Capstone反汇编引擎分析代码,在地址 0x00401620 发现flag解密函数:

0x401620:   sub     esp, 0x20
0x401623:   mov     eax, 0x3023
0x401628:   mov     edx, dword ptr [esp + 0x24]
0x40162c:   mov     dword ptr [edx], 0x2d327077       ; 加密数据
0x401632:   lea     ecx, [edx + 0x1f]
0x401635:   mov     dword ptr [edx + 4], 0x63272b28   ; 加密数据
0x40163c:   mov     dword ptr [edx + 8], 0x701d6363   ; 加密数据
0x401643:   mov     dword ptr [edx + 0xc], 0x1d747072 ; 加密数据
0x40164a:   mov     dword ptr [edx + 0x10], 0x3232230a ; 加密数据
0x401651:   mov     dword ptr [edx + 0x14], 0x272c1d3b ; 加密数据
0x401658:   mov     dword ptr [edx + 0x18], 0x273b1d35 ; 加密数据
0x40165f:   mov     byte ptr [edx + 0x1e], 0x63
0x401663:   mov     word ptr [edx + 0x1c], ax         ; 0x3023
0x401667:   mov     eax, edx
0x401669:   lea     esi, [esi]
0x401670:   xor     byte ptr [eax], 0x42              ; XOR解密,密钥=0x42
0x401673:   add     eax, 1
0x401676:   cmp     eax, ecx
0x401678:   jne     0x401670
0x40167a:   mov     byte ptr [edx + 0x1f], 0          ; 字符串结束符

4.2 校验和计算函数

在地址 0x00401690 发现校验和计算函数:

0x401690:   push    ebx
0x401691:   mov     ebx, dword ptr [esp + 8]    ; 输入字符串指针
0x401695:   movzx   eax, byte ptr [ebx]
0x401698:   test    al, al
0x40169a:   je      0x4016c0                    ; 空字符串返回0
0x40169c:   xor     edx, edx                    ; edx = 计数器 i
0x40169e:   xor     ecx, ecx                    ; ecx = 累加和
0x4016a0:   add     edx, 1                      ; i++
0x4016a3:   movzx   eax, al
0x4016a6:   imul    eax, edx                    ; eax = char * i
0x4016a9:   add     ecx, eax                    ; sum += char * i
0x4016ab:   movzx   eax, byte ptr [ebx + edx]   ; 下一个字符
0x4016af:   test    al, al
0x4016b1:   jne     0x4016a0                    ; 循环
0x4016b3:   mov     eax, ecx                    ; 返回sum
0x4016b5:   pop     ebx
0x4016b6:   ret

校验和算法(C语言表示):

unsigned int calculate_checksum(const char* str) {
    unsigned int sum = 0;
    for (int i = 0; str[i] != '\0'; i++) {
        sum += (i + 1) * (unsigned char)str[i];
    }
    return sum;
}

五、Flag解密过程

5.1 提取加密数据

从反汇编代码中提取的加密数据(小端序):

偏移 加密值 字节序列
0-3 0x2d327077 77 70 32 2d
4-7 0x63272b28 28 2b 27 63
8-11 0x701d6363 63 63 1d 70
12-15 0x1d747072 72 70 74 1d
16-19 0x3232230a 0a 23 32 32
20-23 0x272c1d3b 3b 1d 2c 27
24-27 0x273b1d35 35 1d 3b 27
28-29 0x3023 23 30
30 0x63 63

5.2 XOR解密

使用密钥 0x42 进行XOR解密:

encrypted = bytes.fromhex('7770322d282b276363631d707270741d0a2332323b1d2c27351d3b27233063')
decrypted = bytes([b ^ 0x42 for b in encrypted])
# 结果: b'52pojie!!!_2026_Happy_new_year!'

5.3 校验和验证

def calculate_checksum(s):
    total = 0
    for i, c in enumerate(s):
        total += (i + 1) * ord(c)
    return total

flag = "52pojie!!!_2026_Happy_new_year!"
checksum = calculate_checksum(flag)
# 结果: 44709 ✓ 与程序期望值匹配

六、验证结果

6.1 最终Flag

52pojie!!!_2026_Happy_new_year!

6.2 验证截图

========================================
   CrackMe Challenge v2.5 - 2026
========================================
Keywords: 52pojie, 2026, Happy new year
Hint: Fake flag; length is key
----------------------------------------

[?] Enter the password:
========================================
        *** SUCCESS! ***
========================================
[+] Congratulations! You cracked it!
[+] Correct flag: 52pojie!!!_2026_Happy_new_year!

Press Enter to exit...

七、技术总结

7.1 逆向分析要点

  1. 字符串分析:通过提取程序中的字符串,发现了假flag和关键提示
  2. 动态测试:通过测试不同长度密码,确定了正确密码长度为31字符
  3. 反汇编分析:定位到flag解密函数和校验和计算函数
  4. 算法逆向:成功还原了XOR加密算法和校验和计算算法

7.2 关键技术点

技术点 说明
加密算法 XOR,密钥=0x42
校验算法 加权求和:Σ(i+1)*char[i]
目标校验和 44709
密码长度 31字符

7.3 工具使用

  • pefile:PE文件格式解析
  • Capstone:反汇编引擎
  • Python subprocess:动态测试

八、复现步骤

  1. 使用 pefile 解析PE文件结构
  2. 提取 .rdata 节中的字符串信息
  3. 动态测试确定密码长度为31
  4. 使用 Capstone 反汇编定位关键函数
  5. 0x00401620 提取加密数据
  6. 使用XOR密钥 0x42 解密得到flag
  7. 验证校验和为44709
  8. 运行程序验证flag正确

报告完成时间: 2026-02-27

分析工具: Python + pefile + Capstone

Flag: 52pojie!!!_2026_Happy_new_year!

免费评分

参与人数 1威望 +1 吾爱币 +20 热心值 +1 收起 理由
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
 楼主| 无爱灬殇 发表于 2026-3-4 09:51 |楼主
环境一定要配置好,python、nodejs、pip源更换为国内源,会顺畅很多
3#
mscsky 发表于 2026-3-4 09:56
大模型能直接分析二进制了?有没有ai对话截图
4#
 楼主| 无爱灬殇 发表于 2026-3-4 10:00 |楼主
mscsky 发表于 2026-3-4 09:56
大模型能直接分析二进制了?有没有ai对话截图

可以啊,忘记截图了,可以自己试试,trae国内版,GLM5.0,大模型会下载相关依赖,然后@crackme.exe,上传上下文,就会直接命令行里跑代码分析了。
5#
无名 发表于 2026-3-4 10:01
mscsky 发表于 2026-3-4 09:56
大模型能直接分析二进制了?有没有ai对话截图

它可以借助python搞嘛,也是能分析部分二进制的
今年的所有题我朋友都用cc解出来了
6#
风子09 发表于 2026-3-4 10:11
mscsky 发表于 2026-3-4 09:56
大模型能直接分析二进制了?有没有ai对话截图

了解一下Claude,并不单单分析二进制,还会自己下载对应的工具。
7#
fttsh 发表于 2026-3-4 10:37
mscsky 发表于 2026-3-4 09:56
大模型能直接分析二进制了?有没有ai对话截图

mac上会自动安装调用radare2进行分析,还有一些python的库可以用
windows高级题我用cursor+opus 4.6 max消耗了数十轮context也做出来了(windows上配好ida pro mcp消耗多轮context也做出来了)
8#
wjbg2022 发表于 2026-3-4 11:40
期待动画视频教程
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-3-4 12:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表