首页
社区
课程
招聘
[原创] KCTF2022秋季赛 第六题 解析过程
发表于: 2022-11-29 01:51 8909

[原创] KCTF2022秋季赛 第六题 解析过程

2022-11-29 01:51
8909

该题的加密思路用的是 "srand(X)" 和 "Y = rand()" 的特性进行加密,即当X一定时,依次调用rand()的结果Y是不变的;这里附上答案:“14725KCTF83690”。

 

分析过程大致为:
找到输入长度: 14个字符

构造输入"0123456789abcd",判定出输入的奇前5位和后5位处理方式相同,转为整型,调用srand(X),并调用rand()的结果和一个长度为20的整型数组比较。

 

“arr1”和“arr2”的内容分别是

 

第中间这段为KCTF字符直接比较

 

根据前面的分析可得,只要前后长度分别为5的字符串就能顺利搞定!这里写了一个简单的爆破代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <Windows.h>
#include <iostream>
#include <io.h>
 
DWORD WINAPI CheckArry1( LPVOID lparam)
{
    DWORD arr[20] = { 0 };
    FILE* pf;
 
    fopen_s(&pf, "arr1.bin", "r");
    fread_s(arr, 80, sizeof(DWORD), 20, pf);
    fclose(pf);
 
    for (int i = 10000; i < 99999; i++)
    {
        srand(i);
        int j = 0;
        for (; j < 20; j++)
        {
            if (rand() != arr[j])
            {
                break;
            }
        }
        if (j == 20)
        {
            printf("p1 = %d\n", i);
            return 1;
        }
    }
    return 0;
}
 
DWORD WINAPI CheckArry2(LPVOID lparam)
{
    DWORD arr[20] = { 0 };
    FILE* pf;
 
    fopen_s(&pf, "arr2.bin", "r");
    fread_s(arr, 80, sizeof(DWORD), 20, pf);
    fclose(pf);
 
    for (int i = 10000; i < 99999; i++)
    {
        srand(i);
        int j = 0;
        for (; j < 20; j++)
        {
            if (rand() != arr[j])
            {
                break;
            }
        }
        if (j == 20)
        {
            printf("p2 = %d\n", i);
            return 1;
        }
    }
 
    return 0;
}
 
int main(int argc, char* argv[])
{
    HANDLE ht1 = CreateThread(NULL, 0, CheckArry1, NULL, 0, NULL);
    HANDLE ht2 = CreateThread(NULL, 0, CheckArry2, NULL, 0, NULL);
 
    WaitForSingleObject(ht1, INFINITE);
    WaitForSingleObject(ht2, INFINITE);
 
    return 0;
}

输出结果为:(arr1.bin和arr2.bin附件已给出)

 

结果验证:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//