首页
社区
课程
招聘
难道我真要放弃了吗?
发表于: 2004-5-29 17:16 11611

难道我真要放弃了吗?

2004-5-29 17:16
11611
http://www.numinfo.com/personnel3000xp.exe
这是玉舟人事管理3000XP辉煌版的试用版本,也仅仅是试用版本。正试版只随光盘不能网上下载。注册费:980元,简直是砍人!本人初学破解,加上一同事MM叫我帮搞掂它,所以决定试一试。
先看看试用版有什么限制:
(1)只能用50次
(2)输入人员资料限定20人内
(3)注册时输入随意码提示试用版本不能注册。
……
第一点,因为出现警告框,用trw2000下断点bpx messageboxa,拦截后单步运行几步,退出几个call后到爆点位置,是判断次数的爆点,不超次数则提示还有几次,超过次数提示后退出。而它之前并没有判断是否正式版的爆点。把判断的部分用“90”替换,可以解决。
第二点,输入满20人后,也是下bpx messageboxa的断点,退了几个CAll之后,在call之前发现一下判断EAX的值和0A比较后转移的语句,看来这句是用来判断是否试用版,把0A改为09(因为我发现EAX的值都是09)可以搞掂。
第三点也是同第二点,先破试用版不能注册,再把它破成注册成功,搞掂。

本以为我已经把试用版变成了“正式版”,却发现增加了人数后再重新浏览人员,也只显示20人,也就是说还有一个地方删掉了我的人数。而正是这个地方困扰了我好多天却无法解决,而同事MM已经跟我说,她改用深蓝人力资源管理系统了,真是失败!
分析一下软件,是用dephi写的,没加壳。一般试用版都是用正式版改成的,软件一开始的地方就把自己当作试用版,所以不存在判断是否正式版,只判断是否超出次数;而在后来,判断人员数量时和判断是否能注册时,它都加了一个判断语句。所以我认为软件的功能是完整的。而这个能删除超过20人的人员名单的爆点可能位于三个地方:
(1)输入超20人以后,作者设置判断语句,关闭保存时把多余的数据删掉
(2)重新打开人员浏览时,超过20人的名单不予显示,也是由作者的判断语句执行。
(3)Dephi的数据库控件有一个属性是用来设置数据的最高数值,只需把它设置为20就行了,其它由程序自动判断。
我在trw2000中下bpx showwindow和bpx readfile和bpx writefile都可以拦截到,但却不知如何跟踪。
另外,软件的数据文件personnel.gdb(位于DB目录下)的大小在增删数据后都没有改变,却是为何?
本人能力有限,却又不想放弃,所以希望高手大侠出手援助。
谢谢!
我的Email: [email]myAries@tom.com[/email]

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 6
支持
分享
最新回复 (21)
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最简单的试用版破解
我上传的图中的三个红色部分的00000002,00000005,00000002改为00000003,00000005,00000002。并把他们的和相等于A的话那些限制都没有啦。
包括不能注册,不能加纪录等。除了员工浏览时还是20人限制和次数限制。
员工浏览时还是20人限制,正在研究中……
2004-5-29 18:50
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我不赞成你的第一点,因为输入完并关闭人员浏览,打开档案维护时
输入的纪录都存在。再次打开人员浏览时多余的就没啦。
所以我想人数限制应该在人员浏览按钮的代码里,可是我还没找见限制的部分。一起研究???
QQ:307336869
2004-5-29 18:57
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
:p :p :p
2004-5-29 18:59
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
:p :p :p
2004-5-29 19:00
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你说的第三点应该是MaxRecords属性吧?
2004-5-29 20:08
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看雪老大给点思路帮个忙吧!
2004-5-29 21:59
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是啊,我也觉得第三种的可能性比较大。但是如果是这种可能,为什么我在已有19人的情况下,连续输入两人(即保存再新增按钮),关闭输入栏后能人员浏览显示21人。
2004-5-30 09:04
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哪位大侠会用DEDE,帮我反编译分析一下。
2004-5-30 09:11
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我在另外一个地方也发了类似的帖子,我也想破这个软件。
我现在的进度是能够增加了(或导入),可以增加无限个,增加后保存也能全部显示你输入的记录,你输入多少,则显示多少。但是当你退出员工浏览后再次进入员工浏览那个表单,则又只能显示20个了。我的帖子:http://bbs.pediy.com/showthread.php?s=&threadid=1367  希望与各位一起研究
2004-6-1 18:32
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
说来也很巧,当我花了20来天时间还没奏效时,我就又在网上搜索人力资源软件,。后来我也选中了深蓝的综合人力资源管理,我下载的还是试用版的,没找到正式版,不知道你的同事用的是哪个版本的,是否正式版了。可以帮我问一下吗?关于深蓝,我也尝试了一下。他是输入注册码后重启软件再进行判断,但是由于本人不太擅长分析汇编,所以还未找出注册码
2004-6-1 18:37
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
006241FC   55                     push    ebp
006241FD   8BEC                   mov     ebp, esp
006241FF   B90A000000             mov     ecx, $0000000A
00624204   6A00                   push    $00
00624206   6A00                   push    $00
00624208   49                     dec     ecx
00624209   75F9                   jnz     00624204
0062420B   51                     push    ecx
0062420C   53                     push    ebx
0062420D   8BD8                   mov     ebx, eax
0062420F   33C0                   xor     eax, eax
00624211   55                     push    ebp

* Possible String Reference to: '???遨?]?
|
00624212   6889446200             push    $00624489

***** TRY
|
00624217   64FF30                 push    dword ptr fs:[eax]
0062421A   648920                 mov     fs:[eax], esp
0062421D   8BC3                   mov     eax, ebx

* Reference to : Tmyformdep.FormShow()
|
0062421F   E85C8FFFFF             call    0061D180

* Reference to TScreen instance
|
00624224   A1ECDF6800             mov     eax, dword ptr [$0068DFEC]
00624229   8B00                   mov     eax, [eax]

* Reference to field TScreen.Cursor : TCursor
|
0062422B   668B4044               mov     ax, word ptr [eax+$44]
0062422F   668945FE               mov     [ebp-$02], ax

* Reference to TScreen instance
|
00624233   A1ECDF6800             mov     eax, dword ptr [$0068DFEC]
00624238   8B00                   mov     eax, [eax]
0062423A   66BAF5FF               mov     dx, $FFF5

* Reference to: Forms.TScreen.SetCursor(TScreen;TCursor);
|
0062423E   E81DA3E4FF             call    0046E560
00624243   33C0                   xor     eax, eax
00624245   55                     push    ebp
00624246   6861446200             push    $00624461

***** TRY
|
0062424B   64FF30                 push    dword ptr fs:[eax]
0062424E   648920                 mov     fs:[eax], esp

* Reference to: Unit_global.Proc_00685398
|
00624251   E842110600             call    00685398

* Reference to: Unit_global.Proc_0068554C
|
00624256   E8F1120600             call    0068554C
0062425B   33C0                   xor     eax, eax

* Reference to field Tform_personlist.OFFS_04F8
|
0062425D   8983F8040000           mov     [ebx+$04F8], eax

* Reference to field Tform_personlist.OFFS_03B8
|
00624263   8B83B8030000           mov     eax, [ebx+$03B8]
00624269   8B80A8020000           mov     eax, [eax+$02A8]

* Reference to: Classes.TCollection.GetCount(TCollection):Integer;
|
0062426F   E82C6CDFFF             call    0041AEA0
00624274   48                     dec     eax

* Reference to field Tform_personlist.OFFS_04FC
|
00624275   8983FC040000           mov     [ebx+$04FC], eax

* Reference to pointer to GlobalVar_006915AC
|
0062427B   A1D0DE6800             mov     eax, dword ptr [$0068DED0]
00624280   8B00                   mov     eax, [eax]
00624282   BAA0446200             mov     edx, $006244A0

* Reference to: System.@LStrCmp;
|
00624287   E8E009DEFF             call    00404C6C
0062428C   750F                   jnz     0062429D

* Reference to control Tform_personlist.Ndisp1 : TMenuItem
|
0062428E   8B83A8040000           mov     eax, [ebx+$04A8]
00624294   B201                   mov     dl, $01

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624296   E8CDCBE3FF             call    00460E68
0062429B   EB0D                   jmp     006242AA

* Reference to control Tform_personlist.Ndisp1 : TMenuItem
|
0062429D   8B83A8040000           mov     eax, [ebx+$04A8]
006242A3   33D2                   xor     edx, edx
2004-6-1 18:55
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
006242A5   E8BECBE3FF             call    00460E68

* Reference to pointer to GlobalVar_006915B0
|
006242AA   A154DF6800             mov     eax, dword ptr [$0068DF54]
006242AF   8B00                   mov     eax, [eax]
006242B1   BAAC446200             mov     edx, $006244AC

* Reference to: System.@LStrCmp;
|
006242B6   E8B109DEFF             call    00404C6C
006242BB   750F                   jnz     006242CC

* Reference to control Tform_personlist.Ndisp2 : TMenuItem
|
006242BD   8B83AC040000           mov     eax, [ebx+$04AC]
006242C3   B201                   mov     dl, $01

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
006242C5   E89ECBE3FF             call    00460E68
006242CA   EB0D                   jmp     006242D9

* Reference to control Tform_personlist.Ndisp2 : TMenuItem
|
006242CC   8B83AC040000           mov     eax, [ebx+$04AC]
006242D2   33D2                   xor     edx, edx

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
006242D4   E88FCBE3FF             call    00460E68

* Reference to pointer to GlobalVar_006915B4
|
006242D9   A144DB6800             mov     eax, dword ptr [$0068DB44]
006242DE   8B00                   mov     eax, [eax]
006242E0   BAB8446200             mov     edx, $006244B8

* Reference to: System.@LStrCmp;
|
006242E5   E88209DEFF             call    00404C6C
006242EA   750F                   jnz     006242FB

* Reference to control Tform_personlist.Ndisp3 : TMenuItem
|
006242EC   8B83B0040000           mov     eax, [ebx+$04B0]
006242F2   B201                   mov     dl, $01

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
006242F4   E86FCBE3FF             call    00460E68
006242F9   EB0D                   jmp     00624308

* Reference to control Tform_personlist.Ndisp3 : TMenuItem
|
006242FB   8B83B0040000           mov     eax, [ebx+$04B0]
00624301   33D2                   xor     edx, edx

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624303   E860CBE3FF             call    00460E68

* Reference to pointer to GlobalVar_006915B8
|
00624308   A11CD86800             mov     eax, dword ptr [$0068D81C]
0062430D   8B00                   mov     eax, [eax]
0062430F   BAC4446200             mov     edx, $006244C4

* Reference to: System.@LStrCmp;
|
00624314   E85309DEFF             call    00404C6C
00624319   750F                   jnz     0062432A

* Reference to control Tform_personlist.Ndisp4 : TMenuItem
|
0062431B   8B83B4040000           mov     eax, [ebx+$04B4]
00624321   B201                   mov     dl, $01

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624323   E840CBE3FF             call    00460E68
00624328   EB0D                   jmp     00624337
2004-6-1 18:56
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
* Reference to control Tform_personlist.Ndisp4 : TMenuItem
|
0062432A   8B83B4040000           mov     eax, [ebx+$04B4]
00624330   33D2                   xor     edx, edx

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624332   E831CBE3FF             call    00460E68

* Reference to pointer to GlobalVar_006915BC
|
00624337   A170DD6800             mov     eax, dword ptr [$0068DD70]
0062433C   8B00                   mov     eax, [eax]
0062433E   BAD0446200             mov     edx, $006244D0

* Reference to: System.@LStrCmp;
|
00624343   E82409DEFF             call    00404C6C
00624348   750F                   jnz     00624359

* Reference to control Tform_personlist.Ndisp5 : TMenuItem
|
0062434A   8B83B8040000           mov     eax, [ebx+$04B8]
00624350   B201                   mov     dl, $01

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624352   E811CBE3FF             call    00460E68
00624357   EB0D                   jmp     00624366

* Reference to control Tform_personlist.Ndisp5 : TMenuItem
|
00624359   8B83B8040000           mov     eax, [ebx+$04B8]
0062435F   33D2                   xor     edx, edx

* Reference to: Menus.TMenuItem.SetChecked(TMenuItem;Boolean);
|
00624361   E802CBE3FF             call    00460E68

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
00624366   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: ADODB.TCustomADODataSet.GetParameters(TCustomADODataSet):TParameters;
|
0062436C   E857E1ECFF             call    004F24C8
00624371   50                     push    eax
00624372   8D45EC                 lea     eax, [ebp-$14]

* Reference to pointer to GlobalVar_006915AC
|
00624375   8B15D0DE6800           mov     edx, [$0068DED0]
0062437B   8B12                   mov     edx, [edx]

* Reference to: System.@DispInvoke;cdecl;
|           or: System.@VarClear(Variant;Variant);
|           or: System.@VarCopy(Variant;Variant;Variant;Variant);
|           or: System.@VarCast(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarCastOle(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarToInt(Variant;Variant):Integer;
|
0062437D   E8AE15DEFF             call    00405930
00624382   8D4DEC                 lea     ecx, [ebp-$14]
00624385   BAD8446200             mov     edx, $006244D8
0062438A   58                     pop     eax

* Reference to: ADODB.TParameters.SetParamValue(TParameters;WideString;Variant;Variant);
|
0062438B   E8D461ECFF             call    004EA564

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
00624390   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: ADODB.TCustomADODataSet.GetParameters(TCustomADODataSet):TParameters;
|
00624396   E82DE1ECFF             call    004F24C8
0062439B   50                     push    eax
0062439C   8D45DC                 lea     eax, [ebp-$24]

* Reference to pointer to GlobalVar_006915B0
|
0062439F   8B1554DF6800           mov     edx, [$0068DF54]
006243A5   8B12                   mov     edx, [edx]

* Reference to: System.@DispInvoke;cdecl;
|           or: System.@VarClear(Variant;Variant);
|           or: System.@VarCopy(Variant;Variant;Variant;Variant);
|           or: System.@VarCast(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarCastOle(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarToInt(Variant;Variant):Integer;
|
006243A7   E88415DEFF             call    00405930
006243AC   8D4DDC                 lea     ecx, [ebp-$24]
006243AF   BAF0446200             mov     edx, $006244F0
006243B4   58                     pop     eax

* Reference to: ADODB.TParameters.SetParamValue(TParameters;WideString;Variant;Variant);
|
006243B5   E8AA61ECFF             call    004EA564

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
006243BA   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: ADODB.TCustomADODataSet.GetParameters(TCustomADODataSet):TParameters;
|
006243C0   E803E1ECFF             call    004F24C8
006243C5   50                     push    eax
006243C6   8D45CC                 lea     eax, [ebp-$34]

* Reference to pointer to GlobalVar_006915B4
|
006243C9   8B1544DB6800           mov     edx, [$0068DB44]
006243CF   8B12                   mov     edx, [edx]

* Reference to: System.@DispInvoke;cdecl;
|           or: System.@VarClear(Variant;Variant);
|           or: System.@VarCopy(Variant;Variant;Variant;Variant);
|           or: System.@VarCast(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarCastOle(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarToInt(Variant;Variant):Integer;
|
006243D1   E85A15DEFF             call    00405930
006243D6   8D4DCC                 lea     ecx, [ebp-$34]
006243D9   BA08456200             mov     edx, $00624508
006243DE   58                     pop     eax

* Reference to: ADODB.TParameters.SetParamValue(TParameters;WideString;Variant;Variant);
|
006243DF   E88061ECFF             call    004EA564

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
006243E4   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: ADODB.TCustomADODataSet.GetParameters(TCustomADODataSet):TParameters;
|
006243EA   E8D9E0ECFF             call    004F24C8
006243EF   50                     push    eax
006243F0   8D45BC                 lea     eax, [ebp-$44]

* Reference to pointer to GlobalVar_006915B8
|
006243F3   8B151CD86800           mov     edx, [$0068D81C]
006243F9   8B12                   mov     edx, [edx]

* Reference to: System.@DispInvoke;cdecl;
|           or: System.@VarClear(Variant;Variant);
|           or: System.@VarCopy(Variant;Variant;Variant;Variant);
|           or: System.@VarCast(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarCastOle(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarToInt(Variant;Variant):Integer;
|
006243FB   E83015DEFF             call    00405930
00624400   8D4DBC                 lea     ecx, [ebp-$44]
00624403   BA20456200             mov     edx, $00624520
00624408   58                     pop     eax

* Reference to: ADODB.TParameters.SetParamValue(TParameters;WideString;Variant;Variant);
|
00624409   E85661ECFF             call    004EA564

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
0062440E   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: ADODB.TCustomADODataSet.GetParameters(TCustomADODataSet):TParameters;
|
00624414   E8AFE0ECFF             call    004F24C8
00624419   50                     push    eax
0062441A   8D45AC                 lea     eax, [ebp-$54]

* Reference to pointer to GlobalVar_006915BC
|
0062441D   8B1570DD6800           mov     edx, [$0068DD70]
00624423   8B12                   mov     edx, [edx]

* Reference to: System.@DispInvoke;cdecl;
|           or: System.@VarClear(Variant;Variant);
|           or: System.@VarCopy(Variant;Variant;Variant;Variant);
|           or: System.@VarCast(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarCastOle(Variant;Variant;Variant;Variant;Integer);
|           or: System.@VarToInt(Variant;Variant):Integer;
|
00624425   E80615DEFF             call    00405930
0062442A   8D4DAC                 lea     ecx, [ebp-$54]
0062442D   BA38456200             mov     edx, $00624538
00624432   58                     pop     eax

* Reference to: ADODB.TParameters.SetParamValue(TParameters;WideString;Variant;Variant);
|
00624433   E82C61ECFF             call    004EA564

* Reference to control Tform_personlist.qpersonbase : TADOQuery
|
00624438   8B83E0030000           mov     eax, [ebx+$03E0]

* Reference to: DB.TDataSet.Open(TDataSet);
|
0062443E   E84D81E6FF             call    0048C590
00624443   33C0                   xor     eax, eax
00624445   5A                     pop     edx
00624446   59                     pop     ecx
00624447   59                     pop     ecx
00624448   648910                 mov     fs:[eax], edx

****** FINALLY
|
0062444B   6868446200             push    $00624468

* Reference to TScreen instance
|
00624450   A1ECDF6800             mov     eax, dword ptr [$0068DFEC]
00624455   8B00                   mov     eax, [eax]
00624457   668B55FE               mov     dx, word ptr [ebp-$02]

* Reference to: Forms.TScreen.SetCursor(TScreen;TCursor);
|
0062445B   E800A1E4FF             call    0046E560
00624460   C3                     ret

* Reference to: System.@HandleFinally;
|
00624461   E9AEFCDDFF             jmp     00404114
00624466   EBE8                   jmp     00624450

****** END
|
00624468   33C0                   xor     eax, eax
0062446A   5A                     pop     edx
0062446B   59                     pop     ecx
0062446C   59                     pop     ecx
0062446D   648910                 mov     fs:[eax], edx

****** FINALLY
|

* Possible String Reference to: '[?]?
|
00624470   6890446200             push    $00624490
00624475   8D45AC                 lea     eax, [ebp-$54]

* Reference to object Variant
|
00624478   8B153C114000           mov     edx, [$0040113C]
0062447E   B905000000             mov     ecx, $00000005

* Reference to: System.@FinalizeArray(Pointer;Pointer;Cardinal);
|
00624483   E8DC0FDEFF             call    00405464
00624488   C3                     ret

* Reference to: System.@HandleFinally;
|
00624489   E986FCDDFF             jmp     00404114
0062448E   EBE5                   jmp     00624475

****** END
|
00624490   5B                     pop     ebx
00624491   8BE5                   mov     esp, ebp
00624493   5D                     pop     ebp
00624494   C3                     ret
2004-6-1 18:57
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
深蓝也是我帮她弄的。
她用得怎样我也不知道。这个软件的的代码我都没来得及分析过,我只是用regshot分析了一下,然后做了个reg文件放在桌面上,试用期一到运行一次又可以用50次。(还是100次?我不记得了)
2004-6-2 11:22
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
可以将你做的文件发给我一份吗?谢谢!shiqilili@hotmail.com
2004-6-2 18:31
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
你运行的那个文件是修改次数的吧,在哪里修改呢?可以告诉我地址吗?
2004-6-2 18:34
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我发现打开人员浏览时他把纪录中的纪录数改啦!
改变的只是记录数。纪录本身没变。
比如:你的纪录有25个那么打开人员浏览时程序把25变成20。那么dbgrid控件的读出数就变成了20。其实那个25个记录都存在。只不过因为记录数是20所以多余5的就读不出来啦。
2004-6-2 21:50
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不是这样的,且看我做过的试验:
试验前提:软件已被爆破,可以在20人以后继续增加人数,其它可以先不动。
使用File Compare32中文版分析比较DB目录下的personnel.gdb。
(1)确认软件内已被输入20人,先把personnel.gdb备份另存为A,运行玉舟人力软件,进去后点击浏览后退出,再把personnel.gdb备份另存为B。用File Compare32分析A和B,发现只有两处不同,经确认应该是剩余次数。如下:
FileSize:   1EC000h
<offset>        <File 1 Byte>         <File 2 Byte>
     E02h                90h                   95h
  194F81h                F1h                   EFh
大家先把194F81H的改为FF就可还剩255次使用次数。
从以上数据分析,可认为A=B。
(2)运行软件后,增加一人,再后直接退出,把personnel.gdb备份另存为C,比较B、C,发现数据更改很多,可认为,增加的一人已被保存入数据文件personnel.gdb中。
(3)再运行玉舟人力软件,进入后马上退出,personnel.gdb备份另存为D,比较C、D,数据更改很大,与(1)相同的操作,比较结果却不同,可认为,运行软件初始化时,程序判断数据是否超出20人,如超则删。比较A、C,数据更改却不大,可视为A也等于D。
(4)把A备份回personnel.gdb,运行软件增加一人,退出浏览,再进入浏览,发现只剩20人,再退出程序。personnel.gdb备份另存为E,发现E与D相同,说明进入人员浏览时,也进行如(3)中的判断。
……
试验还没做完,在(3)中还可以试验出是在输入管理员密码前更改数据文件personnel.gdb,还是在出现“您还可以试用××次”的提示框之前更改,或者是在其之后更改。这样,我们的调试就更有目的性了。

另外,To shiqilili,我已经给你发邮件了,如果你没收到,就把下面这代码copy到记事本里,另存为*.reg就行了,值0x0000000E是有规律的,但不是按顺序的,我没时间找,要不可以设为试用次数为10000次以上了。

REGEDIT4

[HKEY_LOCAL_MACHINE\Software]
"BNSoft"="0x0000000E"
2004-6-3 10:16
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
论坛自动删除空格,上面比较结果的位置不准了。再试试:

FileSize: 1EC000h

<offset>――<File 1 Byte>――<File 2 Byte>
000E02h――――90h―――――― 95h
194F81h――――F1h―――――― EFh
2004-6-3 10:25
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
FileSize: 1EC000h

<offset>――<File 1 Byte>――<File 2 Byte>
000E02h――――90h―――――― 95h
194F81h――――F1h―――――― EFh
F1改为FF还是EF改为FF呢?
2004-6-3 13:45
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
你没看明白吗?
我原来就已经改成FF了,用了几次变成F1、EF了嘛。
前面的是地址,在personnel.gdb找到地址00194F81对应的值,把16进制换成10进制得出的数值是你还剩余的次数就对了。
2004-6-3 15:39
0
游客
登录 | 注册 方可回帖
返回
//