首页
社区
课程
招聘
如何调试 VCDRomX 4.1
发表于: 2004-10-20 12:23 9751

如何调试 VCDRomX 4.1

2004-10-20 12:23
9751
软件大小:633KB
软件语言:简体中文
软件类别:国产软件/共享版/光碟工具
运行环境:Win9x/Me/NT/2000/XP
软件信息:
    Logicraft的VCDROM是运行在Windows环境下的非常优秀的虚拟光驱软件,它能完美地将任何光盘复制到硬盘,保存为FCD格式。然而如果您想将任意分布在硬盘、光盘等各种各样的介质上的目录、文件制作成虚拟光盘文件即FCD文件,它就无能为力了。如今VcdromX可以帮您做到这一点。事实上,VcdromX可以将任何文件、目录制作成FCD文件,而且您制作的虚拟光盘可以超过650MB,只要您的硬盘足够大!VcdromX 3.2以上版本还支持制作Farstone虚拟光驱的VCD格式文件。相关软件。

下载地址http://ks.onlinedown.net/down/vcdromx41p.exe

分析 VCDRomX 4.1 时,可以找到下面控制程序走向的代码:

00463E53  |>  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]             ;  Case C of switch 00463DFD
00463E56  |.  FF55 14       CALL DWORD PTR SS:[EBP+14]
00463E59  |.  EB 7F         JMP SHORT VcdromX.00463EDA

根据SS:[EBP+14]值进行操作:

关于
Stack SS:[0012FC08]=00413D30 (VcdromX.00413D30)
查看大图标
Stack SS:[0012FC08]=00415920 (VcdromX.00415920)
全选
Stack SS:[0012FC08]=00415980 (VcdromX.00415980)
反选
Stack SS:[0012FC08]=004159F0 (VcdromX.004159F0)
刷新
Stack SS:[0012FC08]=00416220 (VcdromX.00416220)
虚拟光盘转换
Stack SS:[0012FC08]=00416800 (VcdromX.00416800)
虚拟光盘浏览
Stack SS:[0012FC08]=00416840 (VcdromX.00416840)
虚拟光盘助手
Stack SS:[0012FC08]=00416A60 (VcdromX.00416A60)
选项
Stack SS:[0012FBB4]=004233F0 (VcdromX.004233F0)
提示非注册用户
Stack SS:[0012F6D8]=004247A0 (VcdromX.004247A0)
统计
Stack SS:[0012FBD8]=00424E60 (VcdromX.00424E60)
属性
Stack SS:[0012FBD8]=004247C0 (VcdromX.004247C0)
清空
Stack SS:[0012FBD8]=004262C0 (VcdromX.004262C0)
移动
Stack SS:[0012FBD8]=00427140 (VcdromX.00427140)
????
Stack SS:[0012FBD8]=00427210 (VcdromX.00427210)
更新
Stack SS:[0012FBD8]=00427290 (VcdromX.00427290)
????
Stack SS:[0012FBD8]=00427510 (VcdromX.00427510)
退出窗体
Stack SS:[0012F67C]=00446F20 (VcdromX.00446F20)

未注册时,使用“删除”列表功能时提示非注册用户。即程序转向:
Stack SS:[0012F6D8]=004247A0 (VcdromX.004247A0)
当然注册时应该转至:00427B30(可以搜索字符串找到)
不知道程序是如何设置SS:[EBP+14]值?关键在什么地方?

VCDRomX 4.1 是用VC++编的。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 1
支持
分享
最新回复 (24)
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
没人顶,都沉下去了,快淹死了。请高手帮忙,告诉我如何找到关键的地方,程序的加密思路怎样的?
2004-10-21 12:26
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
帮自己顶。
2004-10-22 22:11
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
VcdromX是共享软件,未注册的用户可以无限期地使用本软件,但有部分功能被禁止或受到限制,这些功能主要包括:
1.制作的光盘影像中所包含的文件和目录总数不能多于2000;
2.制作光盘时不能删除文件和目录;
3.浏览光盘影像时只能提取其中的文件,而不能提取其中的整个目录;
4.使用光盘助手时不能禁止光盘中所包含的自动运行指令。

我们将在收到您的注册费的12小时内,通过Email给您发送注册文件。――keyfile?不太像。

我猜这个软件的试用版,去掉了这些部分功能的代码(注册后发给你正式版才有),你只好自己DIY出来,不过应该不难吧。
2004-10-23 16:09
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
对于上楼提到的“不能删除文件和目录”这项功能,在软件中存在代码,当软件执行到下列代码中断时:
00463E53  |>  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]             ;  Case C of switch 00463DFD
00463E56  |.  FF55 14       CALL DWORD PTR SS:[EBP+14]
00463E59  |.  EB 7F         JMP SHORT VcdromX.00463EDA
    我将地址转向00427B30,可以顺利实现删除文件和目录的功能。故我想该版本应该没有去除部分功能代码。
    说明中的确提到过Keyfile,不过跟踪程序启动时打开的文件不太像Keyfile。
2004-10-23 22:20
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
顶,坚持到懂为止……
2004-10-24 14:09
0
雪    币: 209
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
是KEYFILE,其目录下的VCDROMX.DAT就是注册文件
2004-10-24 22:30
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
我在跟踪时遇到这个文件的,当时也认为是KEYFILE,不是很确信。因为我目前关心的一点是如果局部破解的话该如何入手,也就是说在调试如何使程序在删除目录或文件时能正确转至正确的代码。
2004-10-25 19:43
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
9
昨天试着看了一下,感觉这个软件加密有些不错,至于是否是KEYFILE加密我没看,只是限制一些功能,好像直接是winapi编程的,估计firstrose会分析并爆破的很容易的(虽然是VC的),分析一下很有意思。
1.制作的光盘影像中所包含的文件和目录总数不能多于2000; 这个可以爆破
2.制作光盘时不能删除文件和目录; 这个楼上的已经找到,只是没想好怎么搞。
...
其实他还有很多限制,没提出来。
他有几个菜单和选项变灰,我一直没搞懂是怎样实现的。

“因为我目前关心的一点是如果局部破解的话该如何入手,也就是说在调试如何使程序在删除目录或文件时能正确转至正确的代码。”
可以在那里设内存断点,看看是在哪里改变的流向,估计知道一个限制,其余的就类似了。
2004-12-13 10:08
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
10
关注中……
2004-12-13 10:55
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
11
幸好点偶名di8是机关枪……顺便说一句,我不太喜欢爆破的。万一它给你来个暗桩的话……有人记得Brain病毒吗?查一下它的来历吧。你会很吃惊的。

用IDA可以发现,这个东东用了MFC。但是从IAT可以看到,它使用了大量API。我以前用过破解版,是Keyfile。注意后缀名.DAT

如何找呢?用BIEW查看文件内容。可以发现".DAT"。但是没有keyfile全名。找到相应的地址,可以看到有2个ref。下面一个好象是检查长度的,但我无法确定。上面一个有读文件的操作。文件缓冲区是动态分配的。

另外,它用了PathRemoveExtension来拼接出keyfile全名。
2004-12-13 13:58
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
12
他用了PathRemoveExtension把“E:\..\VcdromX.exe”后面的.exe去掉,然后后面加上哪个.dat

00416311   .  8B5424 08           mov edx,dword ptr ss:[esp+8]
00416315   .  8D4C24 0C           lea ecx,dword ptr ss:[esp+C]
00416319   .  51                  push ecx                           ; /Arg2
0041631A   .  52                  push edx                        ; |Arg1 这里就得到是keyfile全名   VCDROMX.DAT
0041631B   .  E8 41EA0400         call VcdromX.00464D61              ; 这里还没来的及看\VcdromX.00464D61
00416320   .  85C0                test eax,eax
00416322   .  74 04               je short VcdromX.00416328
2004-12-13 15:37
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
13
最初由 laoqian 发布
他用了PathRemoveExtension把“E:\..\VcdromX.exe”后面的.exe去掉,然后后面加上哪个.dat

00416311 . 8B5424 08 mov edx,dword ptr ss:[esp+8]
00416315 . 8D4C24 0C lea ecx,dword ptr ss:[esp+C]
00416319 . 51 push ecx ; /Arg2
........


那个call是得到文件的属性。你好象不是用IDA啊。怎么不用呢?
.text:004162F2                 call    ds:PathRemoveExtensionA
.text:004162F8                 push    0FFFFFFFFh
.text:004162FA                 lea     ecx, [esp+0Ch]
.text:004162FE                 call    ?ReleaseBuffer@CString@@QAEXH@Z ; CString::ReleaseBuffer(int)
.text:00416303                 push    offset a_dat    ; ".DAT"
.text:00416308                 lea     ecx, [esp+0Ch]
.text:0041630C                 call    sub_45ED87
.text:00416311                 mov     edx, [esp+8]
.text:00416315                 lea     ecx, [esp+0Ch]
.text:00416319                 push    ecx
.text:0041631A                 push    edx
.text:0041631B                 call    ?GetStatus@CFile@@SGHPBDAAUCFileStatus@@@Z ; CFile::GetStatus(char const *,CFileStatus &)

另外,还有一个地方,是

.text:0041481A                 call    ds:GetModuleFileNameA
.text:00414820                 push    esi
.text:00414821                 call    ds:PathRemoveExtensionA
.text:00414827                 push    0FFFFFFFFh
.text:00414829                 lea     ecx, [ebp-14h]
.text:0041482C                 call    ?ReleaseBuffer@CString@@QAEXH@Z ; CString::ReleaseBuffer(int)
.text:00414831                 push    offset a_dat    ; ".DAT"
.text:00414836                 lea     ecx, [ebp-14h]
.text:00414839                 call    sub_45ED87

下面就是读文件了
.text:00414866                 mov     byte ptr [ebp-4], 1
.text:0041486A                 call    ?Open@CFile@@UAEHPBDIPAVCFileException@@@Z ; CFile::Open(char const *,uint,CFileException *)
.text:0041486F                 test    eax, eax
.text:00414871                 jz      short loc_41489F
.text:00414873                 lea     ecx, [ebp-24h]
.text:00414876                 call    ??0AFX_EXCEPTION_LINK@@QAE@XZ ; AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK(void)
.text:0041487B                 push    ebx
.text:0041487C                 push    edi
.text:0041487D                 lea     ecx, [ebp-34h]
.text:00414880                 mov     byte ptr [ebp-4], 3
.text:00414884                 call    sub_463187//就是这里
.text:00414889                 lea     ecx, [ebp-34h]
.text:0041488C                 mov     esi, eax
.text:0041488E                 call    ?Close@CFile@@UAEXXZ ; CFile::Close(void)
.text:00414893                 mov     dword ptr [ebp-4], 1
.text:0041489A                 call    ?AfxTryCleanup@@YGXXZ ; AfxTryCleanup(void)
2004-12-13 16:15
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
14
主要是机器不行ida慢。
“另外,还有一个地方,是”动态跟踪他不来这里和和你说的下面那地方,文件长度不对?!。

接下面判断VCDROMX.DAT的大小
..........
0041631A   .  52                  push edx                                ; |Arg1
0041631B   .  E8 41EA0400         call VcdromX.00464D61                   ; \返回若没有VCDROMX.DAT文件eax=0,有则eax=1
00416320   .  85C0                test eax,eax
00416322   .  74 04               je short VcdromX.00416328
00416324   .  8B4424 18           mov eax,dword ptr ss:[esp+18]           ;  放置VCDROMX.DAT文件长度
00416328   >  25 FF3F0080         and eax,80003FFF  什么意思呢?
0041632D   .  79 07               jns short VcdromX.00416336
0041632F   .  48                  dec eax
00416330   .  0D 00C0FFFF         or eax,FFFFC000  什么意思呢?
00416335   .  40                  inc eax
00416336   >  8D4C24 08           lea ecx,dword ptr ss:[esp+8]
0041633A   .  894424 18           mov dword ptr ss:[esp+18],eax
0041633E   .  E8 3F860400         call VcdromX.0045E982
........
好烦,,领导老是来视察,老是中断,不愿接下去了,哎
休息休息
2004-12-13 16:43
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
15
最初由 laoqian 发布
主要是机器不行ida慢。
“另外,还有一个地方,是”动态跟踪他不来这里和和你说的下面那地方,文件长度不对?!。

接下面判断VCDROMX.DAT的大小
..........
........


我家里D750也慢的一塌糊涂

对了。上面的分析是静态分析,没有跟。所以有些地方只是猜想,比如开始说xx是判断长度,实际是取文件信息。

跟不到估计是因为keyfile长度不对。你放了假文件没有?他取文件信息时顺便取了长度的。要是他在这里做个检查,就不去傻读文件了。
2004-12-13 17:14
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
16
看到偶求解的被顶起的贴子,有点高兴,就再分析一点,补充一点内容:

//软件启动时的注册验证
004162A0   .  6A FF                      PUSH -1
004162A2   .  68 CBD04700                PUSH VcdromX.0047D0CB               ;  SE handler installation
004162A7   .  64:A1 00000000             MOV EAX,DWORD PTR FS:[0]
004162AD   .  50                         PUSH EAX
004162AE   .  64:8925 00000000           MOV DWORD PTR FS:[0],ESP
004162B5   .  81EC 1C010000              SUB ESP,11C
004162BB   .  A1 D8F24900                MOV EAX,DWORD PTR DS:[49F2D8]
004162C0   .  56                         PUSH ESI
004162C1   .  57                         PUSH EDI
004162C2   .  8BF9                       MOV EDI,ECX
004162C4   .  894424 08                  MOV DWORD PTR SS:[ESP+8],EAX
004162C8   .  68 05010000                PUSH 105
004162CD   .  8D4C24 0C                  LEA ECX,DWORD PTR SS:[ESP+C]
004162D1   .  C78424 30010000 00000000   MOV DWORD PTR SS:[ESP+130],0
004162DC   .  E8 FA8A0400                CALL VcdromX.0045EDDB
004162E1   .  8BF0                       MOV ESI,EAX
004162E3   .  68 04010000                PUSH 104                             ; /BufSize = 104 (260.)
004162E8   .  56                         PUSH ESI                             ; |PathBuffer
004162E9   .  6A 00                      PUSH 0                               ; |hModule = NULL
004162EB   .  FF15 04344800              CALL DWORD PTR DS:[<&KERNEL32.GetMod>; \GetModuleFileNameA 获取应用程序绝对路径 "...\VcdromX.exe"
004162F1   .  56                         PUSH ESI                             ; /Path = "...\VcdromX.exe"
004162F2   .  FF15 68344800              CALL DWORD PTR DS:[<&SHLWAPI.PathRem>; \PathRemoveExtensionA 移去扩展名(.exe)
004162F8   .  6A FF                      PUSH -1
004162FA   .  8D4C24 0C                  LEA ECX,DWORD PTR SS:[ESP+C]         ;  移去扩展名后的字符串的地址 "...\VcdromX"
004162FE   .  E8 278B0400                CALL VcdromX.0045EE2A
00416303   .  68 A8C54900                PUSH VcdromX.0049C5A8               ;  ASCII ".DAT"
00416308   .  8D4C24 0C                  LEA ECX,DWORD PTR SS:[ESP+C]
0041630C   .  E8 768A0400                CALL VcdromX.0045ED87               ;  连接字符串
00416311   .  8B5424 08                  MOV EDX,DWORD PTR SS:[ESP+8]         ;  "...\VcdromX.DAT" 得到注册文件
00416315   .  8D4C24 0C                  LEA ECX,DWORD PTR SS:[ESP+C]
00416319   .  51                         PUSH ECX                             ; /Arg2
0041631A   .  52                         PUSH EDX                             ; |Arg1 = "...VcdromX.DAT"
0041631B   .  E8 41EA0400                CALL VcdromX.00464D61               ; \VcdromX.00464D61 检查是否存在注册文件
00416320   .  85C0                       TEST EAX,EAX
00416322   .  74 04                      JE SHORT VcdromX.00416328
00416324   .  8B4424 18                  MOV EAX,DWORD PTR SS:[ESP+18]        ;  注册文件长度
00416328   >  25 FF3F0080                AND EAX,80003FFF
0041632D   .  79 07                      JNS SHORT VcdromX.00416336
0041632F   .  48                         DEC EAX
00416330   .  0D 00C0FFFF                OR EAX,FFFFC000
00416335   .  40                         INC EAX
00416336   >  8D4C24 08                  LEA ECX,DWORD PTR SS:[ESP+8]         ;  注册文件的地址
0041633A   .  894424 18                  MOV DWORD PTR SS:[ESP+18],EAX
0041633E   .  E8 3F860400                CALL VcdromX.0045E982
00416343   .  8B4C24 18                  MOV ECX,DWORD PTR SS:[ESP+18]
00416347   .  6A 00                      PUSH 0                               ; /lParam = 0
00416349   .  8BC1                       MOV EAX,ECX                          ; |注册文件长度
0041634B   .  81C1 DA390000              ADD ECX,39DA                         ; |
00416351   .  25 FFFF0000                AND EAX,0FFFF                        ; |
00416356   .  50                         PUSH EAX                             ; |wParam = 长度
00416357   .  8B47 1C                    MOV EAX,DWORD PTR DS:[EDI+1C]        ; |
0041635A   .  51                         PUSH ECX                             ; |Message
0041635B   .  50                         PUSH EAX                             ; |hWnd
0041635C   .  FF15 30374800              CALL DWORD PTR DS:[<&USER32.SendMess>; \SendMessageA 通过发送消息,检查注册情况
00416362   .  8D4C24 08                  LEA ECX,DWORD PTR SS:[ESP+8]
00416366   .  C78424 2C010000 FFFFFFFF   MOV DWORD PTR SS:[ESP+12C],-1
00416371   .  E8 81860400                CALL VcdromX.0045E9F7
00416376   .  8B8C24 24010000            MOV ECX,DWORD PTR SS:[ESP+124]
0041637D   .  5F                         POP EDI
0041637E   .  5E                         POP ESI
0041637F   .  64:890D 00000000           MOV DWORD PTR FS:[0],ECX
00416386   .  81C4 28010000              ADD ESP,128
0041638C   .  C2 0800                    RETN 8

//检查注册情况
004147D0  /.  55                         PUSH EBP
004147D1  |.  8BEC                       MOV EBP,ESP
004147D3  |.  6A FF                      PUSH -1
004147D5  |.  68 98CF4700                PUSH VcdromX.0047CF98               ;  SE handler installation
004147DA  |.  64:A1 00000000             MOV EAX,DWORD PTR FS:[0]
004147E0  |.  50                         PUSH EAX
004147E1  |.  64:8925 00000000           MOV DWORD PTR FS:[0],ESP
004147E8  |.  83EC 28                    SUB ESP,28
004147EB  |.  A1 D8F24900                MOV EAX,DWORD PTR DS:[49F2D8]
004147F0  |.  53                         PUSH EBX
004147F1  |.  56                         PUSH ESI
004147F2  |.  57                         PUSH EDI
004147F3  |.  8965 F0                    MOV DWORD PTR SS:[EBP-10],ESP
004147F6  |.  894D E8                    MOV DWORD PTR SS:[EBP-18],ECX
004147F9  |.  8945 EC                    MOV DWORD PTR SS:[EBP-14],EAX
004147FC  |.  68 05010000                PUSH 105
00414801  |.  8D4D EC                    LEA ECX,DWORD PTR SS:[EBP-14]
00414804  |.  C745 FC 00000000           MOV DWORD PTR SS:[EBP-4],0
0041480B  |.  E8 CBA50400                CALL VcdromX.0045EDDB
00414810  |.  8BF0                       MOV ESI,EAX
00414812  |.  68 04010000                PUSH 104                             ; /BufSize = 104 (260.)
00414817  |.  56                         PUSH ESI                             ; |PathBuffer
00414818  |.  6A 00                      PUSH 0                               ; |hModule = NULL
0041481A  |.  FF15 04344800              CALL DWORD PTR DS:[<&KERNEL32.GetMod>; \GetModuleFileNameA 获得应用程序绝对路径
00414820  |.  56                         PUSH ESI                             ; /Path = 获取得应用程序路径
00414821  |.  FF15 68344800              CALL DWORD PTR DS:[<&SHLWAPI.PathRem>; \PathRemoveExtensionA 去除扩展名(.exe)
00414827  |.  6A FF                      PUSH -1
00414829  |.  8D4D EC                    LEA ECX,DWORD PTR SS:[EBP-14]        ;  去除了扩展名的字符串
0041482C  |.  E8 F9A50400                CALL VcdromX.0045EE2A
00414831  |.  68 A8C54900                PUSH VcdromX.0049C5A8               ;  ASCII ".DAT"
00414836  |.  8D4D EC                    LEA ECX,DWORD PTR SS:[EBP-14]
00414839  |.  E8 49A50400                CALL VcdromX.0045ED87               ;  连接字符串,得到注册文件
0041483E  |.  8B5D 08                    MOV EBX,DWORD PTR SS:[EBP+8]         ;  文件内容长度
00414841  |.  53                         PUSH EBX
00414842  |.  E8 9BA70400                CALL VcdromX.0045EFE2
00414847  |.  8BF8                       MOV EDI,EAX
00414849  |.  83C4 04                    ADD ESP,4
0041484C  |.  8D4D CC                    LEA ECX,DWORD PTR SS:[EBP-34]
0041484F  |.  897D 08                    MOV DWORD PTR SS:[EBP+8],EDI
00414852  |.  E8 01E70400                CALL VcdromX.00462F58
00414857  |.  8B4D EC                    MOV ECX,DWORD PTR SS:[EBP-14]
0041485A  |.  33F6                       XOR ESI,ESI
0041485C  |.  56                         PUSH ESI                             ; /Arg3 => 00000000
0041485D  |.  68 00800000                PUSH 8000                            ; |Arg2 = 00008000
00414862  |.  51                         PUSH ECX                             ; |Arg1 = 注册文件
00414863  |.  8D4D CC                    LEA ECX,DWORD PTR SS:[EBP-34]        ; |
00414866  |.  C645 FC 01                 MOV BYTE PTR SS:[EBP-4],1            ; |
0041486A  |.  E8 FBE70400                CALL VcdromX.0046306A               ; \VcdromX.0046306A 打开文件
0041486F  |.  85C0                       TEST EAX,EAX
00414871  |.  74 2C                      JE SHORT VcdromX.0041489F
00414873  |.  8D4D DC                    LEA ECX,DWORD PTR SS:[EBP-24]
00414876  |.  E8 81E60400                CALL VcdromX.00462EFC
0041487B  |.  53                         PUSH EBX                             ; /Arg2 = 文件内容长度
0041487C  |.  57                         PUSH EDI                             ; |Arg1 = Buffer
0041487D  |.  8D4D CC                    LEA ECX,DWORD PTR SS:[EBP-34]        ; |
00414880  |.  C645 FC 03                 MOV BYTE PTR SS:[EBP-4],3            ; |
00414884  |.  E8 FEE80400                CALL VcdromX.00463187               ; \VcdromX.00463187 读取文件内容,EAX返回文件长度
00414889  |.  8D4D CC                    LEA ECX,DWORD PTR SS:[EBP-34]
0041488C  |.  8BF0                       MOV ESI,EAX
0041488E  |.  E8 F2E90400                CALL VcdromX.00463285               ;  关闭文件
00414893  |.  C745 FC 01000000           MOV DWORD PTR SS:[EBP-4],1
0041489A  |.  E8 9BE60400                CALL VcdromX.00462F3A
0041489F  |>  8D4D EC                    LEA ECX,DWORD PTR SS:[EBP-14]        ;  注册文件地址
004148A2  |.  E8 DBA00400                CALL VcdromX.0045E982
004148A7  |.  8B4D E8                    MOV ECX,DWORD PTR SS:[EBP-18]
004148AA  |.  81E6 FFFF0000              AND ESI,0FFFF
004148B0  |.  57                         PUSH EDI                             ; /lParam = 文件内容
004148B1  |.  56                         PUSH ESI                             ; |wParam = 文件长度
004148B2  |.  8B51 1C                    MOV EDX,DWORD PTR DS:[ECX+1C]        ; |
004148B5  |.  68 91040000                PUSH 491                             ; |Message = MSG(491)
004148BA  |.  52                         PUSH EDX                             ; |hWnd
004148BB  |.  FF15 30374800              CALL DWORD PTR DS:[<&USER32.SendMess>; \SendMessageA 通过发送消息,处理注册文件
004148C1  |>  8D4D CC                    LEA ECX,DWORD PTR SS:[EBP-34]
004148C4  |.  C645 FC 00                 MOV BYTE PTR SS:[EBP-4],0
004148C8  |.  E8 E0E60400                CALL VcdromX.00462FAD
004148CD  |.  8D4D EC                    LEA ECX,DWORD PTR SS:[EBP-14]
004148D0  |.  C745 FC FFFFFFFF           MOV DWORD PTR SS:[EBP-4],-1
004148D7  |.  E8 1BA10400                CALL VcdromX.0045E9F7
004148DC  |.  8B4D F4                    MOV ECX,DWORD PTR SS:[EBP-C]
004148DF  |.  5F                         POP EDI
004148E0  |.  5E                         POP ESI
004148E1  |.  64:890D 00000000           MOV DWORD PTR FS:[0],ECX
004148E8  |.  5B                         POP EBX
004148E9  |.  8BE5                       MOV ESP,EBP
004148EB  |.  5D                         POP EBP
004148EC  \.  C2 0800                    RETN 8

错误难免,还请指正。
2004-12-16 14:50
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
17
今天没时间继续下去了,关键处可以通过下断:
00415A60   .  6A FF         PUSH -1
00415A62   .  68 76D04700   PUSH VcdromX.0047D076                   ;  SE handler installation
00415A67   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00415A6D   .  50            PUSH EAX
……
以下内容涉及对注册文件内容的处理。
2004-12-16 16:53
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
18
这几天在爆个sen3狗。
又被你抢先了,接下来我们继续!
2004-12-16 21:37
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
19
爆完sen3狗,回来继续研究。
请问楼主,你是怎样来到,

//检查注册情况
004147D0 /. 55 PUSH EBP
004147D1 |. 8BEC MOV EBP,ESP
004147D3 |. 6A FF PUSH -1

今天没时间继续下去了,关键处可以通过下断:
00415A60 . 6A FF PUSH -1
00415A62 . 68 76D04700 PUSH VcdromX.0047D076 ; SE handler installation
00415A67 . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00415A6D . 50 PUSH EAX
……
以下内容涉及对注册文件内容的处理。


我也制作了假VcdromX.DAT,但是文件大小怎么知道呢?看来大小不对。
2004-12-18 17:34
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
20
不好意思,这些天休息都在看电影,还是上次的东西。

估计注册文件大小为158H(344)个字节:

00415A92   >  68 58010000   PUSH 158
00415A97   .  E8 46950400   CALL VcdromX.0045EFE2                   ;  分配内存
2004-12-18 22:39
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
21
不错,是344

我这里有个3.8的key,是344
2004-12-18 22:48
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
22
最初由 GoOdLeiSuRe 发布
不好意思,这些天休息都在看电影,还是上次的东西。

估计注册文件大小为158H(344)个字节:

00415A92 > 68 58010000 PUSH 158
........


怎么找到的啊? 高!!!
又 :
firstrose你的3.8的key在4.1可以用吗?应该没换算法 吧 ?
2004-12-19 00:09
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
23
刚给你发了一个。辅助分析。
2004-12-19 10:52
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
24
收到。
等我有时间看看,最近有些忙,年底许多活要出。
2004-12-19 11:09
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
25
支持!!!!
2005-2-16 11:53
0
游客
登录 | 注册 方可回帖
返回
//