listrary 4.02分析之胡说八道
本帖最后由 menglv 于 2016-1-7 12:25 编辑程序的注册坑很多,注册后会在Preferences.json写入如下信息:
"pro_license": {
"email": "[email protected]",
"name": "menglv",
"regcode": "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
当然上面的注册码是错误的,但却可以通过某些验证。
014A6A9F 33C4 xor eax, esp
014A6AA1 50 push eax
014A6AA2 8D8424 70020000 lea eax, dword ptr
014A6AA9 64:A3 00000000 mov dword ptr fs:, eax
014A6AAF 8B75 0C mov esi, dword ptr
014A6AB2 33C0 xor eax, eax
014A6AB4 C74424 24 07000000mov dword ptr , 0x7
014A6ABC C74424 20 00000000mov dword ptr , 0x0
014A6AC4 66:894424 10 mov word ptr , ax
014A6AC9 898424 78020000 mov dword ptr , eax
014A6AD0 8B45 08 mov eax, dword ptr
014A6AD3 05 8FE8FFFF add eax, -0x1771
014A6AD8 83F8 08 cmp eax, 0x8
014A6ADB 0F87 19020000 ja 014A6CFA
014A6AE1 FF2485 10714A01 jmp dword ptr ; 这个代码很奇怪,如果有某些断点,它就不会往下走
014A6AE8 8D5424 10 lea edx, dword ptr
014A6AEC B9 02000000 mov ecx, 0x2
014A6AF1 E8 0ADAF5FF call 01404500
014A6AF6 84C0 test al, al
014A6AF8 0F84 FC010000 je 014A6CFA
014A6AFE 68 F4806D01 push 016D80F4 ; portable.dat
014A6B03 8D8C24 34010000 lea ecx, dword ptr
014A6B0A E8 21BFF2FF call 013D2A30
014A6B0F 8D8424 30010000 lea eax, dword ptr
014A6B16 C68424 78020000 01mov byte ptr , 0x1
014A6B1E 50 push eax
014A6B1F 8D8424 4C010000 lea eax, dword ptr
下面是算法验证call,其实也是没什么卵用的!里面只是根据注册信息算出几个内存数值而已
**** Hidden Message *****
......省略一些代码,其实注册码要求字符串是2-9|A-H|J-N|Q-Z这些字符,并且注册码位数是192即可。
然后就是爆破,三字节搞定!
至于5.0测试版,原理是一样的。
192个同样的字符也可以?没这么简单吧 看看学习一下!
施主,你又任性了 真的是不错的!!
大师又优雅了,膜拜 有用,去追码看看
感谢大牛分享 进来学习下,楼主厉害 menglv大哥威武霸气。学习下 是不是优雅版本啊,测试一下先