能力值:
( LV9,RANK:170 )
|
-
-
2 楼
程序中还有读狗的地方,找一下,看你上面的信息,没有觉出是什么版本的狗,如果是微狗4。0,你又没有提到Anti debug,而且解码部分也不完全,如果是3。4及以下,返回值又不准确。
即然有狗,那就带狗来玩吧。难度会小很多的。
通过看程序内的参考字符,可以确定是什么类型的狗。
|
能力值:
( LV9,RANK:250 )
|
-
-
3 楼
没有Anti debug,好像是不能完全解码的,OEP是4xxxxx,但总是要调用7xxxxx的代码解码,它把一些关键的VB函数抽出来加密了。直接带狗跟踪也是不完全解码的。
只要一使用某些功能它就会读狗。
用OD插件搜索字符时自动退出。
section名有rcc0,rcc1,rcc2
请介绍一些它的破解文章,我再学习一下。
贴段代码请看看是什么版本的,我实在找不到:
00774554 add dword ptr ds:[7E1028],100000 ; 记得100000是个比较特征的数,就是OEP加100000,正确OEP为40B594
0077455E jmp short 1_.0077456D
00774560 mov ax,word ptr ss:[ebp-298]
00774567 mov word ptr ds:[7E1004],ax
0077456D call 1_.00776AC4
00774572 call 1_.007774DB ; 读狗,无狗返回27ED
00774577 test eax,eax
00774579 je short 1_.00774580 ; 跳
0077457B call 1_.007774DB
00774580 cmp dword ptr ds:[7E1090],0
00774587 jnz short 1_.0077458E ; 不跳
00774589 call 1_.00777686 ; 读狗,无狗返回27ED
0077458E cmp dword ptr ds:[7E1084],0
00774595 jnz 1_.0077462B ; 不跳
0077459B call 1_.00774C78 ; 读狗
007745A0 cmp eax,100000 ; 无狗返回EAC2
007745A5 je short 1_.00774611 ; 跳
跳到这:
00774611 mov eax,dword ptr ds:[7E1A46] ; 这段代码不知道做什么
00774616 xor eax,dword ptr ds:[7E1094]
0077461C mov dword ptr ds:[7E57E8],eax
00774621 mov eax,dword ptr ds:[7E57E8]
00774626 mov dword ptr ds:[7E12CE],eax
0077462B mov word ptr ss:[ebp-164],0
00774634 jmp short 1_.0077463D
00774636 inc word ptr ss:[ebp-164]
0077463D mov eax,dword ptr ss:[ebp-164]
00774643 and eax,0FFFF
00774648 cmp eax,1E
0077464B jge short 1_.00774665
0077464D mov eax,dword ptr ss:[ebp-164]
00774653 and eax,0FFFF
00774658 mov dword ptr ds:[eax*4+7E10AC],-1
00774663 jmp short 1_.00774636
00774665 cmp dword ptr ds:[7E1000],0
0077466C jnz short 1_.007746A4
0077466E cmp dword ptr ds:[7E108C],0
00774675 je short 1_.0077468D
00774677 mov eax,dword ptr ds:[7E103E]
0077467C xor eax,dword ptr ds:[7E12D2]
00774682 xor eax,dword ptr ds:[7E102C]
00774688 mov dword ptr ss:[ebp-8],eax
0077468B jmp short 1_.0077469A
0077468D mov eax,dword ptr ds:[7E12D2]
00774692 xor eax,ED8375B6
00774697 mov dword ptr ss:[ebp-8],eax
0077469A mov eax,dword ptr ss:[ebp-8]
0077469D not eax
0077469F mov dword ptr ds:[7E1000],eax
007746A4 lea eax,dword ptr ss:[ebp-160]
007746AA mov dword ptr ds:[7E57F0],eax
007746AF call 1_.007778AC ; 读狗,无狗返回27ED
007746B4 mov dword ptr ss:[ebp-118],eax
007746BA cmp dword ptr ss:[ebp-118],0
007746C1 jnz short 1_.007746D5 ; 不能跳,否则立即退出
007746C3 mov eax,dword ptr ds:[7E1A3E]
007746C8 xor eax,dword ptr ss:[ebp-15F]
007746CE mov dword ptr ds:[7E1A42],eax ; 密钥,正确为900D8DD1
007746D3 jmp short 1_.007746DA
程序以后调用密钥解码(4xxxxx段代码)
还有我不太清楚什么时候修改读狗返回值以及修改成什么。因为我直接强行修改跳转后,程序可以运行,但主要功能都被限制(而且需要从主机返回数据,这是联网程序,总是不能返回正确结果),
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
3.4版本的吧,应该没错,
你现在的问题应该是软件正常运行后还有读狗的,你只是把外壳部分解开了,可能软件是用SDK方式编写的,你可参考一下这个狗的开发手册,破起来就得心应手
祝你好运
|
能力值:
( LV9,RANK:250 )
|
-
-
5 楼
问题是我没有这个狗的开发手册。不能带狗破解吗?
|
能力值:
( LV9,RANK:170 )
|
-
-
6 楼
兄弟说的没错,就是3。4的狗,但楼主的分析并不全,而且对于狗的代码并没有分析完全。
对于主要功能不好用。
可以归纳2个原因,1是程序用SDK方式读狗,2是脱了壳会造成内嵌失败。会出异常的。
|
能力值:
( LV9,RANK:250 )
|
-
-
7 楼
那应该怎样破解呢?不能脱壳是不是只能打内存补丁?不知Nig老大能否指点一二,或推荐点文章学习一下?
|
能力值:
( LV9,RANK:250 )
|
-
-
8 楼
我又跟踪了一遍,如果直接修改,以后解码会解出错误结果。看到曙光了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
最初由 nig 发布 兄弟说的没错,就是3。4的狗,但楼主的分析并不全,而且对于狗的代码并没有分析完全。
对于主要功能不好用。 可以归纳2个原因,1是程序用SDK方式读狗,2是脱了壳会造成内嵌失败。会出异常的。 呵呵,好久没看到你上QQ了,什么时候搞个4.0的给我玩玩.
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
如果不想仿真数据,就读狗返回0,再nop掉验证,如果想仿真数据,就查查sdk,先得到200字的狗内数据,破解时将读狗操作转为查这个数据表就可以了
|
能力值:
( LV9,RANK:250 )
|
-
-
11 楼
最初由 游侠1999 发布 如果不想仿真数据,就读狗返回0,再nop掉验证,如果想仿真数据,就查查sdk,先得到200字的狗内数据,破解时将读狗操作转为查这个数据表就可以了
读狗返回0,再nop掉验证估计是不行的,可能缺少关键数据。
仿真数据目前还不知怎样做,这方面的文太少,我没见过。
|