首页
社区
课程
招聘
外贸软件Easyboos的算法分析(凑热闹)
发表于: 2005-5-20 19:54 8318

外贸软件Easyboos的算法分析(凑热闹)

2005-5-20 19:54
8318

破解作者:xsy3660
软件介绍:EasyBoss是中国第一套专为中小型及个人外贸企业量身打造的外贸管理软件,对外贸商务流程提供全面而实用的支持。
    北京易商海泰克科技有限公司,携20多年的外贸行业信息化解决方案的经验,全国首家推出针对中小型及个人外贸企业的外贸业务管理软件――EasyBoss外贸业务管理软件,权威使用的外经贸商务流程知道
和实务功能,让您从容应对外贸业务中的各种问题,轻松玩转您的个人外贸商务之旅。
    EasyBoss以其设计优秀、体贴用户、使用方便,提供全面而强大的外贸业务处理功能,具有很高的运行效率等特点,赢得了广大用户的青睐。
    2004年10月,在广交会活动期间,更是得到了用户的一致好评。
    EasyBoss是北京易商海泰克科技有限公司推出的“让商务活动更容易”外贸系列软件之一,通过最具权威的软件评测中心评测。
破解工具:ODFLY修改版
破解过程:pied查看,无壳。OD载入后,查找字符串,找到“注册成功”等字符。
0088BB86     8B10          mov edx,dword ptr ds:[eax]
0088BB88     FF92 EC000000 call dword ptr ds:[edx+EC]
0088BB8E     48            dec eax
0088BB8F     75 4B         jnz short ftrade.0088BBDC
0088BB91     E8 2ACCD5FF   call ftrade.005E87C0
0088BB96     84C0          test al,al
0088BB98     75 09         jnz short ftrade.0088BBA3
0088BB9A     E8 65CDD5FF   call ftrade.005E8904//关键call,进入
0088BB9F     84C0          test al,al
0088BBA1     74 21         je short ftrade.0088BBC4//失败跳走
0088BBA3     6A 40         push 40
0088BBA5     B9 E8BB8800   mov ecx,ftrade.0088BBE8
0088BBAA     BA F0BB8800   mov edx,ftrade.0088BBF0  //注册成功!上看看
0088BBAF     A1 40B18900   mov eax,dword ptr ds:[89B140]
0088BBB4     8B00          mov eax,dword ptr ds:[eax]

005E8904     55            push ebp
005E8905     8BEC          mov ebp,esp
005E8907     B9 07000000   mov ecx,7
005E890C     6A 00         push 0
005E890E     6A 00         push 0
005E8910     49            dec ecx
    ..........      ..........
005E8AAD     8BC6          mov eax,esi
005E8AAF     E8 2CC5FFFF   call ftrade.005E4FE0
005E8AB4     8B55 CC       mov edx,dword ptr ss:[ebp-34]
005E8AB7     58            pop eax
005E8AB8     E8 23C5E1FF   call ftrade.00404FE0
005E8ABD     0F94C3        sete bl
005E8AC0     EB 33         jmp short ftrade.005E8AF5
005E8AC2     8D4D C8       lea ecx,dword ptr ss:[ebp-38]
005E8AC5     BA 408B5E00   mov edx,ftrade.005E8B40        ; ASCII "SERVER"
005E8ACA     8B45 FC       mov eax,dword ptr ss:[ebp-4]   ; 假码,应要30位
005E8ACD     E8 F2190000   call ftrade.005EA4C4           ; 取出假码中倒数第6位前的字符
005E8AD2     8B45 C8       mov eax,dword ptr ss:[ebp-38]
005E8AD5     50            push eax
005E8AD6     8D45 C4       lea eax,dword ptr ss:[ebp-3C]
005E8AD9     50            push eax
005E8ADA     8B4D F8       mov ecx,dword ptr ss:[ebp-8]   ; 机器码
005E8ADD     BA BC020000   mov edx,2BC
005E8AE2     8BC6          mov eax,esi
005E8AE4     E8 F7C4FFFF   call ftrade.005E4FE0           ; 关键,进入
005E8AE9     8B55 C4       mov edx,dword ptr ss:[ebp-3C]
005E8AEC     58            pop eax
005E8AED     E8 EEC4E1FF   call ftrade.00404FE0           ; 比较的地方
005E8AF2     0F94C3        sete bl                        ; 结果是真或假,若假码是30位且前24位与串D等则为真
005E8AF5     8BC6          mov eax,esi
005E8AF7     E8 ACB1E1FF   call ftrade.00403CA8
005E8AFC     33C0          xor eax,eax
005E8AFE     5A            pop edx
005E8AFF     59            pop ecx
005E8B00     59            pop ecx
005E8B01     64:8910       mov dword ptr fs:[eax],edx
005E8B04     68 1E8B5E00   push ftrade.005E8B1E
005E8B09     8D45 C4       lea eax,dword ptr ss:[ebp-3C]
005E8B0C     BA 0F000000   mov edx,0F
005E8B11     E8 D2C0E1FF   call ftrade.00404BE8
005E8B16     C3            retn

----------------005E8AE4     E8 F7C4FFFF   call ftrade.005E4FE0------------------

005E4FE0     55            push ebp
005E4FE1     8BEC          mov ebp,esp
005E4FE3     6A 00         push 0
     ……              ……

005E5005     55                push ebp
005E5006     68 DA505E00       push ftrade.005E50DA
005E500B     64:FF30           push dword ptr fs:[eax]
005E500E     64:8920           mov dword ptr fs:[eax],esp
005E5011     8D4D F0           lea ecx,dword ptr ss:[ebp-10]
005E5014     8B55 F8           mov edx,dword ptr ss:[ebp-8]
005E5017     8BC3              mov eax,ebx
005E5019     E8 32FCFFFF       call ftrade.005E4C50               ; 机器码运算,得串A
005E501E     8B45 F0           mov eax,dword ptr ss:[ebp-10]
005E5021     E8 6EFEE1FF       call ftrade.00404E94
005E5026     8BF0              mov esi,eax
005E5028     85F6              test esi,esi
005E502A     7E 5F             jle short ftrade.005E508B
005E502C     BB 01000000       mov ebx,1
005E5031     8B45 F0           mov eax,dword ptr ss:[ebp-10]      ; 串A给eax
005E5034     8A5418 FF         mov dl,byte ptr ds:[eax+ebx-1]     ; 串A中的字符依次给bl
005E5038     8BC2              mov eax,edx
005E503A     3C 20             cmp al,20
005E503C     76 49             jbe short ftrade.005E5087
005E503E     3C 7F             cmp al,7F
005E5040     73 45             jnb short ftrade.005E5087
005E5042     33C0              xor eax,eax
005E5044     8AC2              mov al,dl                          ; bl给al
005E5046     8D53 01           lea edx,dword ptr ds:[ebx+1]       ; 循环次数+1
005E5049     33C2              xor eax,edx
005E504B     8B0485 F0638900   mov eax,dword ptr ds:[eax*4+8963F0>; 查表得值
005E5052     0145 F4           add dword ptr ss:[ebp-C],eax       ; ebp-c的值加上eax得到串B,ebp-c的初值为0
005E5055     8BC3              mov eax,ebx
005E5057     25 03000080       and eax,80000003                   ; 此行用于确定005e5065是否跳
005E505C     79 05             jns short ftrade.005E5063
005E505E     48                dec eax
005E505F     83C8 FC           or eax,FFFFFFFC
005E5062     40                inc eax
005E5063     85C0              test eax,eax
005E5065     75 20             jnz short ftrade.005E5087          ; 每循环4倍次数时不跳
005E5067     8D4D E8           lea ecx,dword ptr ss:[ebp-18]      ; 串C的地址给ecx
005E506A     8B45 F4           mov eax,dword ptr ss:[ebp-C]       ; 串B给eax
005E506D     0345 FC           add eax,dword ptr ss:[ebp-4]       ; eax加上定值2BC
005E5070     33D2              xor edx,edx
005E5072     E8 0157E2FF       call ftrade.0040A778               ; 由串B得串C,进入
005E5077     8B55 E8           mov edx,dword ptr ss:[ebp-18]      ; 串C给EDX
005E507A     8D45 EC           lea eax,dword ptr ss:[ebp-14]      ; 串D的地址给EAX
005E507D     E8 1AFEE1FF       call ftrade.00404E9C               ; 把串D与串C连起来后仍记为串D,串D初值为0
005E5082     33C0              xor eax,eax                        ; EAX清0
005E5084     8945 F4           mov dword ptr ss:[ebp-C],eax       ; [EBP-C]清0
005E5087     43                inc ebx
005E5088     4E                dec esi
005E5089   ^ 75 A6             jnz short ftrade.005E5031
005E508B     837D F4 00        cmp dword ptr ss:[ebp-C],0
005E508F     7E 1B             jle short ftrade.005E50AC
005E5091     8D4D E4           lea ecx,dword ptr ss:[ebp-1C]
005E5094     8B45 F4           mov eax,dword ptr ss:[ebp-C]
005E5097     0345 FC           add eax,dword ptr ss:[ebp-4]
005E509A     33D2              xor edx,edx
005E509C     E8 D756E2FF       call ftrade.0040A778
005E50A1     8B55 E4           mov edx,dword ptr ss:[ebp-1C]
005E50A4     8D45 EC           lea eax,dword ptr ss:[ebp-14]
005E50A7     E8 F0FDE1FF       call ftrade.00404E9C
005E50AC     8B45 08           mov eax,dword ptr ss:[ebp+8]       ; 地址12FC18给EAX
005E50AF     8B55 EC           mov edx,dword ptr ss:[ebp-14]      ; 串D给EDX
005E50B2     E8 61FBE1FF       call ftrade.00404C18               ; 串D放入12FC18
005E50B7     33C0              xor eax,eax
005E50B9     5A                pop edx
005E50BA     59                pop ecx
005E50BB     59                pop ecx
005E50BC     64:8910           mov dword ptr fs:[eax],edx
005E50BF     68 E1505E00       push ftrade.005E50E1
005E50C4     8D45 E4           lea eax,dword ptr ss:[ebp-1C]
005E50C7     BA 04000000       mov edx,4
005E50CC     E8 17FBE1FF       call ftrade.00404BE8
005E50D1     8D45 F8           lea eax,dword ptr ss:[ebp-8]
005E50D4     E8 EBFAE1FF       call ftrade.00404BC4
005E50D9     C3                retn

-----005E5019     E8 32FCFFFF       call ftrade.005E4C50;机器码运算,得串A--------
005E4C50     55             push ebp
005E4C51     8BEC           mov ebp,esp
005E4C53     6A 00          push 0
005E4C55     6A 00          push 0
005E4C57     6A 00          push 0
005E4C59     6A 00          push 0
005E4C5B     53             push ebx
005E4C5C     56             push esi
005E4C5D     57             push edi
005E4C5E     8BF9           mov edi,ecx
005E4C60     8955 FC        mov dword ptr ss:[ebp-4],edx
005E4C63     8B45 FC        mov eax,dword ptr ss:[ebp-4]
005E4C66     E8 1904E2FF    call ftrade.00405084
005E4C6B     33C0           xor eax,eax
005E4C6D     55             push ebp
005E4C6E     68 F54C5E00    push ftrade.005E4CF5
005E4C73     64:FF30        push dword ptr fs:[eax]
005E4C76     64:8920        mov dword ptr fs:[eax],esp
005E4C79     8D55 F4        lea edx,dword ptr ss:[ebp-C]
005E4C7C     8B45 FC        mov eax,dword ptr ss:[ebp-4]
005E4C7F     E8 D053E2FF    call ftrade.0040A054
005E4C84     8B55 F4        mov edx,dword ptr ss:[ebp-C]
005E4C87     8D45 FC        lea eax,dword ptr ss:[ebp-4]
005E4C8A     E8 CDFFE1FF    call ftrade.00404C5C
005E4C8F     8B45 FC        mov eax,dword ptr ss:[ebp-4]
005E4C92     E8 FD01E2FF    call ftrade.00404E94
005E4C97     8BF0           mov esi,eax
005E4C99     85F6           test esi,esi
005E4C9B     7E 33          jle short ftrade.005E4CD0
005E4C9D     BB 01000000    mov ebx,1
005E4CA2     8BC3           mov eax,ebx                     ; ebx为循环次数
005E4CA4     B9 03000000    mov ecx,3
005E4CA9     99             cdq                             ; EDX清0
005E4CAA     F7F9           idiv ecx
005E4CAC     52             push edx                        ; 余数入栈
005E4CAD     8B45 FC        mov eax,dword ptr ss:[ebp-4]    ; 机器码给eax
005E4CB0     33D2           xor edx,edx
005E4CB2     8A5418 FF      mov dl,byte ptr ds:[eax+ebx-1]  ; 机器码的第i位给dl
005E4CB6     58             pop eax                         ; 弹出余数
005E4CB7     2BD0           sub edx,eax                     ; 机器码第i位减去余数
005E4CB9     8D45 F0        lea eax,dword ptr ss:[ebp-10]
005E4CBC     E8 EB00E2FF    call ftrade.00404DAC
005E4CC1     8B55 F0        mov edx,dword ptr ss:[ebp-10]
005E4CC4     8D45 F8        lea eax,dword ptr ss:[ebp-8]
005E4CC7     E8 D001E2FF    call ftrade.00404E9C            ; 把上面的差值与前i-位所得的差值相连得出一字符串
005E4CCC     43             inc ebx
005E4CCD     4E             dec esi
005E4CCE   ^ 75 D2          jnz short ftrade.005E4CA2
005E4CD0     8BC7           mov eax,edi
005E4CD2     8B55 F8        mov edx,dword ptr ss:[ebp-8]
005E4CD5     E8 3EFFE1FF    call ftrade.00404C18
005E4CDA     33C0           xor eax,eax
005E4CDC     5A             pop edx
005E4CDD     59             pop ecx
005E4CDE     59             pop ecx
005E4CDF     64:8910        mov dword ptr fs:[eax],edx
005E4CE2     68 FC4C5E00    push ftrade.005E4CFC
005E4CE7     8D45 F0        lea eax,dword ptr ss:[ebp-10]
005E4CEA     BA 04000000    mov edx,4
005E4CEF     E8 F4FEE1FF    call ftrade.00404BE8
005E4CF4     C3             retn
005E4CF5   ^ E9 4AF7E1FF    jmp ftrade.00404444
005E4CFA   ^ EB EB          jmp short ftrade.005E4CE7
005E4CFC     5F             pop edi
005E4CFD     5E             pop esi
005E4CFE     5B             pop ebx
005E4CFF     8BE5           mov esp,ebp
005E4D01     5D             pop ebp
005E4D02     C3             retn

-------005E5072     E8 0157E2FF       call ftrade.0040A778 ; 由串B得串C--------

0040A778     83FA 20       cmp edx,20
0040A77B     76 02         jbe short ftrade.0040A77F
0040A77D     31D2          xor edx,edx
0040A77F     56            push esi
0040A780     89E6          mov esi,esp
0040A782     83EC 20       sub esp,20
0040A785     51            push ecx
0040A786     B9 10000000   mov ecx,10
0040A78B     E8 88FEFFFF   call ftrade.0040A618            ; 关键,进入
0040A790     89F2          mov edx,esi
0040A792     58            pop eax
0040A793     E8 1CA5FFFF   call ftrade.00404CB4
0040A798     83C4 20       add esp,20
0040A79B     5E            pop esi
0040A79C     C3            retn

--------------0040A78B     E8 88FEFFFF   call ftrade.0040A618-------------
0040A618     08C9          or cl,cl
0040A61A     75 17         jnz short ftrade.0040A633
0040A61C     09C0          or eax,eax
0040A61E     79 0E         jns short ftrade.0040A62E
0040A620     F7D8          neg eax
0040A622     E8 07000000   call ftrade.0040A62E
0040A627     B0 2D         mov al,2D
0040A629     41            inc ecx
0040A62A     4E            dec esi
0040A62B     8806          mov byte ptr ds:[esi],al
0040A62D     C3            retn
0040A62E     B9 0A000000   mov ecx,0A
0040A633     52            push edx
0040A634     56            push esi
0040A635     31D2          xor edx,edx                     ; 清0
0040A637     F7F1          div ecx                         ; eax除定值十进制数16
0040A639     4E            dec esi
0040A63A     80C2 30       add dl,30                       ; 余数加30
0040A63D     80FA 3A       cmp dl,3A                       ; 是否大于3A(字符:)
0040A640     72 03         jb short ftrade.0040A645
0040A642     80C2 07       add dl,7                        ; 若大于3A,则加7,使之为英文字母
0040A645     8816          mov byte ptr ds:[esi],dl        ; 对应的结果放到[esi]中
0040A647     09C0          or eax,eax
0040A649   ^ 75 EA         jnz short ftrade.0040A635
0040A64B     59            pop ecx
0040A64C     5A            pop edx
0040A64D     29F1          sub ecx,esi
0040A64F     29CA          sub edx,ecx
0040A651     76 10         jbe short ftrade.0040A663
0040A653     01D1          add ecx,edx
0040A655     B0 30         mov al,30
0040A657     29D6          sub esi,edx
0040A659     EB 03         jmp short ftrade.0040A65E
0040A65B     880432        mov byte ptr ds:[edx+esi],al
0040A65E     4A            dec edx
0040A65F   ^ 75 FA         jnz short ftrade.0040A65B
0040A661     8806          mov byte ptr ds:[esi],al
0040A663     C3            retn

-----------005E8AED     E8 EEC4E1FF   call ftrade.00404FE0   ; 比较的地方-------

00404FE0     53            push ebx
00404FE1     56            push esi
00404FE2     57            push edi
00404FE3     89C6          mov esi,eax                     ; 取出的假码
00404FE5     89D7          mov edi,edx                     ; 串D
00404FE7     39D0          cmp eax,edx                     ; 取出的假码位数不能大于串D的位数(24位)
00404FE9     0F84 8F000000 je ftrade.0040507E
00404FEF     85F6          test esi,esi
00404FF1     74 68         je short ftrade.0040505B
00404FF3     85FF          test edi,edi
00404FF5     74 6B         je short ftrade.00405062
00404FF7     8B46 FC       mov eax,dword ptr ds:[esi-4]    ; 取出的假码位数
00404FFA     8B57 FC       mov edx,dword ptr ds:[edi-4]    ; 串D位数
00404FFD     29D0          sub eax,edx
00404FFF     77 02         ja short ftrade.00405003
00405001     01C2          add edx,eax
00405003     52            push edx
00405004     C1EA 02       shr edx,2                       ; 假码位数逻辑右移2位
00405007     74 26         je short ftrade.0040502F
00405009     8B0E          mov ecx,dword ptr ds:[esi]
0040500B     8B1F          mov ebx,dword ptr ds:[edi]
0040500D     39D9          cmp ecx,ebx                     ; 每4位比较,不等则跳走
0040500F     75 58         jnz short ftrade.00405069
00405011     4A            dec edx
00405012     74 15         je short ftrade.00405029
00405014     8B4E 04       mov ecx,dword ptr ds:[esi+4]
00405017     8B5F 04       mov ebx,dword ptr ds:[edi+4]
0040501A     39D9          cmp ecx,ebx                     ; 不等则跳走
0040501C     75 4B         jnz short ftrade.00405069
0040501E     83C6 08       add esi,8
00405021     83C7 08       add edi,8
00405024     4A            dec edx                         ; 循环控制
00405025   ^ 75 E2         jnz short ftrade.00405009
00405027     EB 06         jmp short ftrade.0040502F
00405029     83C6 04       add esi,4
0040502C     83C7 04       add edi,4
0040502F     5A            pop edx
00405030     83E2 03       and edx,3
00405033     74 22         je short ftrade.00405057
00405035     8B0E          mov ecx,dword ptr ds:[esi]      ; 以下是不足4位时的比较
00405037     8B1F          mov ebx,dword ptr ds:[edi]
00405039     38D9          cmp cl,bl
0040503B     75 41         jnz short ftrade.0040507E
0040503D     4A            dec edx
0040503E     74 17         je short ftrade.00405057
00405040     38FD          cmp ch,bh
00405042     75 3A         jnz short ftrade.0040507E
00405044     4A            dec edx
00405045     74 10         je short ftrade.00405057
00405047     81E3 0000FF00 and ebx,0FF0000
0040504D     81E1 0000FF00 and ecx,0FF0000
00405053     39D9          cmp ecx,ebx
00405055     75 27         jnz short ftrade.0040507E
00405057     01C0          add eax,eax                    ; eax是否为0,取出的假码位数等于串D时为0。
00405059     EB 23         jmp short ftrade.0040507E
0040505B     8B57 FC       mov edx,dword ptr ds:[edi-4]
0040505E     29D0          sub eax,edx
00405060     EB 1C         jmp short ftrade.0040507E
00405062     8B46 FC       mov eax,dword ptr ds:[esi-4]
00405065     29D0          sub eax,edx
00405067     EB 15         jmp short ftrade.0040507E
00405069     5A            pop edx
0040506A     38D9          cmp cl,bl
0040506C     75 10         jnz short ftrade.0040507E
0040506E     38FD          cmp ch,bh
00405070     75 0C         jnz short ftrade.0040507E
00405072     C1E9 10       shr ecx,10
00405075     C1EB 10       shr ebx,10
00405078     38D9          cmp cl,bl
0040507A     75 02         jnz short ftrade.0040507E
0040507C     38FD          cmp ch,bh
0040507E     5F            pop edi
0040507F     5E            pop esi
00405080     5B            pop ebx
00405081     C3            retn

小结
1、取假码倒数第6位前的字符
2、机器码经多次运算得一字符串
3、取出的假码与2中的字符串比较,位数相同,且每位相等,则注册成功。
本人的机器码为:1851A212B1A81BBB0124DDF1
注册码:13D217BB1BC0132D55E62D56111111


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

收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
2
凑热闹我也顶
2005-5-20 20:44
0
雪    币: 205
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
弄个注册机看看
2005-5-20 22:09
0
雪    币: 221
活跃值: (137)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
注册机就算了,本人写那东西还不太行。算法不难,你自己写吧。不过这软件粗看了一下,还可以。
2005-5-20 22:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,那我就捡现成的了
2005-5-21 00:26
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 xsy3660 发布
注册机就算了,本人写那东西还不太行。算法不难,你自己写吧。不过这软件粗看了一下,还可以。


支持这种做法,不然过两天注册机就满天飞了

其实注册程序也不难写,还是不写为妙,支持一下共享软件,破文只要写出思路就行了
2005-5-21 20:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好东西顶一下
2005-7-30 16:58
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
我来顶你!
2005-7-30 17:13
0
游客
登录 | 注册 方可回帖
返回
//