论坛首页 逆向工程技术区 阅读主题

[原创]KCTF 2025 第四题 血色试炼wp

265 浏览 0 回复
#1 楼主 2026-06-01 21:08:55
由于动调没有起来,故从TlsCallback_0开始分析注意到有两个很明显的key,以及base64的Table
ThisEncAndDecKey和tweakKey_2024521 而且这里还有两个动态加载,下面肯定有很难读的反调试注意到两个很大的数组,都是256长度 到这里其实已经开始猜是不是AES了,从后面看来是猜对了继续往下看看到一堆不太看得懂的LoadLibraryW,感觉是hook相关代码,但是没影响我IDA调试 从资源段读取数据,发现核心的解密函数 其实是个蛮简单的反调试,主体在以下部分,主要靠syscall 0x19进行反调试 总共应该是有3处,将恶意跳转改成强制jmp就解决了然后就开始了漫长的逆向之路开头就是当头一棒的Base64 但是很显然,在线网站解出来的和题目给的不一样~~~其实看着很复杂,但是魔改的核心其实很少很少,就只有下面这一小块 也就是大伙熟悉的==相关流程,稍微对输入字符进行了一点点的位移,呈现在keyGen上面就是如下所示这块是我觉得最折磨的部分,因为对AES不熟悉,对着标准AES一点点扣出来的 但是捏,其实就只魔改了一个函数,也就是addRoundKey,其他其实一点都没改,invMixColumns看着很唬人,但是实际上没有任何魔改 所以对应的代码如下这块其实我没分析出来,但是有蛮力,通过替换资源段的方式,让代码运行过程中自吐了最大4轮所需要的xor Key 对应到我的代码上,写的很丑)) 最后我们回到主函数,简单读读就能明白原来是加密了4轮 本来以为是3轮,但是加密完感觉长度不对,于是改成了4轮,长度就对上了按照每层加密的值排布AES_ECB.hpp是标准AES,里面没有任何代码改动int base64_encode(const uint8_t* input, int in_len, char* output) {

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-288174.htm

暂无回复,快来抢沙发吧!

请登录后参与讨论

立即登录 注册账号