(转)天狼星加密视频的一点研究
【文章来自orztxt】没有通用性,因为版本众多。
简单讲一下机器码的构成:
例如:8617874345161312345643335350303238205016
大致可以分为5个部分:
8617874345(1613)123456 硬盘序列号相关
4333535030 mac地址相关
3238 cpuid相关
2 前面所有位的一个校验值
050(16) 050即十进制50,本例中是前面一位'2'的ascii码值,也就是0x32, 16是50整除3后的商
4333535030, mac地址的计算是将mac地址的移位后分成两部分相乘得到,然后将第11、12位附加到第1、2位再整除2,最后取出前10位。主要是浮点运算。
8617874345(1613)123456 硬盘序列号相关本来是86178743456780123456,每一位数不超过8,是因为mod 9的原因,由于我的硬盘序列号只有8个字符后面全是空格按照它的算法后面就是456780123456,非常有规律,所以这里利用了由cpuid得到的4个字节与括号中的xor了一下,
45(6780)123456,最后变成了45(1613)123456,起到迷惑大家的作用。
008F3F20 5405 00 00 4F 2E 00 00 45
008F3F30 B4 00 00 E9 C1 00 00 8BDB 00 00 65 2D 00 00 23
008F3F40 42 00 00 18 99 00 00 0648 00 00 F7 0C 00 00 1D
008F3F50 EC 00 00 7C A8 00 00 1281 00 00 19 64 00 00 00
008F3F60 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00
008F3F70 00 00 00 00 00 00 00 0000 00 00 08 00 00 00 08
008F3F80 00 00 00 23 D7 0E 00 706D 6C 78 7A 6A 6D 6C 78
008F3F90 00 00 00
对于有些老版本,在加密视频尾部可以看到类似上面的数据,从尾部偏移0x34开始连续取出0x38字节数据:
008F3F20 5405 00 00 4F 2E 00 00 45 008F3F30 B4 00 00 E9 C1 00 00 8BDB 00 00 65 2D 00 00 23
008F3F40 42 00 00 18 99 00 00 06 48 00 00 F7 0C 00 00 1D 008F3F50 EC 00 00 7C A8 00 00 1281 00 00 19 64 00 00
这些数据都是预先计算好的,当视频播放时会有一段代码重新计算出这些值,并与之比较。
以下数据是用OD脚本拦截得到,格式是:
起始地址:字节长度 ax=该段内存数据的校验值
00401001:0000C800ax: 00000554 //c800=50k
0040D801:0000C800ax: 00002E4F
0041A001:0000C800ax: 0000B445
00426801:0000C800ax: 0000C1E9
00433001:0000C800ax: 0000DB8B
0043F801:0000C800ax: 00002D65
0044C001:0000C800ax: 00004223
00458801:0000C800ax: 00009918
00465001:0000C800ax: 00004806
00471801:0000C800ax: 00000CF7
0047E001:0000C800ax: 0000EC1D
0048A801:0000C800ax: 0000A87C
00497001:0000C800ax: 00008112
004A3801:000007FFax: 00006419
这里显然与视频尾部的数据完全一致,因为我下的硬件断点,也没有修改内存数据。
天狼星内存检测的方法多种多多样,反调试很多,这里权当抛砖引玉,欢迎讨论交流。
膜拜楼主,强大 膜拜楼主!继续逛贴! 膜拜楼主。好厉害。多谢。 {:1_918:}
认真看看,多谢楼主哟 认真看看,多谢楼主 不错不错 很好很强大
获取了这么多的标识用作加密,真变态{:1_908:}
感谢分享 膜拜楼主,强大ya 这个可以有
页:
[1]
2