首页
社区
课程
招聘
[原创]FOXPRO程序的OD分析---国富达服装鞋帽管理系统去除时间
发表于: 2005-3-14 07:30 8314

[原创]FOXPRO程序的OD分析---国富达服装鞋帽管理系统去除时间

2005-3-14 07:30
8314
FOXPRO程序的OD分析---国富达服装鞋帽管理系统去除时间限制
【破解作者】 jsliyangsj
【作者邮箱】 sjcrack@yahoo.com.cn
【使用工具】 peid OllyDbg1.10
【破解平台】 Winxp
【软件名称】 国富达服装鞋帽管理系统
【下载地址】 http://www.goft.net/
【编写语言】 FOXPRO
由于不懂FOXPRO,只好用OD慢慢跟,也没有办法,自己也要用这个软件,也向国富达公司要的最新版本,
公司开发者说只是时间上60天的限制,功能上没有任何限制,他说他们只是做更好的服务,软件要都这样多好:)
,要是连时间限制也没有就更好了!!,呵呵,

时间限制用断点GetLocalTime
……………………………………………………………………………………………………………………
0C006591   /$  55              push ebp
0C006592   |.  8BEC            mov ebp,esp
0C006594   |.  83EC 10         sub esp,10
0C006597   |.  56              push esi
0C006598   |.  8D45 F0         lea eax,dword ptr ss:[ebp-10]
0C00659B   |.  57              push edi
0C00659C   |.  8BF2            mov esi,edx
0C00659E   |.  8BF9            mov edi,ecx
0C0065A0   |.  50              push eax                               ; /pLocaltime
0C0065A1   |.  FF15 E4D12E0C   call dword ptr ds:[<&KERNEL32.GetLocal>; \GetLocalTime  断在这里
0C0065A7   |.  0FB745 F0       movzx eax,word ptr ss:[ebp-10]
0C0065AB   |.  8B4D 08         mov ecx,dword ptr ss:[ebp+8]
0C0065AE   |.  8907            mov dword ptr ds:[edi],eax
0C0065B0   |.  0FB745 F2       movzx eax,word ptr ss:[ebp-E]
0C0065B4   |.  8906            mov dword ptr ds:[esi],eax
0C0065B6   |.  5F              pop edi
0C0065B7   |.  0FB745 F6       movzx eax,word ptr ss:[ebp-A]
0C0065BB   |.  8901            mov dword ptr ds:[ecx],eax
0C0065BD   |.  5E              pop esi
0C0065BE   |.  C9              leave
0C0065BF   \.  C2 0400         retn 4
………………………………………………………………………………………………………………
一共要中断6次到第6次停下来慢慢跟
………………………………………………………………………………………………………………
0C096049    .  8D4C24 08       lea ecx,dword ptr ss:[esp+8]           ; |
0C09604D    .  E8 3F05F7FF     call VFP6R.0C006591                    ; \得到当前系统时间
0C096052    >  C606 44         mov byte ptr ds:[esi],44
0C096055    .  8B4C24 04       mov ecx,dword ptr ss:[esp+4]           ;  得到现在的年份
0C096059    .  8B5424 08       mov edx,dword ptr ss:[esp+8]           ;  得到现在的日子
0C09605D    .  51              push ecx
0C09605E    .  8B4C24 10       mov ecx,dword ptr ss:[esp+10]          ;  得到现在的月份
0C096062    .  E8 040D0000     call VFP6R.0C096D6B                    ;  用现在的年、月、日计算出一个数据,用于后面比较
0C096067    .  DD5E 10         fstp qword ptr ds:[esi+10]             ;  把计算好的数据储存在0C2FE230
0C09606A    .  5E              pop esi
0C09606B    .  83C4 0C         add esp,0C
0C09606E    .  C3              retn
………………………………………………………………………………………………………………
进入0C096062    .  E8 040D0000     call VFP6R.0C096D6B   把时间转化成某数据的计算的过程
………………………………………………………………………………………………………………
0C096D6B    $  55              push ebp
0C096D6C    .  8BEC            mov ebp,esp
0C096D6E    .  83EC 18         sub esp,18
0C096D71    .  53              push ebx
0C096D72    .  56              push esi
0C096D73    .  8B75 08         mov esi,dword ptr ss:[ebp+8]           ;  压入当前年份
0C096D76    .  8BDA            mov ebx,edx                            ;  日子
0C096D78    .  83FB 01         cmp ebx,1
0C096D7B    .  57              push edi
0C096D7C    .  894D FC         mov dword ptr ss:[ebp-4],ecx           ;  当前月份
0C096D7F    .  8975 F8         mov dword ptr ss:[ebp-8],esi           ;  当前年份
0C096D82    .  0F8C C4000000   jl VFP6R.0C096E4C
0C096D88    .  83F9 02         cmp ecx,2
0C096D8B    .  7E 6C           jle short VFP6R.0C096DF9
0C096D8D    .  83E9 03         sub ecx,3
0C096D90    >  8BC6            mov eax,esi
0C096D92    .  6A 64           push 64
0C096D94    .  99              cdq
0C096D95    .  5F              pop edi
0C096D96    .  F7FF            idiv edi                               ;  年份除以100余数在EDX中
0C096D98    .  6A 05           push 5
0C096D9A    .  8BF8            mov edi,eax                            ;  除法得到的商
0C096D9C    .  6BC0 64         imul eax,eax,64                        ;  商再乘以100得到2000年
0C096D9F    .  2BF0            sub esi,eax                            ;  与2000年相减得到与2000相差的数
0C096DA1    .  69FF B13A0200   imul edi,edi,23AB1                     ;  除法得到的商年份前2未与146097相乘
0C096DA7    .  8BC1            mov eax,ecx
0C096DA9    .  69F6 B5050000   imul esi,esi,5B5                       ;  年份与2000的差与1461相乘
0C096DAF    .  69C0 99000000   imul eax,eax,99                        ;  年份与2000的差与1461相乘的结果SAR2
0C096DB5    .  C1FF 02         sar edi,2                              ;  年份前2未与146097相乘的结果SAR2
0C096DB8    .  C1FE 02         sar esi,2
0C096DBB    .  03FB            add edi,ebx                            ;  在EDI中加上日子数据
0C096DBD    .  40              inc eax
0C096DBE    .  40              inc eax
0C096DBF    .  59              pop ecx
0C096DC0    .  99              cdq
0C096DC1    .  F7F9            idiv ecx
0C096DC3    .  03FE            add edi,esi                            ;  再相加
0C096DC5    .  8D8438 1F431A00 lea eax,dword ptr ds:[eax+edi+1A431F]  ;  把得到数据再加上1A431F(16进制)最后结果
0C096DCC    .  3D 1F431A00     cmp eax,1A431F
0C096DD1    .  8945 08         mov dword ptr ss:[ebp+8],eax
0C096DD4    .  7C 76           jl short VFP6R.0C096E4C
0C096DD6    .  3D 2CFE5100     cmp eax,51FE2C
0C096DDB    .  7F 6F           jg short VFP6R.0C096E4C
0C096DDD    .  8B75 FC         mov esi,dword ptr ss:[ebp-4]
0C096DE0    .  DB45 08         fild dword ptr ss:[ebp+8]              ;  装入整数到ST0
0C096DE3    .  8D46 FF         lea eax,dword ptr ds:[esi-1]           ;  Switch (cases 1..C)
0C096DE6    .  83F8 0B         cmp eax,0B
0C096DE9    .  DD55 E8         fst qword ptr ss:[ebp-18]              ;  把数据储存在EBP-18
0C096DEC    .  0F87 3F8F0600   ja VFP6R.0C0FFD31
0C096DF2    .  FF2485 546E090C jmp dword ptr ds:[eax*4+C096E54]
0C096DF9    >  83C1 09         add ecx,9
0C096DFC    .  4E              dec esi
0C096DFD    .^ EB 91           jmp short VFP6R.0C096D90
0C096DFF    >  83FB 1D         cmp ebx,1D                             ;  Case 2 of switch 0C096DE3
0C096E02    .  7C 41           jl short VFP6R.0C096E45
0C096E04    .  8D45 F0         lea eax,dword ptr ss:[ebp-10]
0C096E07    .  8D4D 08         lea ecx,dword ptr ss:[ebp+8]
0C096E0A    .  50              push eax
0C096E0B    .  8D45 F4         lea eax,dword ptr ss:[ebp-C]
0C096E0E    .  50              push eax
0C096E0F    .  51              push ecx
0C096E10    .  D9C0            fld st
0C096E12    .  51              push ecx
0C096E13    .  8D55 FC         lea edx,dword ptr ss:[ebp-4]
0C096E16    .  DD1C24          fstp qword ptr ss:[esp]
0C096E19    .  DDD8            fstp st
0C096E1B    .  E8 3E73F7FF     call VFP6R.0C00E15E
0C096E20    .  3B75 08         cmp esi,dword ptr ss:[ebp+8]
0C096E23    .  75 27           jnz short VFP6R.0C096E4C
0C096E25    .  3B5D FC         cmp ebx,dword ptr ss:[ebp-4]
0C096E28    .  75 22           jnz short VFP6R.0C096E4C
0C096E2A    .  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0C096E2D    .  3B45 F4         cmp eax,dword ptr ss:[ebp-C]
0C096E30    .  75 1A           jnz short VFP6R.0C096E4C
0C096E32    .  DD45 E8         fld qword ptr ss:[ebp-18]
0C096E35    .  EB 0E           jmp short VFP6R.0C096E45
0C096E37    >  83FB 1E         cmp ebx,1E                             ;  Cases 4,6,9,B of switch 0C096DE3
0C096E3A    .  EB 03           jmp short VFP6R.0C096E3F
0C096E3C    >  83FB 1F         cmp ebx,1F                             ;  Cases 1,3,5,7,8,A,C of switch 0C096DE3
0C096E3F    >  0F8F EC8E0600   jg VFP6R.0C0FFD31
0C096E45    >  5F              pop edi
0C096E46    .  5E              pop esi
0C096E47    .  5B              pop ebx
0C096E48    .  C9              leave
0C096E49    .  C2 0400         retn 4
……………………………………………………………………………………………………………………
来到这里    这里要循环好几次每次取执行的地址是不一样的。其中第3、5、6次是最重要的,
第3次得到软件的安装时间并用安装时间也计算出一个数据,第5次把计算好的数据加上60,
第6次,把安装时间加60的数据与用当前时间计算出来的数据比较,这里最关键
……………………………………………………………………………………………………………………
0C001429    > /3D 00010000     cmp eax,100
0C00142E    . |0F87 4F9F0D00   ja VFP6R.0C0DB383
0C001434    . |FF1485 E0DA2E0C call dword ptr ds:[eax*4+C2EDAE0]      ;  得到的数据(从01101464)乘以4加上C2EDAE0取值要F7
0C00143B    > |8B0D 0CE02F0C   mov ecx,dword ptr ds:[C2FE00C]
0C001441    . |33C0            xor eax,eax
0C001443    . |8A01            mov al,byte ptr ds:[ecx]               ;  01101464开始取数据
0C001445    . |41              inc ecx                                ;  指向下一个
0C001446    . |3D FD000000     cmp eax,0FD                            ;  与FD比较
0C00144B    . |890D 0CE02F0C   mov dword ptr ds:[C2FE00C],ecx
0C001451    .^\75 D6           jnz short VFP6R.0C001429

……………………………………………………………………………………………………………………
第3次
……………………………………………………………………………………………………………………
0C040FE6    .  81EC 04010000   sub esp,104
0C040FEC    .  56              push esi
0C040FED    .  E8 743CFCFF     call VFP6R.0C004C66
0C040FF2    .  8BF0            mov esi,eax
0C040FF4    .  803E 30         cmp byte ptr ds:[esi],30
0C040FF7    .  0F84 14860900   je VFP6R.0C0D9611
0C040FFD    .  8BCE            mov ecx,esi
0C040FFF    .  E8 8B320600     call VFP6R.0C0A428F
0C041004    .  8BD6            mov edx,esi
0C041006    .  8D4C24 08       lea ecx,dword ptr ss:[esp+8]
0C04100A    .  E8 F56E0500     call VFP6R.0C097F04                    ;  得到了安装时间
0C04100F    .  8D4424 04       lea eax,dword ptr ss:[esp+4]
0C041013    .  8D4C24 08       lea ecx,dword ptr ss:[esp+8]           ;  得到安装时间
0C041017    .  50              push eax
0C041018    .  A1 10E02F0C     mov eax,dword ptr ds:[C2FE010]
0C04101D    .  51              push ecx
0C04101E    .  8D56 10         lea edx,dword ptr ds:[esi+10]
0C041021    .  8B08            mov ecx,dword ptr ds:[eax]
0C041023    .  81C1 FC000000   add ecx,0FC
0C041029    .  E8 0B000000     call VFP6R.0C041039                    ;  关键进入,用得到安装时间计算出数据

…………………………………………………………………………………………………………………………
0C041029    .  E8 0B000000     call VFP6R.0C041039                    ;  关键进入,用得到安装时间计算出数据
经分析安装时间放在E:\WINDOWS\system32\win32.bin中
…………………………………………………………………………………………………………………………
0C041039    $  55              push ebp
0C04103A    .  8BEC            mov ebp,esp
0C04103C    .  51              push ecx
0C04103D    .  51              push ecx
0C04103E    .  53              push ebx
0C04103F    .  8B5D 0C         mov ebx,dword ptr ss:[ebp+C]
0C041042    .  56              push esi
0C041043    .  8B75 08         mov esi,dword ptr ss:[ebp+8]
0C041046    .  57              push edi
0C041047    .  8BFA            mov edi,edx
0C041049    .  D9EE            fldz
0C04104B    .  53              push ebx
0C04104C    .  56              push esi
0C04104D    .  DD1F            fstp qword ptr ds:[edi]
0C04104F    .  8D55 F8         lea edx,dword ptr ss:[ebp-8]
0C041052    .  E8 2B000000     call VFP6R.0C041082                    ;  计算安装软件的日期转换的结果存入0012F848
0C041057    .  03F0            add esi,eax
0C041059    >  803E 20         cmp byte ptr ds:[esi],20
0C04105C    .  0F84 C7E90B00   je VFP6R.0C0FFA29
0C041062    .  803E 00         cmp byte ptr ds:[esi],0
0C041065    .  0F85 C4E90B00   jnz VFP6R.0C0FFA2F
0C04106B    .  85C0            test eax,eax
0C04106D    .  0F84 CBE90B00   je VFP6R.0C0FFA3E
0C041073    .  DD45 F8         fld qword ptr ss:[ebp-8]               ;  装入安装时间计算的数据到STO(上面的结果)
0C041076    .  6A 01           push 1
0C041078    .  DD1F            fstp qword ptr ds:[edi]                ;  保存结果到0C2FE25C
0C04107A    .  58              pop eax
0C04107B    >  5F              pop edi
0C04107C    .  5E              pop esi
0C04107D    .  5B              pop ebx
0C04107E    .  C9              leave
0C04107F    .  C2 0800         retn 8

……………………………………………………………………………………………………
0C041082    $  55              push ebp
0C041083    .  8BEC            mov ebp,esp
0C041085    .  83EC 3C         sub esp,3C
0C041088    .  8B45 08         mov eax,dword ptr ss:[ebp+8]
0C04108B    .  53              push ebx
0C04108C    .  56              push esi
0C04108D    .  8BF1            mov esi,ecx
0C04108F    .  D9EE            fldz
0C041091    .  33DB            xor ebx,ebx
0C041093    .  57              push edi
0C041094    .  DD1A            fstp qword ptr ds:[edx]
0C041096    .  8955 C8         mov dword ptr ss:[ebp-38],edx
0C041099    .  8975 F0         mov dword ptr ss:[ebp-10],esi
0C04109C    .  8945 C4         mov dword ptr ss:[ebp-3C],eax
0C04109F    .  895D F8         mov dword ptr ss:[ebp-8],ebx
0C0410A2    >  8038 20         cmp byte ptr ds:[eax],20
0C0410A5    .  0F84 9AE90B00   je VFP6R.0C0FFA45
0C0410AB    .  33C9            xor ecx,ecx
0C0410AD    .  8038 5E         cmp byte ptr ds:[eax],5E
0C0410B0    .  0F94C1          sete cl
0C0410B3    .  3BCB            cmp ecx,ebx
0C0410B5    .  894D F4         mov dword ptr ss:[ebp-C],ecx
0C0410B8    .  0F85 90E90B00   jnz VFP6R.0C0FFA4E
0C0410BE    >  8D45 D0         lea eax,dword ptr ss:[ebp-30]
0C0410C1    .  8D55 DC         lea edx,dword ptr ss:[ebp-24]
0C0410C4    .  50              push eax
0C0410C5    .  8D4D 08         lea ecx,dword ptr ss:[ebp+8]
0C0410C8    .  895D E0         mov dword ptr ss:[ebp-20],ebx
0C0410CB    .  895D D4         mov dword ptr ss:[ebp-2C],ebx
0C0410CE    .  895D D8         mov dword ptr ss:[ebp-28],ebx
0C0410D1    .  895D DC         mov dword ptr ss:[ebp-24],ebx
0C0410D4    .  895D E4         mov dword ptr ss:[ebp-1C],ebx
0C0410D7    .  895D CC         mov dword ptr ss:[ebp-34],ebx
0C0410DA    .  895D D0         mov dword ptr ss:[ebp-30],ebx
0C0410DD    .  E8 17010000     call VFP6R.0C0411F9                    ;  计算年份的16进制数
0C0410E2    .  8945 EC         mov dword ptr ss:[ebp-14],eax          ;  放入EAX中
0C0410E5    .  8B45 08         mov eax,dword ptr ss:[ebp+8]
0C0410E8    .  8A00            mov al,byte ptr ds:[eax]
0C0410EA    .  3C 2F           cmp al,2F
0C0410EC    .  0F85 65E90B00   jnz VFP6R.0C0FFA57
0C0410F2    >  FF45 08         inc dword ptr ss:[ebp+8]
0C0410F5    >  8D45 CC         lea eax,dword ptr ss:[ebp-34]
0C0410F8    .  8D55 D8         lea edx,dword ptr ss:[ebp-28]
0C0410FB    .  50              push eax
0C0410FC    .  8D4D 08         lea ecx,dword ptr ss:[ebp+8]
0C0410FF    .  E8 F5000000     call VFP6R.0C0411F9                    ;  这里准备计算月份
0C041104    .  8945 E8         mov dword ptr ss:[ebp-18],eax
0C041107    .  8B45 08         mov eax,dword ptr ss:[ebp+8]
0C04110A    .  8A00            mov al,byte ptr ds:[eax]
0C04110C    .  3C 2F           cmp al,2F
0C04110E    .  0F85 7EE90B00   jnz VFP6R.0C0FFA92
0C041114    >  FF45 08         inc dword ptr ss:[ebp+8]
0C041117    >  8D45 E4         lea eax,dword ptr ss:[ebp-1C]
0C04111A    .  8D55 D4         lea edx,dword ptr ss:[ebp-2C]
0C04111D    .  50              push eax
0C04111E    .  8D4D 08         lea ecx,dword ptr ss:[ebp+8]
0C041121    .  E8 D3000000     call VFP6R.0C0411F9                    ;  计算日期的16进制
0C041126    .  8B75 DC         mov esi,dword ptr ss:[ebp-24]
0C041129    .  8B7D D8         mov edi,dword ptr ss:[ebp-28]
0C04112C    .  8B55 D4         mov edx,dword ptr ss:[ebp-2C]
0C04112F    .  3BF3            cmp esi,ebx
0C041131    .  8945 E0         mov dword ptr ss:[ebp-20],eax          ;  储存
0C041134    .  0F84 90E90B00   je VFP6R.0C0FFACA
0C04113A    >  395D F4         cmp dword ptr ss:[ebp-C],ebx
0C04113D    .  0F85 A4E90B00   jnz VFP6R.0C0FFAE7
0C041143    .  8B4D F0         mov ecx,dword ptr ss:[ebp-10]
0C041146    .  8A49 14         mov cl,byte ptr ds:[ecx+14]
0C041149    >  0FB6C9          movzx ecx,cl
0C04114C    .  2BCB            sub ecx,ebx
0C04114E    .  0F85 9AE90B00   jnz VFP6R.0C0FFAEE
0C041154    .  3BF3            cmp esi,ebx
0C041156    .  0F84 8AEA0B00   je VFP6R.0C0FFBE6
0C04115C    .  3BFB            cmp edi,ebx
0C04115E    .  0F84 82EA0B00   je VFP6R.0C0FFBE6
0C041164    .  8B7D EC         mov edi,dword ptr ss:[ebp-14]
0C041167    .  8B5D E8         mov ebx,dword ptr ss:[ebp-18]
0C04116A    >  85D2            test edx,edx
0C04116C    .  0F84 CAE90B00   je VFP6R.0C0FFB3C
0C041172    .  8945 FC         mov dword ptr ss:[ebp-4],eax
0C041175    >  8B4D E4         mov ecx,dword ptr ss:[ebp-1C]
0C041178    >  837D F4 00      cmp dword ptr ss:[ebp-C],0
0C04117C    .  0F85 D1E90B00   jnz VFP6R.0C0FFB53
0C041182    >  C745 F8 0100000>mov dword ptr ss:[ebp-8],1
0C041189    >  837D FC FF      cmp dword ptr ss:[ebp-4],-1
0C04118D    .  6A 03           push 3
0C04118F    .  5E              pop esi
0C041190    .  0F84 CBE90B00   je VFP6R.0C0FFB61
0C041196    .  837D F4 00      cmp dword ptr ss:[ebp-C],0
0C04119A    .  8B45 F0         mov eax,dword ptr ss:[ebp-10]
0C04119D    .  75 09           jnz short VFP6R.0C0411A8
0C04119F    .  8338 07         cmp dword ptr ds:[eax],7
0C0411A2    .  0F84 D4E90B00   je VFP6R.0C0FFB7C
0C0411A8    >  837D FC 64      cmp dword ptr ss:[ebp-4],64
0C0411AC    .  0F8C EAE90B00   jl VFP6R.0C0FFB9C
0C0411B2    >  837D FC 00      cmp dword ptr ss:[ebp-4],0
0C0411B6    .  0F84 09EA0B00   je VFP6R.0C0FFBC5
0C0411BC    >  FF75 FC         push dword ptr ss:[ebp-4]              ;  压入年份的16进制
0C0411BF    .  8BD3            mov edx,ebx                            ;  日期
0C0411C1    .  8BCF            mov ecx,edi                            ;  月份
0C0411C3    .  E8 A35B0500     call VFP6R.0C096D6B                    ;  把软件安装时的年、月、日重新以某种方式相加组合
0C0411C8    .  8B45 C8         mov eax,dword ptr ss:[ebp-38]
0C0411CB    .  D9C0            fld st
0C0411CD    .  DD18            fstp qword ptr ds:[eax]                ;  储存入0012F848
0C0411CF    .  DC1D 10E12E0C   fcomp qword ptr ds:[C2EE110]
0C0411D5    .  DFE0            fstsw ax

………………………………………………………………………………………………………………
第5次
………………………………………………………………………………
0C0D913D    .  DD46 10         fld qword ptr ds:[esi+10]              ;  得到安装日期计算后的值; Case 4449 of switch 0C09C66F
0C0D9140    .  DC1D 78142F0C   fcomp qword ptr ds:[C2F1478]           ;  与0比较
0C0D9146    .  DFE0            fstsw ax
0C0D9148    .  F6C4 40         test ah,40
0C0D914B    .^ 0F85 BD35FCFF   jnz VFP6R.0C09C70E
0C0D9151    .  DB47 0C         fild dword ptr ds:[edi+C]              ;  装入60
0C0D9154    .  DC46 10         fadd qword ptr ds:[esi+10]             ;  安装日期计算后的值+60(就是不能超过60天使用)
0C0D9157    .  DD5E 10         fstp qword ptr ds:[esi+10]             ;  存入原来地方
0C0D915A    .^ E9 AF35FCFF     jmp VFP6R.0C09C70E

……………………………………………………………………………………………………………………
第6次
…………………………………………………………………………………………………………-……
0C096EE6    .  51              push ecx
0C096EE7    .  56              push esi
0C096EE8    .  8B35 00E22F0C   mov esi,dword ptr ds:[C2FE200]         ;  VFP6R.0C2FE220
0C096EEE    .  83EE 2C         sub esi,2C
0C096EF1    .  8D4424 04       lea eax,dword ptr ss:[esp+4]
0C096EF5    .  50              push eax
0C096EF6    .  8BCE            mov ecx,esi
0C096EF8    .  8D56 2C         lea edx,dword ptr ds:[esi+2C]
0C096EFB    .  8935 00E22F0C   mov dword ptr ds:[C2FE200],esi
0C096F01    .  C74424 08 00000>mov dword ptr ss:[esp+8],0
0C096F09    .  E8 44960100     call VFP6R.0C0B0552
0C096F0E    .  83F8 FF         cmp eax,-1                                        关键点!
0C096F11       74 16           je short VFP6R.0C096F29
0C096F13    .  8B4424 04       mov eax,dword ptr ss:[esp+4]
0C096F17    .  85C0            test eax,eax
0C096F19    .  0F85 2E160400   jnz VFP6R.0C0D854D
0C096F1F    .  8BCE            mov ecx,esi

………………………………………………………………………………………………
0C0B0639    . /0F8C 58010000   jl VFP6R.0C0B0797
0C0B063F    > |DD47 10         fld qword ptr ds:[edi+10]              ;  装入了这个可是我运行时的日期计算出来的值啊
0C0B0642    . |DC23            fsub qword ptr ds:[ebx]                ;  减去安装软件日期计算出来并加上60的值
0C0B0644    . |8B7F 08         mov edi,dword ptr ds:[edi+8]
0C0B0647    . |8B76 08         mov esi,dword ptr ds:[esi+8]
0C0B064A    . |3BFE            cmp edi,esi
0C0B064C    . |8BD7            mov edx,edi
0C0B064E    . |DD5C24 10       fstp qword ptr ss:[esp+10]             ;  储存在0012F948中
0C0B0652    . |77 02           ja short VFP6R.0C0B0656                ;  不跳
0C0B0654    . |8BD6            mov edx,esi
0C0B0656    > |8D4C24 10       lea ecx,dword ptr ss:[esp+10]
0C0B065A    . |E8 EB61FEFF     call VFP6R.0C09684A
0C0B065F    . |85C0            test eax,eax
0C0B0661    . |0F85 3F010000   jnz VFP6R.0C0B07A6                     ;  不跳
0C0B0667    . |8D4C24 10       lea ecx,dword ptr ss:[esp+10]
0C0B066B    . |E8 C161FEFF     call VFP6R.0C096831

…………………………………………………………………………………………………………
0C096831   /$  66:8B41 06      mov ax,word ptr ds:[ecx+6]
0C096835   |.  66:85C0         test ax,ax
0C096838   |.  74 0D           je short VFP6R.0C096847
0C09683A   |.  66:25 0080      and ax,8000
0C09683E   |.  66:F7D8         neg ax
0C096841   |.  1BC0            sbb eax,eax
0C096843   |.  24 FE           and al,0FE
0C096845   |.  40              inc eax
0C096846   |.  C3              retn

…………………………………………………………………………………………………………………………………………
用相减的天数,进行上面的计算,结果必须为FFFFFFFF。
…………………………………………………………………………………………………………………………………………
返回到关键点
……………………………………………………………………………………………………………………

0C096F0E    .  83F8 FF         cmp eax,-1                          此时EAX必须为FFFFFFFF,如果不是说明已经超过了期限
0C096F11       74 16           je short VFP6R.0C096F29              所以此处必须跳!!改为JMP即可
0C096F13    .  8B4424 04       mov eax,dword ptr ss:[esp+4]
0C096F17    .  85C0            test eax,eax
0C096F19    .  0F85 2E160400   jnz VFP6R.0C0D854D
0C096F1F    .  8BCE            mov ecx,esi
……………………………………………………………………………………………………………………………………………………………………
修改:
将0C096F11       74 16     改为EB16        完美爆破版
保存在VFP6R.DLL

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

收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这样暴破会影响软件的功能,破解释库会引起里面时间计算函数失效。
向作者推销下FoxLock了。。。
2005-3-14 10:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 Aming 发布
这样暴破会影响软件的功能,破解释库会引起里面时间计算函数失效。
向作者推销下FoxLock了。。。


PB软件假如爆破PBVM80.DLL的话是否也会引起函数失效?
2005-3-14 10:23
0
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
最初由 Aming 发布
这样暴破会影响软件的功能,破解释库会引起里面时间计算函数失效。
向作者推销下FoxLock了。。。


一直用着呢,没有问题的.
2005-3-14 10:41
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
完美爆破版?保存在VFP6R.DLL?
要这样改VFP6R.DLL就很危险的!
因为VFP6R.DLL本身跟加密无关!而你改了它,必然导致程序可能运算错误,即使程序没提示错误,也可能是结果错误!
要改VFP6R.DLL,必须也改exe的加密!否则可能乱套~
2005-3-14 17:07
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
破解也不用那么麻烦!
那个作者真是菜鸟!
vfp程序好像没有加壳!
俺花了1分钟看了一下它的主程序prg,发现只要删除C:\WINDOWS\system32\WIN32.BIN 即可重新开始计时!
反正等到过期了的时候,你只要删除C:\WINDOWS\system32\WIN32.BIN文件即可!不用改VFP6R.DLL,那样破解很危险的!
2005-3-14 17:28
0
雪    币: 3697
活跃值: (4252)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
7
最初由 Aming 发布
这样暴破会影响软件的功能,破解释库会引起里面时间计算函数失效。
向作者推销下FoxLock了。。。


强烈BS 啊,大鸟真LM啊

要是要注册的话,反了写个注册机完了。
2005-3-14 17:34
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
乱搞,这样都算爆破的话,还需要反编译VF工具干嘛。
2005-3-14 19:43
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 鸡蛋壳 发布
乱搞,这样都算爆破的话,还需要反编译VF工具干嘛。


蛋壳很会教训新人哈  
2005-3-14 20:21
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实乱搞!破解时,VFPxR.DLL是不能乱改的!
2005-3-14 22:12
0
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
11
最初由 veryman 发布
完美爆破版?保存在VFP6R.DLL?
要这样改VFP6R.DLL就很危险的!
因为VFP6R.DLL本身跟加密无关!而你改了它,必然导致程序可能运算错误,即使程序没提示错误,也可能是结果错误!
要改VFP6R.DLL,必须也改exe的加密!否则可能乱套~


一开始我也这么认为的,最气人的是,我使用了一个月(暂时)没问题阿,这样我才敢发表的,也可能是暂时的,又把全部功能全试过了一遍,正常!不知还有什么,大家帮忙试试。谢,正在尝试分析注册码。
2005-3-15 08:58
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 liyangsj 发布



一开始我也这么认为的,最气人的是,我使用了一个月(暂时)没问题阿,这样我才敢发表的,也可能是暂时的,又把全部功能全试过了一遍,正常!不知还有什么,大家帮忙试试。谢,正在尝试分析注册码。

这样没有问题
2005-3-15 09:07
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
13
这样的方法太危险,万一有别的程序也用到这个系统dll怎么办?除非系统就专门运行这个vfp程序
2005-3-15 10:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xhm
14
你说的太深奥 我是菜鸟
2005-3-15 10:31
0
雪    币: 239
活跃值: (220)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
15
最初由 Aming 发布
这样暴破会影响软件的功能,破解释库会引起里面时间计算函数失效。
向作者推销下FoxLock了。。。

难的一见呀!难得一见!!!
2005-3-15 16:30
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最初由 liyangsj 发布



一开始我也这么认为的,最气人的是,我使用了一个月(暂时)没问题阿,这样我才敢发表的,也可能是暂时的,又把全部功能全试过了一遍,正常!不知还有什么,大家帮忙试试。谢,正在尝试分析注册码。

之所以感觉“正常”,是可能他没有用到有关被你修改跳转的函数,或者你还没有发现错误之处。
不要试了,没人有时间!
跟你讲了,删掉那个假dll文件即可完美破解了(嫌麻烦的话,可以自己写个小load.exe:每次运行load.exe时先删除那个记录时间的假dll文件,然后再调用主程序即可)!

DELPHI部分代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
  SysPath: array [0..255] of char;
  sFile,TempPath: String;
begin
  GetSystemDirectory(SysPath,256);
  TempPath:=StrPas(SysPath);
  sFile:=TempPath+'\WIN32.BIN';
  if FileExists(sFile) then DeleteFile(sFile);
  ShellExecute(handle,'open','.\vfp编译的主程序.exe',nil,nil,SW_SHOW);
end;
2005-3-16 23:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这程序没加密呀。你反编后改改主程序就OK了,何必这么累。
2005-3-17 09:56
0
雪    币: 107
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
其实这个程序很容易反出来源代码的呀,

强烈BS AMING这个小家伙,天天就知道卖他的FOXLOCK
2005-3-17 15:46
0
雪    币: 201
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
已经注册成功,可惜不能上传图片
2005-3-17 16:41
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
最初由 xy2000 发布
其实这个程序很容易反出来源代码的呀,

强烈BS AMING这个小家伙,天天就知道卖他的FOXLOCK

好像跟aming没关系吧?
因为这个程序没有用foxlock加密,呵呵
2005-3-17 20:21
0
游客
登录 | 注册 方可回帖
返回
//