[CTF][reverseS.exe] flag 爆破

查看 50|回复 5
作者:神奇的人鱼   
非常简单的CTF题目 快来体验一下
题目下载地址:
https://wwi.lanzoub.com/b0mc1o6sj
密码:8oiq
压缩密码:52pj
1. 先观察样本信息:
里面有一个jar文件,有点意思


image.png (61.86 KB, 下载次数: 2)
下载附件
2025-10-16 14:09 上传

2. 拖入IDA分析
原来是启动了一个java的进程


image.png (39.02 KB, 下载次数: 2)
下载附件
2025-10-16 14:12 上传

我们需要找到启动的命令行


image.png (37.21 KB, 下载次数: 2)
下载附件
2025-10-16 14:14 上传

3. x64找一下进程
就是把exe当成一个jar执行
java -jar xxx.exe


image.png (103.51 KB, 下载次数: 1)
下载附件
2025-10-16 14:15 上传

4. 分离jar
根据第一步的偏移地址直接从二进制文件中提取jar文件


image.png (15.14 KB, 下载次数: 2)
下载附件
2025-10-16 14:17 上传

5. jadx启动
定位到关键函数


image.png (73.95 KB, 下载次数: 1)
下载附件
2025-10-16 14:19 上传

6. AI启动
AI大法好,直接把源代码仍给AI,编写一个暴力破解代码:
这里需要注意一下,因为代码中使用了java特有的Integer.rotateLeft,在使用python的时候需要特殊处理
AI搞错了好几次
JAVA版本:
[Java] 纯文本查看 复制代码import java.util.Arrays;
public class FlagCracker {
    private static final int[] ENC_FLAG = {
        87, 107, 28, 196, 205, 202, 197, 108, 158, 219, 94, 237, 119, 242, 101, 9,
        161, 166, 16, 132, 96, 104, 183, 187, 163, 103, 121, 195, 27, 193, 141, 245,
        226, 2, 177, 177, 99, 182
    };
    private static int dynamicKey(int index, int round) {
        int key = index;
        for (int i = 0; i
Python版本:
[Python] 纯文本查看 复制代码# 加密的flag数组
ENC_FLAG = [87, 107, 28, 196, 205, 202, 197, 108, 158, 219, 94, 237, 119, 242, 101, 9,
            161, 166, 16, 132, 96, 104, 183, 187, 163, 103, 121, 195, 27, 193, 141, 245,
            226, 2, 177, 177, 99, 182]
def java_rotate_left(val, distance):
    """精确模拟Java的Integer.rotateLeft"""
    # Java的rotateLeft是循环左移,处理32位整数
    distance &= 0x1F  # 距离取模32
    return ((val > (32 - distance))) & 0xFFFFFFFF
def java_rotate_right(val, distance):
    """精确模拟Java的Integer.rotateRight"""
    # Java的rotateRight是循环右移,处理32位整数
    distance &= 0x1F  # 距离取模32
    return (((val & 0xFFFFFFFF) >> distance) | (val
7. 结果如下:


image.png (7.91 KB, 下载次数: 0)
下载附件
2025-10-16 14:27 上传

下载次数, 字符

Emanuel   

远程桌面保护工具
skzhaixing   

技术型大拿  学习了
Bigstmart   

学到了,永远在学习路上
m_h   

  套娃技术啊。。
zw8861   

谢谢分享学习
您需要登录后才可以回帖 登录 | 立即注册

返回顶部