首页
社区
课程
招聘
[原创]GeoMap3.5 破解,帮帮偶看看算法^_^
发表于: 2007-11-9 17:10 6421

[原创]GeoMap3.5 破解,帮帮偶看看算法^_^

2007-11-9 17:10
6421
【文章标题】: GeoMap3.5 破解
【文章作者】: sunwayking
【作者邮箱】: sunwayking@163.com
【作者主页】: 685K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6K6N6i4N6F1j5i4V1`.
【作者QQ号】: 410109674
【软件名称】: GeoMap3.5
【软件大小】: Microsoft Visual C++ 6.0
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: Blowfish 算法 and so on
【使用工具】: OD,PEID
【软件介绍】: 地质制图系统
【作者声明】: 只为研究加密解密技术,不为破解而破解!失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  直接切入正题,Blowfish 算法没有研究透,所以采用爆破,呵呵!
  查壳无马甲,直接上OD,下bp GetWindowTextA,F9运行,跳出注册窗口,输入用户名、用户单位、用户注册号(什么?不知道注册号?晕菜~知道注册号就不用破解了^^当然是随便输入了)
  断在
  77D3212B >  6A 0C           push    0C
  77D3212D    68 9021D377     push    77D32190
  77D32132    E8 8964FEFF     call    77D185C0
  77D32137    8B7D 0C         mov     edi, dword ptr [ebp+C]
  77D3213A    33DB            xor     ebx, ebx
  77D3213C    3BFB            cmp     edi, ebx
  77D3213E    0F84 398F0000   je      77D3B07D
  77D32144    395D 10         cmp     dword ptr [ebp+10], ebx
  77D32147    0F84 308F0000   je      77D3B07D
  77D3214D    895D FC         mov     dword ptr [ebp-4], ebx
  77D32150    881F            mov     byte ptr [edi], bl
  77D32152    8B4D 08         mov     ecx, dword ptr [ebp+8]
  77D32155    E8 7663FEFF     call    77D184D0
  
  Ctrl+F9:
  012B116C    8D86 BE000000   lea     eax, dword ptr [esi+BE]
  012B1172    6A 50           push    50
  012B1174    50              push    eax
  012B1175    55              push    ebp
  012B1176    FFD7            call    edi
  012B1178    8D86 0F010000   lea     eax, dword ptr [esi+10F]
  012B117E    6A 32           push    32
  012B1180    50              push    eax
  012B1181    FF7424 18       push    dword ptr [esp+18]
  012B1185    FFD7            call    edi
  012B1187    81C6 42010000   add     esi, 142
  012B118D    6A 32           push    32
  012B118F    56              push    esi
  012B1190    FF7424 1C       push    dword ptr [esp+1C]
  012B1194    FFD7            call    edi
  
  这时看程序领空在RegEncry,这是一个动态链接库文件,位于程序安装目录下的encrypt\注册版
  经过分析,这是个专门负责程序注册的模块,对程序功能没有任何贡献,所以爆破的思路出来的,我们只要不让程序调用这个动态链接库即可*^_^*
  Ctrl+F12重新载入程序,停在程序入口点
  
  004CB755 >/$  55            push    ebp                              ;  程序入口点EP
  004CB756  |.  8BEC          mov     ebp, esp
  004CB758  |.  6A FF         push    -1
  004CB75A  |.  68 58924E00   push    004E9258
  004CB75F  |.  68 C0B84C00   push    <jmp.&MSVCRT._except_handler3>   ;  SE 处理程序安装
  004CB764  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
  004CB76A  |.  50            push    eax
  004CB76B  |.  64:8925 00000>mov     dword ptr fs:[0], esp
  004CB772  |.  83EC 68       sub     esp, 68
  004CB775  |.  53            push    ebx
  004CB776  |.  56            push    esi
  004CB777  |.  57            push    edi
  004CB778  |.  8965 E8       mov     dword ptr [ebp-18], esp
  004CB77B  |.  33DB          xor     ebx, ebx
  004CB77D  |.  895D FC       mov     dword ptr [ebp-4], ebx
  004CB780  |.  6A 02         push    2
  004CB782  |.  FF15 789C4D00 call    dword ptr [<&MSVCRT.__set_app_ty>;  msvcrt.__set_app_type
  004CB788  |.  59            pop     ecx
  004CB789  |.  830D D0725100>or      dword ptr [5172D0], FFFFFFFF
  004CB790  |.  830D D4725100>or      dword ptr [5172D4], FFFFFFFF
  004CB797  |.  FF15 749C4D00 call    dword ptr [<&MSVCRT.__p__fmode>] ;  msvcrt.__p__fmode
  004CB79D  |.  8B0D B0725100 mov     ecx, dword ptr [5172B0]
  004CB7A3  |.  8908          mov     dword ptr [eax], ecx
  004CB7A5  |.  FF15 089D4D00 call    dword ptr [<&MSVCRT.__p__commode>;  msvcrt.__p__commode
  004CB7AB  |.  8B0D AC725100 mov     ecx, dword ptr [5172AC]
  004CB7B1  |.  8908          mov     dword ptr [eax], ecx
  004CB7B3  |.  A1 049D4D00   mov     eax, dword ptr [<&MSVCRT._adjust>
  004CB7B8  |.  8B00          mov     eax, dword ptr [eax]
  004CB7BA  |.  A3 CC725100   mov     dword ptr [5172CC], eax
  004CB7BF  |.  E8 29010000   call    004CB8ED
  004CB7C4  |.  391D C05D5100 cmp     dword ptr [515DC0], ebx
  004CB7CA  |.  75 0C         jnz     short 004CB7D8
  004CB7CC  |.  68 EAB84C00   push    004CB8EA
  004CB7D1  |.  FF15 649C4D00 call    dword ptr [<&MSVCRT.__setusermat>;  msvcrt.__setusermatherr
  004CB7D7  |.  59            pop     ecx
  004CB7D8  |>  E8 FB000000   call    004CB8D8
  004CB7DD  |.  68 08E15000   push    0050E108
  004CB7E2  |.  68 04E15000   push    0050E104
  004CB7E7  |.  E8 E6000000   call    <jmp.&MSVCRT._initterm>
  004CB7EC  |.  A1 A8725100   mov     eax, dword ptr [5172A8]
  004CB7F1  |.  8945 94       mov     dword ptr [ebp-6C], eax
  004CB7F4  |.  8D45 94       lea     eax, dword ptr [ebp-6C]
  004CB7F7  |.  50            push    eax
  004CB7F8  |.  FF35 A4725100 push    dword ptr [5172A4]
  004CB7FE  |.  8D45 9C       lea     eax, dword ptr [ebp-64]
  004CB801  |.  50            push    eax
  004CB802  |.  8D45 90       lea     eax, dword ptr [ebp-70]
  004CB805  |.  50            push    eax
  004CB806  |.  8D45 A0       lea     eax, dword ptr [ebp-60]
  004CB809  |.  50            push    eax
  004CB80A  |.  FF15 5C9C4D00 call    dword ptr [<&MSVCRT.__getmainarg>;  msvcrt.__getmainargs
  004CB810  |.  68 00E15000   push    0050E100
  004CB815  |.  68 00E05000   push    0050E000
  004CB81A  |.  E8 B3000000   call    <jmp.&MSVCRT._initterm>
  004CB81F  |.  83C4 24       add     esp, 24
  004CB822  |.  A1 689C4D00   mov     eax, dword ptr [<&MSVCRT._acmdln>
  004CB827  |.  8B30          mov     esi, dword ptr [eax]
  004CB829  |.  8975 8C       mov     dword ptr [ebp-74], esi
  004CB82C  |.  803E 22       cmp     byte ptr [esi], 22
  004CB82F  |.  75 3A         jnz     short 004CB86B
  004CB831  |>  46            /inc     esi
  004CB832  |.  8975 8C       |mov     dword ptr [ebp-74], esi
  004CB835  |.  8A06          |mov     al, byte ptr [esi]
  004CB837  |.  3AC3          |cmp     al, bl
  004CB839  |.  74 04         |je      short 004CB83F
  004CB83B  |.  3C 22         |cmp     al, 22                          ;  一路F8来到这里
  004CB83D  |.^ 75 F2         \jnz     short 004CB831
  004CB83F  |>  803E 22       cmp     byte ptr [esi], 22               ;  F4下来
  004CB842  |.  75 04         jnz     short 004CB848
  004CB844  |>  46            inc     esi
  004CB845  |.  8975 8C       mov     dword ptr [ebp-74], esi
  004CB848  |>  8A06          mov     al, byte ptr [esi]
  004CB84A  |.  3AC3          cmp     al, bl
  004CB84C  |.  74 04         je      short 004CB852
  004CB84E  |.  3C 20         cmp     al, 20
  004CB850  |.^ 76 F2         jbe     short 004CB844
  004CB852  |>  895D D0       mov     dword ptr [ebp-30], ebx
  004CB855  |.  8D45 A4       lea     eax, dword ptr [ebp-5C]
  004CB858  |.  50            push    eax                              ; /pStartupinfo
  004CB859  |.  FF15 748D4D00 call    dword ptr [<&KERNEL32.GetStartup>; \GetStartupInfoA
  004CB85F  |.  F645 D0 01    test    byte ptr [ebp-30], 1
  004CB863  |.  74 11         je      short 004CB876
  004CB865  |.  0FB745 D4     movzx   eax, word ptr [ebp-2C]
  004CB869  |.  EB 0E         jmp     short 004CB879
  004CB86B  |>  803E 20       /cmp     byte ptr [esi], 20
  004CB86E  |.^ 76 D8         |jbe     short 004CB848
  004CB870  |.  46            |inc     esi
  004CB871  |.  8975 8C       |mov     dword ptr [ebp-74], esi
  004CB874  |.^ EB F5         \jmp     short 004CB86B
  004CB876  |>  6A 0A         push    0A
  004CB878  |.  58            pop     eax
  004CB879  |>  50            push    eax
  004CB87A  |.  56            push    esi
  004CB87B  |.  53            push    ebx
  004CB87C  |.  53            push    ebx                              ; /pModule
  004CB87D  |.  FF15 A88D4D00 call    dword ptr [<&KERNEL32.GetModuleH>; \GetModuleHandleA
  004CB883  |.  50            push    eax
  004CB884  |.  E8 67020000   call    004CBAF0                         ;  F7进来
  
  来到
  
  004CBAF0  /$  FF7424 10     push    dword ptr [esp+10]
  004CBAF4  |.  FF7424 10     push    dword ptr [esp+10]
  004CBAF8  |.  FF7424 10     push    dword ptr [esp+10]
  004CBAFC  |.  FF7424 10     push    dword ptr [esp+10]
  004CBB00  |.  E8 4F000000   call    <jmp.&MFC42.#1576_AfxWinMain>    ;  F7进来
  004CBB05  \.  C2 1000       retn    10
  
  004CBB48   $- FF25 149D4D00 jmp     dword ptr [<&MSVCRT.wcslen>]     ;  msvcrt.wcslen
  004CBB4E   $- FF25 189D4D00 jmp     dword ptr [<&MSVCRT._CxxThrowExc>;  msvcrt._CxxThrowException
  004CBB54   $- FF25 D49B4D00 jmp     dword ptr [<&MFC42.#1576_AfxWinM>;  来到这里,继续F8
  
  73D3CF2B >  8BFF            mov     edi, edi                         ; 来到这里,一路F8
  73D3CF2D    53              push    ebx
  73D3CF2E    56              push    esi
  73D3CF2F    57              push    edi
  73D3CF30    83CB FF         or      ebx, FFFFFFFF
  73D3CF33    E8 CD40FFFF     call    #1175_AfxGetThread
  73D3CF38    8BF0            mov     esi, eax
  73D3CF3A    E8 97B30800     call    #1168_AfxGetModuleState
  73D3CF3F    FF7424 1C       push    dword ptr [esp+1C]
  73D3CF43    8B78 04         mov     edi, dword ptr [eax+4]
  73D3CF46    FF7424 1C       push    dword ptr [esp+1C]
  73D3CF4A    FF7424 1C       push    dword ptr [esp+1C]
  73D3CF4E    FF7424 1C       push    dword ptr [esp+1C]
  73D3CF52    E8 C1CC0800     call    #1575_AfxWinInit
  73D3CF57    85C0            test    eax, eax
  73D3CF59    74 3C           je      short 73D3CF97
  73D3CF5B    85FF            test    edi, edi
  73D3CF5D    74 0E           je      short 73D3CF6D
  73D3CF5F    8B07            mov     eax, dword ptr [edi]
  73D3CF61    8BCF            mov     ecx, edi
  73D3CF63    FF90 8C000000   call    dword ptr [eax+8C]
  73D3CF69    85C0            test    eax, eax
  73D3CF6B    74 2A           je      short 73D3CF97
  73D3CF6D    8B06            mov     eax, dword ptr [esi]
  73D3CF6F    8BCE            mov     ecx, esi
  73D3CF71    FF50 58         call    dword ptr [eax+58]               ; F7进去
  
  004029C9  /.  55            push    ebp                              ;  至此,领空又返回到GeoMap35
  004029CA  |.  8BEC          mov     ebp, esp
  004029CC  |.  6A FF         push    -1
  004029CE  |.  68 97BD4C00   push    004CBD97                         ;  SE 处理程序安装
  004029D3  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
  004029D9  |.  50            push    eax
  004029DA  |.  64:8925 00000>mov     dword ptr fs:[0], esp
  004029E1  |.  81EC 640C0000 sub     esp, 0C64
  004029E7  |.  898D 10F4FFFF mov     dword ptr [ebp-BF0], ecx
  004029ED  |.  8B8D 10F4FFFF mov     ecx, dword ptr [ebp-BF0]
  004029F3  |.  E8 2CFDFFFF   call    00402724
  004029F8  |.  85C0          test    eax, eax
  004029FA  |.  75 07         jnz     short 00402A03
  004029FC  |.  33C0          xor     eax, eax
  004029FE  |.  E9 0E120000   jmp     00403C11
  00402A03  |>  E8 2C790C00   call    <jmp.&MFC42.#1205_AfxOleInit>
  00402A08  |.  85C0          test    eax, eax
  00402A0A  |.  75 12         jnz     short 00402A1E
  00402A0C  |.  6A FF         push    -1
  00402A0E  |.  6A 00         push    0
  00402A10  |.  6A 64         push    64
  00402A12  |.  E8 17790C00   call    <jmp.&MFC42.#1199_AfxMessageBox>
  00402A17  |.  33C0          xor     eax, eax
  00402A19  |.  E9 F3110000   jmp     00403C11
  00402A1E  |>  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402A24  |.  E8 27AE0200   call    0042D850
  00402A29  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
  00402A30  |.  68 FCE15000   push    0050E1FC                         ;  ASCII "GeoMap.Document\VER35"
  00402A35  |.  8D8D 9CF7FFFF lea     ecx, dword ptr [ebp-864]
  00402A3B  |.  E8 68770C00   call    <jmp.&MFC42.#537_CString::CStrin>
  00402A40  |.  C645 FC 01    mov     byte ptr [ebp-4], 1
  00402A44  |.  C785 A4F7FFFF>mov     dword ptr [ebp-85C], 0
  00402A4E  |.  68 14E25000   push    0050E214                         ;  ASCII "GeoMap v3.5x"
  00402A53  |.  8D8D 94F7FFFF lea     ecx, dword ptr [ebp-86C]
  00402A59  |.  E8 4A770C00   call    <jmp.&MFC42.#537_CString::CStrin>
  00402A5E  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402A62  |.  68 24E25000   push    0050E224                         ; /Arg3 = 0050E224 ASCII "User"
  00402A67  |.  68 2CE25000   push    0050E22C                         ; |Arg2 = 0050E22C ASCII "GeoMap.Document\VER35\Info"
  00402A6C  |.  8D85 7CF4FFFF lea     eax, dword ptr [ebp-B84]         ; |
  00402A72  |.  50            push    eax                              ; |Arg1
  00402A73  |.  E8 14F7FFFF   call    0040218C                         ; \GeoMap35.0040218C
  00402A78  |.  8985 0CF4FFFF mov     dword ptr [ebp-BF4], eax
  00402A7E  |.  8B8D 0CF4FFFF mov     ecx, dword ptr [ebp-BF4]
  00402A84  |.  898D 08F4FFFF mov     dword ptr [ebp-BF8], ecx
  00402A8A  |.  C645 FC 03    mov     byte ptr [ebp-4], 3
  00402A8E  |.  8B95 08F4FFFF mov     edx, dword ptr [ebp-BF8]
  00402A94  |.  52            push    edx
  00402A95  |.  8B8D 10F4FFFF mov     ecx, dword ptr [ebp-BF0]
  00402A9B  |.  81C1 24010000 add     ecx, 124
  00402AA1  |.  E8 A4770C00   call    <jmp.&MFC42.#858_CString::operat>
  00402AA6  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402AAA  |.  8D8D 7CF4FFFF lea     ecx, dword ptr [ebp-B84]
  00402AB0  |.  E8 7D770C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402AB5  |.  68 48E25000   push    0050E248                         ; /Arg3 = 0050E248 ASCII "Register"
  00402ABA  |.  68 54E25000   push    0050E254                         ; |Arg2 = 0050E254 ASCII "GeoMap.Document\VER35\Info"
  00402ABF  |.  8D85 78F4FFFF lea     eax, dword ptr [ebp-B88]         ; |
  00402AC5  |.  50            push    eax                              ; |Arg1
  00402AC6  |.  E8 C1F6FFFF   call    0040218C                         ; \GeoMap35.0040218C
  00402ACB  |.  8985 04F4FFFF mov     dword ptr [ebp-BFC], eax
  00402AD1  |.  8B8D 04F4FFFF mov     ecx, dword ptr [ebp-BFC]
  00402AD7  |.  898D 00F4FFFF mov     dword ptr [ebp-C00], ecx
  00402ADD  |.  C645 FC 04    mov     byte ptr [ebp-4], 4
  00402AE1  |.  8B95 00F4FFFF mov     edx, dword ptr [ebp-C00]
  00402AE7  |.  52            push    edx
  00402AE8  |.  8B8D 10F4FFFF mov     ecx, dword ptr [ebp-BF0]
  00402AEE  |.  81C1 20010000 add     ecx, 120
  00402AF4  |.  E8 51770C00   call    <jmp.&MFC42.#858_CString::operat>
  00402AF9  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402AFD  |.  8D8D 78F4FFFF lea     ecx, dword ptr [ebp-B88]
  00402B03  |.  E8 2A770C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402B08  |.  68 70E25000   push    0050E270                         ; /Arg3 = 0050E270 ASCII "UserName"
  00402B0D  |.  68 7CE25000   push    0050E27C                         ; |Arg2 = 0050E27C ASCII "GeoMap.Document\VER35\Info"
  00402B12  |.  8D85 74F4FFFF lea     eax, dword ptr [ebp-B8C]         ; |
  00402B18  |.  50            push    eax                              ; |Arg1
  00402B19  |.  E8 6EF6FFFF   call    0040218C                         ; \GeoMap35.0040218C
  00402B1E  |.  8985 FCF3FFFF mov     dword ptr [ebp-C04], eax
  00402B24  |.  8B8D FCF3FFFF mov     ecx, dword ptr [ebp-C04]
  00402B2A  |.  898D F8F3FFFF mov     dword ptr [ebp-C08], ecx
  00402B30  |.  C645 FC 05    mov     byte ptr [ebp-4], 5
  00402B34  |.  8B95 F8F3FFFF mov     edx, dword ptr [ebp-C08]
  00402B3A  |.  52            push    edx
  00402B3B  |.  8B8D 10F4FFFF mov     ecx, dword ptr [ebp-BF0]
  00402B41  |.  81C1 28010000 add     ecx, 128
  00402B47  |.  E8 FE760C00   call    <jmp.&MFC42.#858_CString::operat>
  00402B4C  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402B50  |.  8D8D 74F4FFFF lea     ecx, dword ptr [ebp-B8C]
  00402B56  |.  E8 D7760C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402B5B  |.  68 98E25000   push    0050E298                         ; /Arg3 = 0050E298 ASCII "UserUnit"
  00402B60  |.  68 A4E25000   push    0050E2A4                         ; |Arg2 = 0050E2A4 ASCII "GeoMap.Document\VER35\Info"
  00402B65  |.  8D85 70F4FFFF lea     eax, dword ptr [ebp-B90]         ; |
  00402B6B  |.  50            push    eax                              ; |Arg1
  00402B6C  |.  E8 1BF6FFFF   call    0040218C                         ; \GeoMap35.0040218C
  00402B71  |.  8985 F4F3FFFF mov     dword ptr [ebp-C0C], eax
  00402B77  |.  8B8D F4F3FFFF mov     ecx, dword ptr [ebp-C0C]
  00402B7D  |.  898D F0F3FFFF mov     dword ptr [ebp-C10], ecx
  00402B83  |.  C645 FC 06    mov     byte ptr [ebp-4], 6
  00402B87  |.  8B95 F0F3FFFF mov     edx, dword ptr [ebp-C10]
  00402B8D  |.  52            push    edx
  00402B8E  |.  8B8D 10F4FFFF mov     ecx, dword ptr [ebp-BF0]
  00402B94  |.  81C1 2C010000 add     ecx, 12C
  00402B9A  |.  E8 AB760C00   call    <jmp.&MFC42.#858_CString::operat>
  00402B9F  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402BA3  |.  8D8D 70F4FFFF lea     ecx, dword ptr [ebp-B90]
  00402BA9  |.  E8 84760C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402BAE  |.  6A 07         push    7                                ; /Arg3 = 00000007
  00402BB0  |.  6A 00         push    0                                ; |Arg2 = 00000000
  00402BB2  |.  68 C8A24D00   push    004DA2C8                         ; |Arg1 = 004DA2C8
  00402BB7  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]         ; |
  00402BBD  |.  E8 BE760000   call    0040A280                         ; \GeoMap35.0040A280
  00402BC2  |.  8985 98F7FFFF mov     dword ptr [ebp-868], eax
  00402BC8  |.  83BD 98F7FFFF>cmp     dword ptr [ebp-868], 0
  00402BCF      0F8D 83000000 jge     00402C58
  00402BD5  |.  6A 00         push    0                                ; /Arg3 = 00000000
  00402BD7  |.  6A 00         push    0                                ; |Arg2 = 00000000
  00402BD9  |.  8B85 98F7FFFF mov     eax, dword ptr [ebp-868]         ; |
  00402BDF  |.  50            push    eax                              ; |Arg1
  00402BE0  |.  8D8D 84F7FFFF lea     ecx, dword ptr [ebp-87C]         ; |
  00402BE6  |.  E8 45730000   call    00409F30                         ; \GeoMap35.00409F30
  00402BEB  |.  C645 FC 07    mov     byte ptr [ebp-4], 7
  00402BEF  |.  6A 00         push    0
  00402BF1  |.  6A 00         push    0
  00402BF3  |.  8D8D 84F7FFFF lea     ecx, dword ptr [ebp-87C]
  00402BF9  |.  E8 12740000   call    0040A010
  00402BFE  |.  50            push    eax
  00402BFF  |.  E8 24770C00   call    <jmp.&MFC42.#1200_AfxMessageBox>
  00402C04  |.  C785 6CF4FFFF>mov     dword ptr [ebp-B94], 1
  00402C0E  |.  C645 FC 02    mov     byte ptr [ebp-4], 2
  00402C12  |.  8D8D 84F7FFFF lea     ecx, dword ptr [ebp-87C]
  00402C18  |.  E8 A3730000   call    00409FC0
  00402C1D  |.  C645 FC 01    mov     byte ptr [ebp-4], 1
  00402C21  |.  8D8D 94F7FFFF lea     ecx, dword ptr [ebp-86C]
  00402C27  |.  E8 06760C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402C2C  |.  C645 FC 00    mov     byte ptr [ebp-4], 0
  00402C30  |.  8D8D 9CF7FFFF lea     ecx, dword ptr [ebp-864]
  00402C36  |.  E8 F7750C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402C3B  |.  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
  00402C42  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402C48  |.  E8 E3750000   call    0040A230
  00402C4D  |.  8B85 6CF4FFFF mov     eax, dword ptr [ebp-B94]
  00402C53  |.  E9 B90F0000   jmp     00403C11
  00402C58  |>  8B8D A4F7FFFF mov     ecx, dword ptr [ebp-85C]
  00402C5E  |.  51            push    ecx
  00402C5F  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402C65  |.  E8 E6750000   call    0040A250
  00402C6A  |.  8985 ECF3FFFF mov     dword ptr [ebp-C14], eax
  00402C70  |.  8B95 ECF3FFFF mov     edx, dword ptr [ebp-C14]
  00402C76  |.  8B02          mov     eax, dword ptr [edx]
  00402C78  |.  8B8D ECF3FFFF mov     ecx, dword ptr [ebp-C14]
  00402C7E  |.  51            push    ecx
  00402C7F  |.  FF50 20       call    dword ptr [eax+20]
  00402C82  |.  8D8D 94F7FFFF lea     ecx, dword ptr [ebp-86C]
  00402C88  |.  E8 95760C00   call    <jmp.&MFC42.#1601_CString::Alloc>
  00402C8D  |.  50            push    eax
  00402C8E  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402C94  |.  E8 B7750000   call    0040A250
  00402C99  |.  8985 E8F3FFFF mov     dword ptr [ebp-C18], eax
  00402C9F  |.  8B95 E8F3FFFF mov     edx, dword ptr [ebp-C18]
  00402CA5  |.  8B02          mov     eax, dword ptr [edx]
  00402CA7  |.  8B8D E8F3FFFF mov     ecx, dword ptr [ebp-C18]
  00402CAD  |.  51            push    ecx
  00402CAE  |.  FF50 38       call    dword ptr [eax+38]
  00402CB1  |.  8D8D 9CF7FFFF lea     ecx, dword ptr [ebp-864]
  00402CB7  |.  E8 66760C00   call    <jmp.&MFC42.#1601_CString::Alloc>
  00402CBC  |.  50            push    eax
  00402CBD  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402CC3  |.  E8 88750000   call    0040A250
  00402CC8  |.  8985 E4F3FFFF mov     dword ptr [ebp-C1C], eax
  00402CCE  |.  8B95 E4F3FFFF mov     edx, dword ptr [ebp-C1C]
  00402CD4  |.  8B02          mov     eax, dword ptr [edx]
  00402CD6  |.  8B8D E4F3FFFF mov     ecx, dword ptr [ebp-C1C]
  00402CDC  |.  51            push    ecx
  00402CDD  |.  FF50 30       call    dword ptr [eax+30]               ;  RegEncry.012B27CE
  00402CE0  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402CE6  |.  E8 65750000   call    0040A250
  00402CEB  |.  8BC8          mov     ecx, eax
  00402CED  |.  E8 9E740000   call    0040A190
  00402CF2  |.  0FBFD0        movsx   edx, ax
  00402CF5  |.  85D2          test    edx, edx
  00402CF7      75 6C         jnz     short 00402D65                   ;  一路F8来到这里,这就是爆破的关键了,改成JMP就OK
  00402CF9  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402CFF  |.  E8 4C750000   call    0040A250
  00402D04  |.  8BC8          mov     ecx, eax
  00402D06  |.  E8 C5740000   call    0040A1D0
  00402D0B  |.  0FBFC0        movsx   eax, ax
  00402D0E  |.  85C0          test    eax, eax
  00402D10  |.  75 53         jnz     short 00402D65
  00402D12  |.  6A 00         push    0
  00402D14  |.  6A 00         push    0
  00402D16  |.  68 C0E25000   push    0050E2C0
  00402D1B  |.  E8 08760C00   call    <jmp.&MFC42.#1200_AfxMessageBox>
  00402D20  |.  C785 68F4FFFF>mov     dword ptr [ebp-B98], 0
  00402D2A  |.  C645 FC 01    mov     byte ptr [ebp-4], 1
  00402D2E  |.  8D8D 94F7FFFF lea     ecx, dword ptr [ebp-86C]
  00402D34  |.  E8 F9740C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402D39  |.  C645 FC 00    mov     byte ptr [ebp-4], 0
  00402D3D  |.  8D8D 9CF7FFFF lea     ecx, dword ptr [ebp-864]
  00402D43  |.  E8 EA740C00   call    <jmp.&MFC42.#800_CString::~CStri>
  00402D48  |.  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
  00402D4F  |.  8D8D A0F7FFFF lea     ecx, dword ptr [ebp-860]
  00402D55  |.  E8 D6740000   call    0040A230
  00402D5A  |.  8B85 68F4FFFF mov     eax, dword ptr [ebp-B98]
  00402D60  |.  E9 AC0E0000   jmp     00403C11
  00402D65  |>  C645 FC 01    mov     byte ptr [ebp-4], 1
  
  
--------------------------------------------------------------------------------
【经验总结】
  时间有限,写得粗糙一些^^
  经过处理的程序启动的时候不会有注册提示;如果对RegEncrypt.dll做手脚也能起到相近的作用,另外说一句,这个软件有
  重起验证(其实就是我破解的地方),你如果爆破RegEncrypt.dll也要考虑我破的这个地方,多以不如来个一劳永逸,直接
  搞你,呵呵!!
  可怜自己没把Blowfish 算法搞明白,下次把具体算法贴出来吧~
  有哪位大虾指点一下这个软件的算法实现,在下感激不尽
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年11月09日 16:51:03

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 58782
活跃值: (21926)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
2007-11-10 11:55
0
雪    币: 252
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢老大指教,偶马上看去!!
还要请教老大,这个软件好像还使用了NIMBUS的算法,这个算法的信息好像很少哇,老大能不能给说说或者介绍些资料呢!
2007-11-10 13:47
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
4
建议先测试下和正版有没有误差
2007-11-10 14:02
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
5
没有马甲,要么算法狠猛,要么不大懂破解的做的.
2007-11-10 16:44
0
雪    币: 252
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
和正版没有误差 大虾们给些提示,怎么搞定 NIMBUS 算法
2007-11-10 18:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哎!就是看不懂哇
2007-11-10 19:15
0
游客
登录 | 注册 方可回帖
返回