首页
社区
课程
招聘
[原创]KCTF2024防守篇提交题目
发表于: 2024-7-28 03:38 292

[原创]KCTF2024防守篇提交题目

2024-7-28 03:38
292

附件题目是按《5.2.2 Windows方案二》设计的CrackMe,由于是第一次参加防守提交题目,不清楚是否直接在这里提供原始资料,所以附件资料加密了,密码我单独再提供。

解压密码:kx.1111

此题的解题思路:
通过给出的一组user和serial,使用调试工具OD和IDA了解大概的解密过程
1.将serial字符映射转成字节serial2;
2.使用DictTable字典对serial2做一次卷轴式全异域得到serial3;
3.计算出serial3除最后一个字节的BCC码,这个BCC码与serial3的最后一个字节进行异域,得到BCC2,
再用BCC2与serial3除最后一个字节外的所有字节异域得到serial4;
4.计算user的BCC码,这个BCC码的低半字节的2倍为目标值TargetFlag密文在MaskTable表里的偏移量;
5.通过调试工具可以找到TargetFlag的明文,即也知道了它的长度,且从代码可以判断TargetFlag的明文和密文长度一样;
6.判断MaskTable表里除了TargetFlag密文外的其他字节是否正确;
7.取出TargetFlag密文值,使用DictTable字典对每一个字节做__rol循环左移DictTable[i]%8次;
8.上一步得到的TargetFlag明文与程序内置的固定值做一致性比较,如果一样则成功了.
9.此题的另一个考查点是DictTable字典和MaskTable表,如果分析者在使用动态调试工具断点调试分析时,
且断点落在解密函数或main函数内时DictTable字典和MaskTable表的值会变化,会影响解密结果,
如果不清楚动态调试工具的断点原理的情况下会增加难度.


[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

最后于 2024-8-30 13:07 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回
//