能力值:
( LV2,RANK:10 )
|
-
-
2 楼
最简单的试用版破解
我上传的图中的三个红色部分的00000002,00000005,00000002改为00000003,00000005,00000002。并把他们的和相等于A的话那些限制都没有啦。
包括不能注册,不能加纪录等。除了员工浏览时还是20人限制和次数限制。
员工浏览时还是20人限制,正在研究中……
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我不赞成你的第一点,因为输入完并关闭人员浏览,打开档案维护时
输入的纪录都存在。再次打开人员浏览时多余的就没啦。
所以我想人数限制应该在人员浏览按钮的代码里,可是我还没找见限制的部分。一起研究???
QQ:307336869
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
:p :p :p
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
:p :p :p
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
你说的第三点应该是MaxRecords属性吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
看雪老大给点思路帮个忙吧!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
是啊,我也觉得第三种的可能性比较大。但是如果是这种可能,为什么我在已有19人的情况下,连续输入两人(即保存再新增按钮),关闭输入栏后能人员浏览显示21人。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
哪位大侠会用DEDE,帮我反编译分析一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
说来也很巧,当我花了20来天时间还没奏效时,我就又在网上搜索人力资源软件,。后来我也选中了深蓝的综合人力资源管理,我下载的还是试用版的,没找到正式版,不知道你的同事用的是哪个版本的,是否正式版了。可以帮我问一下吗?关于深蓝,我也尝试了一下。他是输入注册码后重启软件再进行判断,但是由于本人不太擅长分析汇编,所以还未找出注册码
|
能力值:
( 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
|
能力值:
( 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
|
能力值:
( 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
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
深蓝也是我帮她弄的。
她用得怎样我也不知道。这个软件的的代码我都没来得及分析过,我只是用regshot分析了一下,然后做了个reg文件放在桌面上,试用期一到运行一次又可以用50次。(还是100次?我不记得了)
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
可以将你做的文件发给我一份吗?谢谢!shiqilili@hotmail.com
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
你运行的那个文件是修改次数的吧,在哪里修改呢?可以告诉我地址吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
我发现打开人员浏览时他把纪录中的纪录数改啦!
改变的只是记录数。纪录本身没变。
比如:你的纪录有25个那么打开人员浏览时程序把25变成20。那么dbgrid控件的读出数就变成了20。其实那个25个记录都存在。只不过因为记录数是20所以多余5的就读不出来啦。
|
能力值:
( 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"
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
论坛自动删除空格,上面比较结果的位置不准了。再试试:
FileSize: 1EC000h
<offset>――<File 1 Byte>――<File 2 Byte>
000E02h――――90h―――――― 95h
194F81h――――F1h―――――― EFh
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
FileSize: 1EC000h
<offset>――<File 1 Byte>――<File 2 Byte>
000E02h――――90h―――――― 95h
194F81h――――F1h―――――― EFh
F1改为FF还是EF改为FF呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
你没看明白吗?
我原来就已经改成FF了,用了几次变成F1、EF了嘛。
前面的是地址,在personnel.gdb找到地址00194F81对应的值,把16进制换成10进制得出的数值是你还剩余的次数就对了。
|