凌鹏人力软件有30天试用限制
用OD载入hr.exe,搜索ASCII
找到“试用”,直接在此F2下断,重新加载
F9 运行,得到如下代码
006BFAA9 |. 8B83 08030000 mov eax,dword ptr ds:[ebx+0x308]
006BFAAF |. E8 4C090100 call HR.006D0400
006BFAB4 85C0 test eax,eax
006BFAB6 7E 3D jle XHR.006BFAF5 ;关键跳,跳就试用结束
006BFAB8 68 58FB6B00 push HR.006BFB58 ; 您还可以试用
006BFABD |. 8B83 08030000 mov eax,dword ptr ds:[ebx+0x308]
006BFAC3 |. E8 38090100 call HR.006D0400
006BFAC8 |. 8D55 F8 lea edx,[local.2]
006BFACB |. E8 209DD4FF call HR.004097F0
006BFAD0 |. FF75 F8 push [local.2]
006BFAD3 |. 68 70FB6B00 push HR.006BFB70 ; 还可继续试用天数
006BFAD8 |. 8D45 FC lea eax,[local.1]
006BFADB |. BA 03000000 mov edx,0x3
006BFAE0 |. E8 374ED4FF call HR.0040491C
006BFAE5 |. 8B55 FC mov edx,[local.1]
006BFAE8 |. 8B83 00030000 mov eax,dword ptr ds:[ebx+0x300]
006BFAEE |. E8 59ABDCFF call HR.0048A64C
006BFAF3 |. EB 10 jmp XHR.006BFB05
006BFAF5 |> BA 7CFB6B00 mov edx,HR.006BFB7C ; 试用已经到期,请注册正式版!
006BFAFA |. 8B83 00030000 mov eax,dword ptr ds:[ebx+0x300]
006BFB00 |. E8 47ABDCFF call HR.0048A64C
如果把
006BFAB6 7E 3D jle XHR.006BFAF5 ;关键跳,跳就试用结束
改成9090直接跳过,则在试用期过后运行程序,出有报错出现。
那程序还一定有 实际使用天数与试用期 的比较
继续找(因为是新手期间花了不少时间略过)
最后找到到这里F2下断点, 重新加载
F9运行,F8
006D0314 . B8 CC036D00 mov eax,HR.006D03CC ; yyyy-MM-dd
006D0319 . E8 36C6D3FF call HR.0040C954 ; 当前系统日期
006D031E . 8B95 5CFEFFFF mov edx,dword ptr ss:[ebp-0x1A4]
006D0324 58 pop eax
006D0325 . E8 7E46D3FF call HR.004049A8 ; 第一次安装日期
006D032A 75 0A jnz XHR.006D0336
006D032C . 8B46 48 mov eax,dword ptr ds:[esi+0x48]
006D032F . 8946 54 mov dword ptr ds:[esi+0x54],eax
006D0332 . 33DB xor ebx,ebx
006D0334 . EB 44 jmp XHR.006D037A
006D0336 > E8 D1B7D3FF call HR.0040BB0C
006D033B . DC65 F0 fsub qword ptr ss:[ebp-0x10]
006D033E . DD5D F8 fstp qword ptr ss:[ebp-0x8]
006D0341 . 9B wait
006D0342 . DD45 F8 fld qword ptr ss:[ebp-0x8]
006D0345 . 83C4 F4 add esp,-0xC
006D0348 . DB3C24 fstp tbyte ptr ss:[esp]
006D034B . 9B wait
006D034C . 8D95 58FEFFFF lea edx,dword ptr ss:[ebp-0x1A8]
006D0352 . B8 FC036D00 mov eax,HR.006D03FC ; 0
006D0357 . E8 B8B0D3FF call HR.0040B414
006D035C 8B85 58FEFFFF mov eax,dword ptr ss:[ebp-0x1A8]
006D0362 . E8 C595D3FF call HR.0040992C
006D0367 8B56 48 mov edx,dword ptr ds:[esi+0x48] ;30天试用
006D036A 2BD0 sub edx,eax ;30天减去已使用天
006D036C 8956 54 mov dword ptr ds:[esi+0x54],edx ;还可使用天数
006D036F 3B46 48 cmp eax,dword ptr ds:[esi+0x48] ;比较试用30天数与使用天数
006D0372 7C 04 jl XHR.006D0378 ;实际使用天数小于试用30天则跳
006D0374 B3 01 mov bl,0x1
006D0376 EB 02 jmp XHR.006D037A ; ^_^原来出错在这里
006D0378 > 33DB xor ebx,ebx
006D037A > 33C0 xor eax,eax
好了,现在问题可以解决了
把这里006D0372 7C 04 jl XHR.006D0378 ;实际使用天数小于试用30天则跳
改成无条件eb04跳
至此过了30天试用期,软件还可以继续使用,只是变成负数的天数
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课