标题: 浅说Source Insight 4.0.0085版的黑名单 创建: 2017-04-20 16:57 链接: https://scz.617.cn/misc/201704201657.txt 这周看方程式的Eternalblue工具,想用Source Insight 4看一下微软源码,发现自 己out了,已经有4.0.0085版。4.0.0082版之前破解失效,放狗搜一下,有现成的新 破解,看雪上就有3个。 因为好奇心使然,看了一下4.0.0085版的黑名单。 SI使用WinINET,认IE代理。用Fiddler看到SI在访问: http://www.sourceinsight.com/pub/v4/release/si4update.siv https://www.sourceinsight.com/pub/v4/release/si4update.siv 这个文件最终被写入 %LOCALAPPDATA%\Source Insight\4.0\si4update.dat 其实IDA中可以找到明文字符串: si4update.dat http://www.sourceinsight.com/pub/v4/release/si4update.siv 以4.0.0085版为例 在调试器里拦截kernel32!CreateFileW,当打开si4update.dat时查看调用栈回溯, 分析附近的open、read,进而定位(假设基址是0x400000): -------------------------------------------------------------------------- 0045B200 68 E2 23 00 00 push 23E2h ; int 0045B205 33 FF xor edi, edi 0045B207 50 push eax ; char * 0045B208 8B F1 mov esi, ecx 0045B20A 89 7C 24 18 mov [esp+234h+var_21C], edi 0045B20E E8 1D 82 FA FF call PrivateDecryptSi4update 0045B213 8B E8 mov ebp, eax -------------------------------------------------------------------------- 00403430 PrivateDecryptSi4update( in, insize ) -------------------------------------------------------------------------- 看调用栈回溯这事,用Process Monitor也可以,有兴趣者自行尝试。 不过,后来发现SI中有明文字符串"si4update.dat",它有多处交叉引用,通过其中 一处最终亦可定位PrivateDecryptSi4update()。 out = PrivateDecryptSi4update( in, insize ); in是密文,out是明文 解密si4update.dat得到的明文: -------------------------------------------------------------------------- -------------------------------------------------------------------------- SI4出来后,众多破解层出不穷,我当时没有使用外界的破解,而是用了bluerust的 一个小众方案: 《bluerust的Source Insight 4破解方案》 https://scz.617.cn/misc/201702201711.txt "S4SV-XGXX-XXXX-GQN3"完全是我俩搞怪生成的,你去看任何一个keygen,都不会生 成这样的sn。放狗搜该sn,最多也只能搜到上述URL。我们这是小众搞怪sn,不是破 解大站上的示例sn。这种情况下,看到"S4SV-XGXX-XXXX-GQN3"位于黑名单中,简直 了。我能理解成SI的作者在满世界爬曾经出现过的破解方案吗? 又看了一下内嵌在EXE中的黑名单: -------------------------------------------------------------------------- /* * buf是in/out型,in对应内嵌黑名单 */ 00402E80 PrivateDecrypt( buf, buflen, seed, decrypt_table, module ) 0050BB10 PrivateDealBlacklist( x, blacklist, x, x ) -------------------------------------------------------------------------- 0060D520 BF decrypt_table_0 0060E5C0 2C decrypt_table_1 -------------------------------------------------------------------------- 00613FF8 14 blacklist_0 00 53 46 4d 2d 5a 53 46-45 2d 52 53 47 58 2d 33 .SFM-ZSFE-RSGX-3 53 52 52 2d 57 53 46 33-2d 56 53 46 34 2d 58 53 SRR-WSF3-VSF4-XS 52 4d 2d 39 55 52 38 2d-33 41 32 32 2d 36 53 46 RM-9UR8-3A22-6SF 31 2d 57 35 31 32 2d 33-53 52 47 2d 59 1-W512-3SRG-Y 0062D538 33 blacklist_1 00 53 2d 53 4b 55 53 2d-5a 49 51 53 2d 58 58 51 .S-SKUS-ZIQS-XXQ 53 2d 52 52 36 53 2d 33-33 37 53 2d 34 34 35 53 S-RR6S-337S-445S 2d 35 30 39 53 2d 31 32-39 53 2d 34 34 34 53 2d -509S-129S-444S- 31 31 4a 53 2d 31 32 33-53 2d 36 39 52 11JS-123S-69R 0062F658 D7 blacklist_2 00 34 55 2d 36 4b 34 4e-2d 58 43 34 58 2d 58 4e .4U-6K4N-XC4X-XN 34 52 2d 52 59 34 55 2d-33 4d 34 55 2d 34 5a 34 4R-RY4U-3M4U-4Z4 4b 2d 30 39 34 35 2d 36-35 34 31 2d 35 35 34 55 K-0945-6541-554U 2d 31 54 34 31 2d 32 33-34 33 2d 45 57 -1T41-2343-EW 00643178 AC blacklist_3 0c 13 56 57 47 51 13 52-37 4e 5a 13 56 58 58 47 ..VWGQ.R7NZ.VXXG 13 52 52 52 43 13 56 33-33 39 13 56 34 34 44 13 .RRRC.V339.V44D. 52 39 4d 39 13 52 32 35-37 13 42 33 33 33 13 56 R9M9.R257.B333.V 31 31 5a 13 36 31 32 33-13 52 30 4c 4b 11Z.6123.R0LK -------------------------------------------------------------------------- 上面列出了解密后的内嵌黑名单,没细究它们的使用(拼接)方式。 这里不扯4.0.0085版的破解,看雪上有。 我和bluerust都很同情SI的作者,看得出来,好不容易更新了,被剁得七零八落,然 后病急乱投医式地瞎治,唉,同情中。 从这个软件本身来说,它如果有中国的捐赠渠道,我愿意捐100元RMB。 本文纯粹是一次好奇心的结果。