-
-
[原创]KCTF2025 第四题 血色试炼
-
发表于:
2025-8-20 17:13
4903
-
TlsCallback_0初始化了两个Key,以及一个Base64表,并且有一个标准Sbox和一个标准InvSbox赋值。




这边从ntdll.dll中寻找所有Zw开头API,然后储存到自定义链式结构中。

这边加载了个加密字符串,自解密出来是ZwQueryInformationProcess,然后通过第二处红框去上面的结构里面找到对应API的syscall服务号。

赋值给全局服务号变量,然后调用syscall,判断返回值是否>=0,若>=0则触发异常,说明这边可能是一个反调试。


直接在这个call后面设置条件断点将返回值改成负数即可绕过。

main函数开头处有设置一个VEH,

VEH里面分成两部分代码执行。

动调发现输出完UserName:后会触发异常,然后进入第一个箭头call处,这里面是进行了一个输入流的启动,下面syscall后就是等待用户输入。

用户名输入完后会返回到这边,然后底下进行三次循环处理,循环内第一个call会触发第二种异常,进入VEH函数的第二部分代码。

红框处就是我们输入的用户名,下面对用户名进行加密,加密结果是一个Base64,和序列号的格式一样,循环三次会对UserName加密三次。

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!