2025腾讯游戏安全初赛复现
前置准备因为驱动没有数字签名直接运行不行,我是把强制驱动签名关掉了 静态分析ACEFirstRound.exe驱动加载 a1+8()函数里面为 通过这个加载驱动 最终通过这个FilterSendMessage向驱动发送数据,驱动进行验证 r3层动调直接调试时,有两个地方要注意,一个是r3层的反调试,一个是驱动对进程的权限提升,导致调试器调试不了 r3层反调试在这里 创建了个线程进行反调试 把这个nop掉就能过了 然后是驱动对进程的进程的权限提升 ida附加不上 听别的师傅说xdbg好用点有反反调试插件,直接能跑,哎,我是废物,没有插件qwq 其实这个问题也好解决,两个方法 第一个就是nop掉加载驱动的函数,就只先分析r3层的 第二就是找到内核提升权限的标志位,改成普通的就行 说下第二个怎么弄 进入windbg本机附加内核,程序起起来 重点在 具体结构类型在下面 PS_PROTECTION -...
记录碰见过的一次md5魔改
md5魔改最近偶然看见一道魔改的md5题, 因为md5不可逆,所以也不怎么见,这个题大致就是找到魔改点,然后爆破md5(因为纯数字qwq) 主函数如下 MD5核心地方 看见0x28955B88等可知这是一个类md5加密算法 MD5Encode魔改点 很容易看出 后面的 ^0x12 ^0x34等 关键在MD5Update里面的魔改 这里面是自定义初始话的四个幻数(别问为什么就看见三个) 这些动调都可以轻松得到 1234context->state[0] = 0x10325476;context->state[1] = 0x12345678;context->state[2] = 0x12345678;context->state[3] = 0x67452301; 这个为魔改后的初始化幻数 去网上找个md5源码 MD5算法详解及实现(C语言)_c语言 md5-CSDN博客 MD5算法 —— C语言实现(字符串的加密) - mao的博客 -...