-
-
分享我的YT88狗壳增强算法二码表查找的过程
-
发表于:
2021-11-15 12:52
26715
-
最近有网友问我YT88狗壳中有一个增强算法二,每次启动都会变,我就帮忙看了一下,知道了其原理,于是就有了此文。内容很简单,高手就忽略吧。
下面直接上干货:
首先下断点GetTickCount,断了几次之后,返回来到程序空间,看到这样的代码
我们可以看到,他是通过GetTickCount除以0x1FF生成一个随机数,保存起来。
然后我们对那个地址下断点后,来到这
我们重点看这条指令
lea edx,dword ptr ds:[ecx+eax*8+0x655]
也就是说ecx+0x655的地方是码表开始地址
根据tea算法我们知道每次数据长度是8,就可以解释eax是码表的Index,也就是上面用GetTickCount ➗0x1FF得到的结果,要固定随机数就直接Hook那里也行。
call 40a930是调用函数让狗运算得到对应的解码
下面这条
lea edx,dword ptr ds:[ecx+eax*8+0x1655]
是保存的对应的Answer表。
41d276是memcmp,匹配结果是否一致。
我们可以知道,QA表的长度均为0x1000。
样本是用的2021最新版本的狗壳,这壳不难,一般我都是直接脱,没研究过这个东西,借这次机会,也对这个狗有了新的心得。
欢迎大家踊跃交流
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-11-15 13:09
被少妇之友编辑
,原因: