首页
社区
课程
招聘
打狗求助
发表于: 2005-7-8 16:28 4784

打狗求助

2005-7-8 16:28
4784
最近遇到一个软件,要狗运行。
在有狗情况下将其脱壳,发现是VB程序,程序可以启动,但某些功能受限制(客户机连接主机时连不上)。
我是参考http://bbs.pediy.com/showthread.php?s=&threadid=13146&highlight=%B9%B7+or+%CE%DE%B9%B7 这篇文章做的,基本可以确定它是彩虹狗,如无狗时返回EAX=00004F1A,有类似CMP DWORD PTR SS:[EBP-180],100000的比较,MOV DWORD PTR DS:[xxxxxxxx],EAX时,EAX为密钥(已经知道正确值),XOR DWORD PTR DS:[ECX],EAX解码,以及Setction段名等。
估计版本高些,主要功能还要再读狗。
请哪位高人给点提示或给些相关文章

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
程序中还有读狗的地方,找一下,看你上面的信息,没有觉出是什么版本的狗,如果是微狗4。0,你又没有提到Anti debug,而且解码部分也不完全,如果是3。4及以下,返回值又不准确。

即然有狗,那就带狗来玩吧。难度会小很多的。

通过看程序内的参考字符,可以确定是什么类型的狗。
2005-7-8 17:10
0
雪    币: 280
活跃值: (281)
能力值: ( 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段代码)
还有我不太清楚什么时候修改读狗返回值以及修改成什么。因为我直接强行修改跳转后,程序可以运行,但主要功能都被限制(而且需要从主机返回数据,这是联网程序,总是不能返回正确结果),
2005-7-8 20:27
0
雪    币: 463
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
3.4版本的吧,应该没错,

你现在的问题应该是软件正常运行后还有读狗的,你只是把外壳部分解开了,可能软件是用SDK方式编写的,你可参考一下这个狗的开发手册,破起来就得心应手

祝你好运
2005-7-8 22:46
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
5
问题是我没有这个狗的开发手册。不能带狗破解吗?
2005-7-8 22:51
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
兄弟说的没错,就是3。4的狗,但楼主的分析并不全,而且对于狗的代码并没有分析完全。

对于主要功能不好用。
可以归纳2个原因,1是程序用SDK方式读狗,2是脱了壳会造成内嵌失败。会出异常的。
2005-7-9 00:18
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
那应该怎样破解呢?不能脱壳是不是只能打内存补丁?不知Nig老大能否指点一二,或推荐点文章学习一下?
2005-7-9 00:30
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
8
我又跟踪了一遍,如果直接修改,以后解码会解出错误结果。看到曙光了。
2005-7-9 08:55
0
雪    币: 463
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 nig 发布
兄弟说的没错,就是3。4的狗,但楼主的分析并不全,而且对于狗的代码并没有分析完全。

对于主要功能不好用。
可以归纳2个原因,1是程序用SDK方式读狗,2是脱了壳会造成内嵌失败。会出异常的。


呵呵,好久没看到你上QQ了,什么时候搞个4.0的给我玩玩.
2005-7-10 02:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果不想仿真数据,就读狗返回0,再nop掉验证,如果想仿真数据,就查查sdk,先得到200字的狗内数据,破解时将读狗操作转为查这个数据表就可以了
2005-7-12 11:50
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
11
最初由 游侠1999 发布
如果不想仿真数据,就读狗返回0,再nop掉验证,如果想仿真数据,就查查sdk,先得到200字的狗内数据,破解时将读狗操作转为查这个数据表就可以了

读狗返回0,再nop掉验证估计是不行的,可能缺少关键数据。
仿真数据目前还不知怎样做,这方面的文太少,我没见过。
2005-7-13 01:12
0
游客
登录 | 注册 方可回帖
返回
//