首页
社区
课程
招聘
求助,gs-mh狗问题
发表于: 2004-6-1 01:10 6711

求助,gs-mh狗问题

2004-6-1 01:10
6711
前些时候,最要好的朋友把他单位的一个软件带回来硬要我帮他把狗解开。我当时就傻了眼(都怪我平时在此兄面前炫耀自己的电脑玩得如何如何啦),但又不好意思推脱,就只好硬着头皮应了下来。
   我就边学习边破解,其实根本还谈不上学习“破解”,我只是开始接触8086汇编语言的指令,通过半个月的“狼吞虎咽”,才刚刚囫囵看懂一些最简单的汇编指令。经过一番苦苦搜索,我才发现搞这一行真难啊!连“看雪”、“大老”这样的绝顶高手都称自己为菜鸟,那我连鸟蛋都算不上,以后再也不敢在朋友面前装高手了(是要付出代价的啊。。。。。。)!
    我现在基本上每天下班后什么业余时间都没有了(全用来照看那只狗了)。
经过一个多星期的边看教材边用OD,还是一无所获,特来此“解密圣地”向各为前辈求教!
   此软件是用VB6.0写的,有一个DLL(也用狗加密)是用VC6.0写的。
   用dogtest2.1查软件是彩虹天地的GS-MH狗,听说此狗壳的反跟踪和花指令大大的厉害(对我而言)!后来发现事实的确如此:用F7单步跟踪基本上就是在原地打转;用W32dsm反汇编就非法操作,用了KillFlowerV1.2也不行,可能与EXE文件太大也有关系(有7.96M之巨)。
   用filemon查发现狗驱动用的是rcmhdog.vxd和gsdog.vxd,并发现在有狗时删除gsdog.vxd软件可以正常使用,但不可缺少rcmhdog.vxd。
   00ABCC88 >  55              PUSH EBP
00ABCC89    8BEC            MOV EBP,ESP
00ABCC8B    81EC B0000000   SUB ESP,0B0
00ABCC91    53              PUSH EBX
00ABCC92    56              PUSH ESI
00ABCC93    57              PUSH EDI
00ABCC94    56              PUSH ESI
00ABCC95    57              PUSH EDI
00ABCC96    52              PUSH EDX
00ABCC97    51              PUSH ECX
00ABCC98    53              PUSH EBX
00ABCC99    50              PUSH EAX
00ABCC9A    833D 64BABF00 0>CMP DWORD PTR DS:[BFBA64],0
00ABCCA1    0F85 54100000   JNZ CYZWX.00ABDCFB
00ABCCA7    8D85 74FFFFFF   LEA EAX,DWORD PTR SS:[EBP-8C]
00ABCCAD    50              PUSH EAX
00ABCCAE    FF15 7C73C000   CALL DWORD PTR DS:[<&KERNEL32.GetLocalTi>
00ABCCB4    EB 01           JMP SHORT CYZWX.00ABCCB7
00ABCCB6    808B 4580508B 8>OR BYTE PTR DS:[EBX+8B508045],85
00ABCCBD    7C FF           JL SHORT CYZWX.00ABCCBE
00ABCCBF    FFFF            ???                                      ; 未知命令
00ABCCC1    50              PUSH EAX
00ABCCC2    8B85 78FFFFFF   MOV EAX,DWORD PTR SS:[EBP-88]
00ABCCC8    50              PUSH EAX
00ABCCC9    8B85 74FFFFFF   MOV EAX,DWORD PTR SS:[EBP-8C]
00ABCCCF    50              PUSH EAX
00ABCCD0    E8 50F3FFFF     CALL CYZWX.00ABC025

我把上面的COM DWORD PTR DS:[BFBA64],0改成COM DWORD PTR [00BFBA64],1
EXE文件不检查狗了,如果此时把软件目录下的一个DLL文件删除,并运行修改过的EXE,程序可以出现正常的运行窗口,但不能执行任何菜单功能,而且在退出是有非法操作。
   以下的是那个DLL的领空:
10001020 >  56              PUSH ESI
10001021    8B7424 08       MOV ESI,DWORD PTR SS:[ESP+8]
10001025    57              PUSH EDI
10001026    8A46 02         MOV AL,BYTE PTR DS:[ESI+2]
10001029    8D7E 14         LEA EDI,DWORD PTR DS:[ESI+14]
1000102C    A2 84980010     MOV BYTE PTR DS:[10009884],AL
10001031    66:8B4E 04      MOV CX,WORD PTR DS:[ESI+4]
10001035    66:890D 8698001>MOV WORD PTR DS:[10009886],CX
1000103C    66:8B56 06      MOV DX,WORD PTR DS:[ESI+6]
10001040    66:8915 7898001>MOV WORD PTR DS:[10009878],DX
10001047    8B46 08         MOV EAX,DWORD PTR DS:[ESI+8]
1000104A    A3 80980010     MOV DWORD PTR DS:[10009880],EAX
1000104F    8B4E 0C         MOV ECX,DWORD PTR DS:[ESI+C]
10001052    890D 7C980010   MOV DWORD PTR DS:[1000987C],ECX
10001058    8B56 10         MOV EDX,DWORD PTR DS:[ESI+10]
1000105B    33C0            XOR EAX,EAX
1000105D    8915 74980010   MOV DWORD PTR DS:[10009874],EDX
10001063    893D 70980010   MOV DWORD PTR DS:[10009870],EDI
10001069    66:8B06         MOV AX,WORD PTR DS:[ESI]
1000106C    48              DEC EAX
1000106D    83F8 08         CMP EAX,8
10001070    77 54           JA SHORT CYZWXGS.100010C6
10001072    FF2485 F8100010 JMP DWORD PTR DS:[EAX*4+100010F8]
10001079    E8 813E0000     CALL CYZWXGS.10004EFF
1000107E    EB 4A           JMP SHORT CYZWXGS.100010CA
10001080    E8 933E0000     CALL CYZWXGS.10004F18
10001085    EB 43           JMP SHORT CYZWXGS.100010CA
10001087    E8 513E0000     CALL CYZWXGS.10004EDD
1000108C    EB 3C           JMP SHORT CYZWXGS.100010CA
1000108E    E8 8D000000     CALL CYZWXGS.10001120
10001093    EB 35           JMP SHORT CYZWXGS.100010CA
10001095    E8 A03E0000     CALL CYZWXGS.10004F3A
1000109A    EB 2E           JMP SHORT CYZWXGS.100010CA
1000109C    33C0            XOR EAX,EAX
1000109E    EB 2A           JMP SHORT CYZWXGS.100010CA
100010A0    E8 DF3E0000     CALL CYZWXGS.10004F84
100010A5    EB 23           JMP SHORT CYZWXGS.100010CA
100010A7    E8 FC3E0000     CALL CYZWXGS.10004FA8
100010AC    8A0F            MOV CL,BYTE PTR DS:[EDI]
100010AE    880D 84980010   MOV BYTE PTR DS:[10009884],CL
100010B4    EB 14           JMP SHORT CYZWXGS.100010CA
100010B6    E8 F33D0000     CALL CYZWXGS.10004EAE
100010BB    8B56 10         MOV EDX,DWORD PTR DS:[ESI+10]
100010BE    8915 80980010   MOV DWORD PTR DS:[10009880],EDX
100010C4    EB 04           JMP SHORT CYZWXGS.100010CA

我觉的这里是狗的算法核心,但我实在是看不明白,求高手们耐心指点!
下面是被多次调用的一个CALL:
100010CA    66:0FB60D 84980>MOVZX CX,BYTE PTR DS:[10009884]
100010D2    66:894E 02      MOV WORD PTR DS:[ESI+2],CX
100010D6    8B15 80980010   MOV EDX,DWORD PTR DS:[10009880]
100010DC    8956 08         MOV DWORD PTR DS:[ESI+8],EDX
100010DF    66:8B0D 8698001>MOV CX,WORD PTR DS:[10009886]
100010E6    66:894E 04      MOV WORD PTR DS:[ESI+4],CX
100010EA    8B15 7C980010   MOV EDX,DWORD PTR DS:[1000987C]
100010F0    8956 0C         MOV DWORD PTR DS:[ESI+C],EDX
100010F3    5F              POP EDI
100010F4    5E              POP ESI
100010F5    C2 0400         RETN 4

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

收藏
免费 6
支持
分享
最新回复 (8)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
移至 软件调试论坛 吧
2004-6-1 01:33
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
建议你多分析一下.
2004-6-1 08:28
0
雪    币: 200
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
MH的狗好象很容易破的,要有耐心。把程序发过来看看。
2004-6-2 07:34
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
找到了,它就死定了。
2004-6-15 17:33
0
雪    币: 234
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
你这个是前几代的吧,rainbow系列的DOG,如果加密加强了,没有DOG是很难完美解除的,如:任*行的。
2004-6-15 21:58
0
雪    币: 214
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我也有一个这样的程序,哪位老大给帮忙看看?先谢谢了!
2004-6-16 12:52
0
雪    币: 214
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
nahum朋友怎么连系你
2004-6-16 13:31
0
雪    币: 195
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
解密彩虹微狗的软件首先应掌握以下的结构:
GS_MHDog input and returns a structure, it is MH_DLL_PARA:
typedef struct _MH_DLL_PARA
{
  WORD    Command;
  WORD    Cascade;
  WORD    DogAddr;
  WORD    DogBytes;
  DWORD  DogPassword;
  DWORD  DogResult;
  DWORD  NewPassword
  BYTE    DogData[200];
} MH_DLL_PARA;

The defination of  Command is as following
DogCheck  1
ReadDog    2
WriteDog  3
DogConvert 4
GetCurrentNo  5
EnableShare    6
DisableShare  7
SetDogCascade  8
SetNewPassword 9

如要硬复制,我可以代劳。xmt@or88.com
2004-6-16 14:41
0
游客
登录 | 注册 方可回帖
返回
//