首页
社区
课程
招聘
[原创]LiveONE网络直播系统的破解
发表于: 2007-11-30 15:22 6117

[原创]LiveONE网络直播系统的破解

2007-11-30 15:22
6117
【文章标题】: LiveONE网络直播系统的破解
【文章作者】: chinglq
【作者邮箱】: chinglq@sina.com
【作者主页】: http://lqcoolboy.xinwen365.com
【软件名称】: LiveONE网络直播系统
【软件大小】: 23.4MB
【下载地址】: http://www.kuihua.net/download/LiveONE39_Demo.exe
【加壳方式】: N/A
【保护方式】: 注册码+时间限制
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD、PEiD
【操作平台】: 联想OEM WinXPsp2
【软件介绍】: LiveONE是北京****公司研制开发的高性能音视频直播软件,利用该系统能够提供基于局域网、城域网、广域网以及卫星网的音

视频直播、录像及录像点播服务。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!如果喜欢该软件,请支持正版!

--------------------------------------------------------------------------------
【详细过程】

1.0  观察:
    软件安装后,运行时出现注册对话框,填入任意码,点确定后弹出信息框“序列号错误!”,再点确定后程序自动退出。
2.0  查壳:
    用PEiD检查,无壳,编制语言VC++6.0。
3.0  调试:
    用OD装载后下MessageBoxA断点,按F9运行。执行一段时间后,停下不动。这时候还没看到注册对话框,看来程序好像有反调试功能,这可

得好好检查检查。检查API函数,没有发现检测调试器的函数。单步跟踪后发现004D8547行的CALL有问题:
--------------------------------------------------------
004D8531  |.  8D45 C4                  lea     eax, dword ptr [ebp-3C]
004D8534  |.  50                       push    eax
004D8535  |.  FF15 50644E00            call    dword ptr [<&OLEAUT32.#9>]            ;  OLEAUT32.VariantClear
004D853B  |.  817D 18 09000280         cmp     dword ptr [ebp+18], 80020009
004D8542      74 08                    je      short 004D854C                        ; ---> /EB 08    jmp  short 004D854C
004D8544  |.  FF75 18                  push    dword ptr [ebp+18]
004D8547  |.  E8 D6F1FFFF              call    004D7722                              ; 进去就死
004D854C  |>  395D AC                  cmp     dword ptr [ebp-54], ebx
004D854F  |.  74 07                    je      short 004D8558
-----------------------------------------------------
    改动004D8542处的跳转,便可看见注册对话框。后来发现这是由加断点后造成的,并不是采用检测调试器的API函数,可能是传说中的自校

验吧?对否?还请过路的大侠斧正!
    在以后的调试过程中,我采用运行前禁用断点,在注册对话框出现后,再激活断点的方法,免去每次在这改跳转的麻烦。
    在注册对话框中填入任意码后,程序断在下面这段程序的00438BBC处:
-------------------------------------------------------
00438757  /$  55                       push    ebp
00438758  |.  8BEC                     mov     ebp, esp
0043875A  |.  6A FF                    push    -1
0043875C  |.  68 46E24D00              push    004DE246                              ;  SE 处理程序安装
00438761  |.  64:A1 00000000           mov     eax, dword ptr fs:[0]
00438767  |.  50                       push    eax
00438768  |.  64:8925 00000000         mov     dword ptr fs:[0], esp
0043876F  |.  81EC 54030000            sub     esp, 354
00438775  |.  57                       push    edi
00438776  |.  898D 48FDFFFF            mov     dword ptr [ebp-2B8], ecx
0043877C  |.  8B8D 48FDFFFF            mov     ecx, dword ptr [ebp-2B8]
00438782  |.  E8 144E0000              call    0043D59B
00438787  |.  8945 F0                  mov     dword ptr [ebp-10], eax
0043878A  |.  837D F0 00               cmp     dword ptr [ebp-10], 0
0043878E  |.  0F84 04020000            je      00438998
00438794  |>  B8 01000000              /mov     eax, 1
00438799  |.  85C0                     |test    eax, eax
0043879B  |.  0F84 E2010000            |je      00438983
004387A1  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]
004387A7  |.  E8 EE420000              |call    0043CA9A
004387AC  |.  85C0                     |test    eax, eax
004387AE  |.  0F84 11010000            |je      004388C5
004387B4  |.  833D 60875D00 00         |cmp     dword ptr [5D8760], 0
004387BB  |.  0F84 F5000000            |je      004388B6
004387C1  |.  833D 60875D00 01         |cmp     dword ptr [5D8760], 1
004387C8  |.  0F84 E8000000            |je      004388B6
004387CE  |.  833D 60875D00 02         |cmp     dword ptr [5D8760], 2
004387D5  |.  0F84 DB000000            |je      004388B6
004387DB  |.  833D 60875D00 03         |cmp     dword ptr [5D8760], 3
004387E2  |.  0F84 CE000000            |je      004388B6
004387E8  |.  833D 60875D00 06         |cmp     dword ptr [5D8760], 6
004387EF  |.  0F84 C1000000            |je      004388B6
004387F5  |.  6A 15                    |push    15
004387F7  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
004387FC  |.  8D8D C8FDFFFF            |lea     ecx, dword ptr [ebp-238]             ; |
00438802  |.  51                       |push    ecx                                  ; |Arg1
00438803  |.  E8 C5480000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438808  |.  83C4 08                  |add     esp, 8
0043880B  |.  8985 44FDFFFF            |mov     dword ptr [ebp-2BC], eax
00438811  |.  8B95 44FDFFFF            |mov     edx, dword ptr [ebp-2BC]
00438817  |.  8995 40FDFFFF            |mov     dword ptr [ebp-2C0], edx
0043881D  |.  C745 FC 00000000         |mov     dword ptr [ebp-4], 0
00438824  |.  8B8D 40FDFFFF            |mov     ecx, dword ptr [ebp-2C0]
0043882A  |.  E8 51B9FCFF              |call    00404180
0043882F  |.  50                       |push    eax
00438830  |.  68 41030000              |push    341                                  ; /Arg2 = 00000341
00438835  |.  8D85 C4FDFFFF            |lea     eax, dword ptr [ebp-23C]             ; |
0043883B  |.  50                       |push    eax                                  ; |Arg1
0043883C  |.  E8 8C480000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438841  |.  83C4 08                  |add     esp, 8
00438844  |.  8985 3CFDFFFF            |mov     dword ptr [ebp-2C4], eax
0043884A  |.  8B8D 3CFDFFFF            |mov     ecx, dword ptr [ebp-2C4]
00438850  |.  898D 38FDFFFF            |mov     dword ptr [ebp-2C8], ecx
00438856  |.  C645 FC 01               |mov     byte ptr [ebp-4], 1
0043885A  |.  8B8D 38FDFFFF            |mov     ecx, dword ptr [ebp-2C8]
00438860  |.  E8 1BB9FCFF              |call    00404180
00438865  |.  50                       |push    eax                                  ; |Text
00438866  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438868  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
0043886E  |.  33D2                     |xor     edx, edx
00438870  |.  83F8 02                  |cmp     eax, 2
00438873  |.  0F94C2                   |sete    dl
00438876  |.  8895 CCFDFFFF            |mov     byte ptr [ebp-234], dl
0043887C  |.  C645 FC 00               |mov     byte ptr [ebp-4], 0
00438880  |.  8D8D C4FDFFFF            |lea     ecx, dword ptr [ebp-23C]
00438886  |.  E8 187F0800              |call    004C07A3
0043888B  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438892  |.  8D8D C8FDFFFF            |lea     ecx, dword ptr [ebp-238]
00438898  |.  E8 067F0800              |call    004C07A3
0043889D  |.  8B85 CCFDFFFF            |mov     eax, dword ptr [ebp-234]
004388A3  |.  25 FF000000              |and     eax, 0FF
004388A8  |.  85C0                     |test    eax, eax
004388AA  |.  74 05                    |je      short 004388B1
004388AC  |.  E9 D2000000              |jmp     00438983
004388B1  |>^ E9 DEFEFFFF              |jmp     00438794
004388B6  |>  C705 54875D00 01000000   |mov     dword ptr [5D8754], 1
004388C0  |.  E9 BE000000              |jmp     00438983
004388C5  |>  6A 15                    |push    15
004388C7  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
004388CC  |.  8D8D BCFDFFFF            |lea     ecx, dword ptr [ebp-244]             ; |
004388D2  |.  51                       |push    ecx                                  ; |Arg1
004388D3  |.  E8 F5470000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
004388D8  |.  83C4 08                  |add     esp, 8
004388DB  |.  8985 34FDFFFF            |mov     dword ptr [ebp-2CC], eax
004388E1  |.  8B95 34FDFFFF            |mov     edx, dword ptr [ebp-2CC]
004388E7  |.  8995 30FDFFFF            |mov     dword ptr [ebp-2D0], edx
004388ED  |.  C745 FC 02000000         |mov     dword ptr [ebp-4], 2
004388F4  |.  8B8D 30FDFFFF            |mov     ecx, dword ptr [ebp-2D0]
004388FA  |.  E8 81B8FCFF              |call    00404180
004388FF  |.  50                       |push    eax
00438900  |.  68 42030000              |push    342                                  ; /Arg2 = 00000342
00438905  |.  8D85 B8FDFFFF            |lea     eax, dword ptr [ebp-248]             ; |
0043890B  |.  50                       |push    eax                                  ; |Arg1
0043890C  |.  E8 BC470000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438911  |.  83C4 08                  |add     esp, 8
00438914  |.  8985 2CFDFFFF            |mov     dword ptr [ebp-2D4], eax
0043891A  |.  8B8D 2CFDFFFF            |mov     ecx, dword ptr [ebp-2D4]
00438920  |.  898D 28FDFFFF            |mov     dword ptr [ebp-2D8], ecx
00438926  |.  C645 FC 03               |mov     byte ptr [ebp-4], 3
0043892A  |.  8B8D 28FDFFFF            |mov     ecx, dword ptr [ebp-2D8]
00438930  |.  E8 4BB8FCFF              |call    00404180
00438935  |.  50                       |push    eax                                  ; |Text
00438936  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438938  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
0043893E  |.  33D2                     |xor     edx, edx
00438940  |.  83F8 02                  |cmp     eax, 2
00438943  |.  0F94C2                   |sete    dl
00438946  |.  8895 C0FDFFFF            |mov     byte ptr [ebp-240], dl
0043894C  |.  C645 FC 02               |mov     byte ptr [ebp-4], 2
00438950  |.  8D8D B8FDFFFF            |lea     ecx, dword ptr [ebp-248]
00438956  |.  E8 487E0800              |call    004C07A3
0043895B  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438962  |.  8D8D BCFDFFFF            |lea     ecx, dword ptr [ebp-244]
00438968  |.  E8 367E0800              |call    004C07A3
0043896D  |.  8B85 C0FDFFFF            |mov     eax, dword ptr [ebp-240]
00438973  |.  25 FF000000              |and     eax, 0FF
00438978  |.  85C0                     |test    eax, eax
0043897A  |.  74 02                    |je      short 0043897E
0043897C  |.  EB 05                    |jmp     short 00438983
0043897E  |>^ E9 11FEFFFF              \jmp     00438794
00438983  |>  833D 54875D00 00         cmp     dword ptr [5D8754], 0
0043898A  |.  75 07                    jnz     short 00438993
0043898C  |.  33C0                     xor     eax, eax
0043898E  |.  E9 E5090000              jmp     00439378
00438993  |>  E9 DB090000              jmp     00439373
00438998  |>  8D8D B4FDFFFF            lea     ecx, dword ptr [ebp-24C]
0043899E  |.  51                       push    ecx
0043899F  |.  E8 FF090800              call    004B93A3
004389A4  |.  50                       push    eax                                   ; /Arg1
004389A5  |.  8D4D EC                  lea     ecx, dword ptr [ebp-14]               ; |
004389A8  |.  E8 C3CEFFFF              call    00435870                              ; \SFLiveON.00435870
004389AD  |.  6A FF                    push    -1                                    ; /Arg7 = FFFFFFFF
004389AF  |.  6A 00                    push    0                                     ; |Arg6 = 00000000
004389B1  |.  6A 00                    push    0                                     ; |Arg5 = 00000000
004389B3  |.  6A 00                    push    0                                     ; |Arg4 = 00000000
004389B5  |.  6A 1F                    push    1F                                    ; |Arg3 = 0000001F
004389B7  |.  6A 0C                    push    0C                                    ; |Arg2 = 0000000C
004389B9  |.  68 D7070000              push    7D7                                   ; |Arg1 = 000007D7
004389BE  |.  8D8D ACFDFFFF            lea     ecx, dword ptr [ebp-254]              ; |
004389C4  |.  E8 F6080800              call    004B92BF                              ; \SFLiveON.004B92BF
004389C9  |.  51                       push    ecx                                   ; /Arg1
004389CA  |.  8BCC                     mov     ecx, esp                              ; |
004389CC  |.  89A5 B0FDFFFF            mov     dword ptr [ebp-250], esp              ; |
004389D2  |.  50                       push    eax                                   ; |/Arg1
004389D3  |.  E8 98CEFFFF              call    00435870                              ; |\SFLiveON.00435870
004389D8  |.  8D4D EC                  lea     ecx, dword ptr [ebp-14]               ; |
004389DB  |.  E8 C0590000              call    0043E3A0                              ; \SFLiveON.0043E3A0
004389E0  |.  85C0                     test    eax, eax
004389E2  |.  0F84 A1000000            je      00438A89
004389E8  |.  6A 10                    push    10
004389EA  |.  68 FC000000              push    0FC                                   ; /Arg2 = 000000FC
004389EF  |.  8D95 A8FDFFFF            lea     edx, dword ptr [ebp-258]              ; |
004389F5  |.  52                       push    edx                                   ; |Arg1
004389F6  |.  E8 D2460000              call    0043D0CD                              ; \SFLiveON.0043D0CD
004389FB  |.  83C4 08                  add     esp, 8
004389FE  |.  8985 24FDFFFF            mov     dword ptr [ebp-2DC], eax
00438A04  |.  8B85 24FDFFFF            mov     eax, dword ptr [ebp-2DC]
00438A0A  |.  8985 20FDFFFF            mov     dword ptr [ebp-2E0], eax
00438A10  |.  C745 FC 04000000         mov     dword ptr [ebp-4], 4
00438A17  |.  8B8D 20FDFFFF            mov     ecx, dword ptr [ebp-2E0]
00438A1D  |.  E8 5EB7FCFF              call    00404180
00438A22  |.  50                       push    eax
00438A23  |.  68 43030000              push    343                                   ; /Arg2 = 00000343
00438A28  |.  8D8D A4FDFFFF            lea     ecx, dword ptr [ebp-25C]              ; |
00438A2E  |.  51                       push    ecx                                   ; |Arg1
00438A2F  |.  E8 99460000              call    0043D0CD                              ; \SFLiveON.0043D0CD
00438A34  |.  83C4 08                  add     esp, 8
00438A37  |.  8985 1CFDFFFF            mov     dword ptr [ebp-2E4], eax
00438A3D  |.  8B95 1CFDFFFF            mov     edx, dword ptr [ebp-2E4]
00438A43  |.  8995 18FDFFFF            mov     dword ptr [ebp-2E8], edx
00438A49  |.  C645 FC 05               mov     byte ptr [ebp-4], 5
00438A4D  |.  8B8D 18FDFFFF            mov     ecx, dword ptr [ebp-2E8]
00438A53  |.  E8 28B7FCFF              call    00404180
00438A58  |.  50                       push    eax                                   ; |Text
00438A59  |.  6A 00                    push    0                                     ; |hOwner = NULL
00438A5B  |.  FF15 C0664E00            call    dword ptr [<&USER32.MessageBoxA>]     ; \MessageBoxA
00438A61  |.  C645 FC 04               mov     byte ptr [ebp-4], 4
00438A65  |.  8D8D A4FDFFFF            lea     ecx, dword ptr [ebp-25C]
00438A6B  |.  E8 337D0800              call    004C07A3
00438A70  |.  C745 FC FFFFFFFF         mov     dword ptr [ebp-4], -1
00438A77  |.  8D8D A8FDFFFF            lea     ecx, dword ptr [ebp-258]
00438A7D  |.  E8 217D0800              call    004C07A3
00438A82  |.  33C0                     xor     eax, eax
00438A84  |.  E9 EF080000              jmp     00439378
00438A89  |>  8B8D 48FDFFFF            mov     ecx, dword ptr [ebp-2B8]
00438A8F  |.  E8 4D4C0000              call    0043D6E1
00438A94  |.  8945 E4                  mov     dword ptr [ebp-1C], eax
00438A97  |.  8B45 E4                  mov     eax, dword ptr [ebp-1C]
00438A9A  |.  8945 E8                  mov     dword ptr [ebp-18], eax
00438A9D  |>  B9 01000000              /mov     ecx, 1
00438AA2  |.  85C9                     |test    ecx, ecx
00438AA4  |.  0F84 C9080000            |je      00439373                             ; ---> 0F85 C9080000 jnz  00439373
00438AAA  |.  837D E4 00               |cmp     dword ptr [ebp-1C], 0
00438AAE  |.  0F84 96060000            |je      0043914A
00438AB4  |.  6A 00                    |push    0                                    ; /Arg1 = 00000000
00438AB6  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]              ; |
00438ABC  |.  E8 7F42FEFF              |call    0041CD40                             ; \SFLiveON.0041CD40
00438AC1  |.  C745 FC 06000000         |mov     dword ptr [ebp-4], 6
00438AC8  |.  68 1CB35000              |push    0050B31C                             ;  ASCII

"http://www.kuihua.net/productonline/index.html"
00438ACD  |.  8D8D 7CFFFFFF            |lea     ecx, dword ptr [ebp-84]
00438AD3  |.  E8 547E0800              |call    004C092C
00438AD8  |.  C785 70FFFFFF 00000000   |mov     dword ptr [ebp-90], 0
00438AE2  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438AE8  |.  E8 B13A0800              |call    004BC59E                             ; 自校验和注册对话框
00438AED  |.  83F8 01                  |cmp     eax, 1                               ; 下断点
00438AF0  |.  74 27                    |je      short 00438B19
00438AF2  |.  C785 A0FDFFFF 00000000   |mov     dword ptr [ebp-260], 0
00438AFC  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438B03  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438B09  |.  E8 924AFEFF              |call    0041D5A0
00438B0E  |.  8B85 A0FDFFFF            |mov     eax, dword ptr [ebp-260]
00438B14  |.  E9 5F080000              |jmp     00439378
00438B19  |>  C745 C8 00000000         |mov     dword ptr [ebp-38], 0
00438B20  |.  B9 06000000              |mov     ecx, 6
00438B25  |.  33C0                     |xor     eax, eax
00438B27  |.  8D7D CC                  |lea     edi, dword ptr [ebp-34]
00438B2A  |.  F3:AB                    |rep     stos dword ptr es:[edi]
00438B2C  |.  8D55 C8                  |lea     edx, dword ptr [ebp-38]
00438B2F  |.  52                       |push    edx
00438B30  |.  8D4D C0                  |lea     ecx, dword ptr [ebp-40]
00438B33  |.  E8 48B6FCFF              |call    00404180
00438B38  |.  50                       |push    eax                                  ; |Arg1 ; 输入码
00438B39  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]             ; |
00438B3F  |.  E8 334C0000              |call    0043D777                             ; \SFLiveON.0043D777 ; 注册检测,追进
00438B44  |.  85C0                     |test    eax, eax
00438B46  |.  0F85 BB000000            |jnz     00438C07
00438B4C  |.  6A 10                    |push    10
00438B4E  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
00438B53  |.  8D85 9CFDFFFF            |lea     eax, dword ptr [ebp-264]             ; |
00438B59  |.  50                       |push    eax                                  ; |Arg1
00438B5A  |.  E8 6E450000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438B5F  |.  83C4 08                  |add     esp, 8
00438B62  |.  8985 14FDFFFF            |mov     dword ptr [ebp-2EC], eax
00438B68  |.  8B8D 14FDFFFF            |mov     ecx, dword ptr [ebp-2EC]
00438B6E  |.  898D 10FDFFFF            |mov     dword ptr [ebp-2F0], ecx
00438B74  |.  C645 FC 07               |mov     byte ptr [ebp-4], 7
00438B78  |.  8B8D 10FDFFFF            |mov     ecx, dword ptr [ebp-2F0]
00438B7E  |.  E8 FDB5FCFF              |call    00404180
00438B83  |.  50                       |push    eax
00438B84  |.  68 44030000              |push    344                                  ; /Arg2 = 00000344
00438B89  |.  8D95 98FDFFFF            |lea     edx, dword ptr [ebp-268]             ; |
00438B8F  |.  52                       |push    edx                                  ; |Arg1
00438B90  |.  E8 38450000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438B95  |.  83C4 08                  |add     esp, 8
00438B98  |.  8985 0CFDFFFF            |mov     dword ptr [ebp-2F4], eax
00438B9E  |.  8B85 0CFDFFFF            |mov     eax, dword ptr [ebp-2F4]
00438BA4  |.  8985 08FDFFFF            |mov     dword ptr [ebp-2F8], eax
00438BAA  |.  C645 FC 08               |mov     byte ptr [ebp-4], 8
00438BAE  |.  8B8D 08FDFFFF            |mov     ecx, dword ptr [ebp-2F8]
00438BB4  |.  E8 C7B5FCFF              |call    00404180
00438BB9  |.  50                       |push    eax                                  ; |Text
00438BBA  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438BBC  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA ; 断在这里
00438BC2  |.  C645 FC 07               |mov     byte ptr [ebp-4], 7
00438BC6  |.  8D8D 98FDFFFF            |lea     ecx, dword ptr [ebp-268]
00438BCC  |.  E8 D27B0800              |call    004C07A3
00438BD1  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
00438BD5  |.  8D8D 9CFDFFFF            |lea     ecx, dword ptr [ebp-264]
00438BDB  |.  E8 C37B0800              |call    004C07A3
00438BE0  |.  C785 94FDFFFF 00000000   |mov     dword ptr [ebp-26C], 0
00438BEA  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438BF1  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438BF7  |.  E8 A449FEFF              |call    0041D5A0
00438BFC  |.  8B85 94FDFFFF            |mov     eax, dword ptr [ebp-26C]
00438C02  |.  E9 71070000              |jmp     00439378
00438C07  |>  837D C8 0A               |cmp     dword ptr [ebp-38], 0A
00438C0B  |.  0F84 BB000000            |je      00438CCC
00438C11  |.  6A 10                    |push    10
00438C13  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
00438C18  |.  8D8D 90FDFFFF            |lea     ecx, dword ptr [ebp-270]             ; |
00438C1E  |.  51                       |push    ecx                                  ; |Arg1
00438C1F  |.  E8 A9440000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438C24  |.  83C4 08                  |add     esp, 8
00438C27  |.  8985 04FDFFFF            |mov     dword ptr [ebp-2FC], eax
00438C2D  |.  8B95 04FDFFFF            |mov     edx, dword ptr [ebp-2FC]
00438C33  |.  8995 00FDFFFF            |mov     dword ptr [ebp-300], edx
00438C39  |.  C645 FC 09               |mov     byte ptr [ebp-4], 9
00438C3D  |.  8B8D 00FDFFFF            |mov     ecx, dword ptr [ebp-300]
00438C43  |.  E8 38B5FCFF              |call    00404180
00438C48  |.  50                       |push    eax
00438C49  |.  68 44030000              |push    344                                  ; /Arg2 = 00000344
00438C4E  |.  8D85 8CFDFFFF            |lea     eax, dword ptr [ebp-274]             ; |
00438C54  |.  50                       |push    eax                                  ; |Arg1
00438C55  |.  E8 73440000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438C5A  |.  83C4 08                  |add     esp, 8
00438C5D  |.  8985 FCFCFFFF            |mov     dword ptr [ebp-304], eax
00438C63  |.  8B8D FCFCFFFF            |mov     ecx, dword ptr [ebp-304]
00438C69  |.  898D F8FCFFFF            |mov     dword ptr [ebp-308], ecx
00438C6F  |.  C645 FC 0A               |mov     byte ptr [ebp-4], 0A
00438C73  |.  8B8D F8FCFFFF            |mov     ecx, dword ptr [ebp-308]
00438C79  |.  E8 02B5FCFF              |call    00404180
00438C7E  |.  50                       |push    eax                                  ; |Text
00438C7F  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438C81  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
00438C87  |.  C645 FC 09               |mov     byte ptr [ebp-4], 9
00438C8B  |.  8D8D 8CFDFFFF            |lea     ecx, dword ptr [ebp-274]
00438C91  |.  E8 0D7B0800              |call    004C07A3
00438C96  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
00438C9A  |.  8D8D 90FDFFFF            |lea     ecx, dword ptr [ebp-270]
00438CA0  |.  E8 FE7A0800              |call    004C07A3
00438CA5  |.  C785 88FDFFFF 00000000   |mov     dword ptr [ebp-278], 0
00438CAF  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438CB6  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438CBC  |.  E8 DF48FEFF              |call    0041D5A0
00438CC1  |.  8B85 88FDFFFF            |mov     eax, dword ptr [ebp-278]
00438CC7  |.  E9 AC060000              |jmp     00439378
00438CCC  |>  8B55 D0                  |mov     edx, dword ptr [ebp-30]
00438CCF  |.  F7DA                     |neg     edx
00438CD1  |.  1BD2                     |sbb     edx, edx
00438CD3  |.  83E2 FE                  |and     edx, FFFFFFFE
00438CD6  |.  83C2 02                  |add     edx, 2
00438CD9  |.  8915 60875D00            |mov     dword ptr [5D8760], edx
00438CDF  |.  8B45 DC                  |mov     eax, dword ptr [ebp-24]
00438CE2  |.  A3 58875D00              |mov     dword ptr [5D8758], eax
00438CE7  |.  8B4D D8                  |mov     ecx, dword ptr [ebp-28]
00438CEA  |.  890D 48875D00            |mov     dword ptr [5D8748], ecx
00438CF0  |.  8B55 E0                  |mov     edx, dword ptr [ebp-20]
00438CF3  |.  8915 50875D00            |mov     dword ptr [5D8750], edx
00438CF9  |.  8B45 D4                  |mov     eax, dword ptr [ebp-2C]
00438CFC  |.  A3 4C875D00              |mov     dword ptr [5D874C], eax
00438D01  |.  837D E8 00               |cmp     dword ptr [ebp-18], 0
00438D05  |.  0F84 05010000            |je      00438E10
00438D0B  |.  6A 00                    |push    0
00438D0D  |.  8D4D C0                  |lea     ecx, dword ptr [ebp-40]
00438D10  |.  E8 6BB4FCFF              |call    00404180
00438D15  |.  50                       |push    eax                                  ; |Arg1
00438D16  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]             ; |
00438D1C  |.  E8 A1410000              |call    0043CEC2                             ; \SFLiveON.0043CEC2
00438D21  |.  85C0                     |test    eax, eax
00438D23  |.  0F85 E2000000            |jnz     00438E0B
00438D29  |.  68 4CB35000              |push    0050B34C                             ;  ASCII "0x0113"
00438D2E  |.  68 45030000              |push    345                                  ; /Arg2 = 00000345
00438D33  |.  8D8D 84FDFFFF            |lea     ecx, dword ptr [ebp-27C]             ; |
00438D39  |.  51                       |push    ecx                                  ; |Arg1
00438D3A  |.  E8 8E430000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438D3F  |.  83C4 08                  |add     esp, 8
00438D42  |.  8985 F4FCFFFF            |mov     dword ptr [ebp-30C], eax
00438D48  |.  8B95 F4FCFFFF            |mov     edx, dword ptr [ebp-30C]
00438D4E  |.  8995 F0FCFFFF            |mov     dword ptr [ebp-310], edx
00438D54  |.  C645 FC 0B               |mov     byte ptr [ebp-4], 0B
00438D58  |.  8B85 F0FCFFFF            |mov     eax, dword ptr [ebp-310]
00438D5E  |.  50                       |push    eax
00438D5F  |.  8D8D 0CFFFFFF            |lea     ecx, dword ptr [ebp-F4]
00438D65  |.  51                       |push    ecx
00438D66  |.  E8 CD7C0800              |call    004C0A38
00438D6B  |.  C645 FC 0D               |mov     byte ptr [ebp-4], 0D
00438D6F  |.  8D8D 84FDFFFF            |lea     ecx, dword ptr [ebp-27C]
00438D75  |.  E8 297A0800              |call    004C07A3
00438D7A  |.  6A 10                    |push    10
00438D7C  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
00438D81  |.  8D95 80FDFFFF            |lea     edx, dword ptr [ebp-280]             ; |
00438D87  |.  52                       |push    edx                                  ; |Arg1
00438D88  |.  E8 40430000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438D8D  |.  83C4 08                  |add     esp, 8
00438D90  |.  8985 ECFCFFFF            |mov     dword ptr [ebp-314], eax
00438D96  |.  8B85 ECFCFFFF            |mov     eax, dword ptr [ebp-314]
00438D9C  |.  8985 E8FCFFFF            |mov     dword ptr [ebp-318], eax
00438DA2  |.  C645 FC 0E               |mov     byte ptr [ebp-4], 0E
00438DA6  |.  8B8D E8FCFFFF            |mov     ecx, dword ptr [ebp-318]
00438DAC  |.  E8 CFB3FCFF              |call    00404180
00438DB1  |.  50                       |push    eax
00438DB2  |.  8D8D 0CFFFFFF            |lea     ecx, dword ptr [ebp-F4]
00438DB8  |.  E8 C3B3FCFF              |call    00404180
00438DBD  |.  50                       |push    eax                                  ; |Text
00438DBE  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438DC0  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
00438DC6  |.  C645 FC 0D               |mov     byte ptr [ebp-4], 0D
00438DCA  |.  8D8D 80FDFFFF            |lea     ecx, dword ptr [ebp-280]
00438DD0  |.  E8 CE790800              |call    004C07A3
00438DD5  |.  C785 7CFDFFFF 00000000   |mov     dword ptr [ebp-284], 0
00438DDF  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
00438DE3  |.  8D8D 0CFFFFFF            |lea     ecx, dword ptr [ebp-F4]
00438DE9  |.  E8 B5790800              |call    004C07A3
00438DEE  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438DF5  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438DFB  |.  E8 A047FEFF              |call    0041D5A0
00438E00  |.  8B85 7CFDFFFF            |mov     eax, dword ptr [ebp-284]
00438E06  |.  E9 6D050000              |jmp     00439378
00438E0B  |>  E9 CC010000              |jmp     00438FDC
00438E10  |>  8D4D C0                  |lea     ecx, dword ptr [ebp-40]
00438E13  |.  E8 68B3FCFF              |call    00404180
00438E18  |.  50                       |push    eax                                  ; /Arg1
00438E19  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]             ; |
00438E1F  |.  E8 C74C0000              |call    0043DAEB                             ; \SFLiveON.0043DAEB
00438E24  |.  85C0                     |test    eax, eax
00438E26  |.  0F85 E2000000            |jnz     00438F0E
00438E2C  |.  68 54B35000              |push    0050B354                             ;  ASCII "0x0114"
00438E31  |.  68 45030000              |push    345                                  ; /Arg2 = 00000345
00438E36  |.  8D8D 78FDFFFF            |lea     ecx, dword ptr [ebp-288]             ; |
00438E3C  |.  51                       |push    ecx                                  ; |Arg1
00438E3D  |.  E8 8B420000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438E42  |.  83C4 08                  |add     esp, 8
00438E45  |.  8985 E4FCFFFF            |mov     dword ptr [ebp-31C], eax
00438E4B  |.  8B95 E4FCFFFF            |mov     edx, dword ptr [ebp-31C]
00438E51  |.  8995 E0FCFFFF            |mov     dword ptr [ebp-320], edx
00438E57  |.  C645 FC 0F               |mov     byte ptr [ebp-4], 0F
00438E5B  |.  8B85 E0FCFFFF            |mov     eax, dword ptr [ebp-320]
00438E61  |.  50                       |push    eax
00438E62  |.  8D8D 08FFFFFF            |lea     ecx, dword ptr [ebp-F8]
00438E68  |.  51                       |push    ecx
00438E69  |.  E8 CA7B0800              |call    004C0A38
00438E6E  |.  C645 FC 11               |mov     byte ptr [ebp-4], 11
00438E72  |.  8D8D 78FDFFFF            |lea     ecx, dword ptr [ebp-288]
00438E78  |.  E8 26790800              |call    004C07A3
00438E7D  |.  6A 10                    |push    10
00438E7F  |.  68 4C030000              |push    34C                                  ; /Arg2 = 0000034C
00438E84  |.  8D95 74FDFFFF            |lea     edx, dword ptr [ebp-28C]             ; |
00438E8A  |.  52                       |push    edx                                  ; |Arg1
00438E8B  |.  E8 3D420000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438E90  |.  83C4 08                  |add     esp, 8
00438E93  |.  8985 DCFCFFFF            |mov     dword ptr [ebp-324], eax
00438E99  |.  8B85 DCFCFFFF            |mov     eax, dword ptr [ebp-324]
00438E9F  |.  8985 D8FCFFFF            |mov     dword ptr [ebp-328], eax
00438EA5  |.  C645 FC 12               |mov     byte ptr [ebp-4], 12
00438EA9  |.  8B8D D8FCFFFF            |mov     ecx, dword ptr [ebp-328]
00438EAF  |.  E8 CCB2FCFF              |call    00404180
00438EB4  |.  50                       |push    eax
00438EB5  |.  8D8D 08FFFFFF            |lea     ecx, dword ptr [ebp-F8]
00438EBB  |.  E8 C0B2FCFF              |call    00404180
00438EC0  |.  50                       |push    eax                                  ; |Text
00438EC1  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438EC3  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
00438EC9  |.  C645 FC 11               |mov     byte ptr [ebp-4], 11
00438ECD  |.  8D8D 74FDFFFF            |lea     ecx, dword ptr [ebp-28C]
00438ED3  |.  E8 CB780800              |call    004C07A3
00438ED8  |.  C785 70FDFFFF 00000000   |mov     dword ptr [ebp-290], 0
00438EE2  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
00438EE6  |.  8D8D 08FFFFFF            |lea     ecx, dword ptr [ebp-F8]
00438EEC  |.  E8 B2780800              |call    004C07A3
00438EF1  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438EF8  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438EFE  |.  E8 9D46FEFF              |call    0041D5A0
00438F03  |.  8B85 70FDFFFF            |mov     eax, dword ptr [ebp-290]
00438F09  |.  E9 6A040000              |jmp     00439378
00438F0E  |>  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]
00438F14  |.  E8 153E0000              |call    0043CD2E
00438F19  |.  85C0                     |test    eax, eax
00438F1B  |.  0F85 BB000000            |jnz     00438FDC
00438F21  |.  6A 10                    |push    10
00438F23  |.  68 FC000000              |push    0FC                                  ; /Arg2 = 000000FC
00438F28  |.  8D8D 6CFDFFFF            |lea     ecx, dword ptr [ebp-294]             ; |
00438F2E  |.  51                       |push    ecx                                  ; |Arg1
00438F2F  |.  E8 99410000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438F34  |.  83C4 08                  |add     esp, 8
00438F37  |.  8985 D4FCFFFF            |mov     dword ptr [ebp-32C], eax
00438F3D  |.  8B95 D4FCFFFF            |mov     edx, dword ptr [ebp-32C]
00438F43  |.  8995 D0FCFFFF            |mov     dword ptr [ebp-330], edx
00438F49  |.  C645 FC 13               |mov     byte ptr [ebp-4], 13
00438F4D  |.  8B8D D0FCFFFF            |mov     ecx, dword ptr [ebp-330]
00438F53  |.  E8 28B2FCFF              |call    00404180
00438F58  |.  50                       |push    eax
00438F59  |.  68 FB000000              |push    0FB                                  ; /Arg2 = 000000FB
00438F5E  |.  8D85 68FDFFFF            |lea     eax, dword ptr [ebp-298]             ; |
00438F64  |.  50                       |push    eax                                  ; |Arg1
00438F65  |.  E8 63410000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
00438F6A  |.  83C4 08                  |add     esp, 8
00438F6D  |.  8985 CCFCFFFF            |mov     dword ptr [ebp-334], eax
00438F73  |.  8B8D CCFCFFFF            |mov     ecx, dword ptr [ebp-334]
00438F79  |.  898D C8FCFFFF            |mov     dword ptr [ebp-338], ecx
00438F7F  |.  C645 FC 14               |mov     byte ptr [ebp-4], 14
00438F83  |.  8B8D C8FCFFFF            |mov     ecx, dword ptr [ebp-338]
00438F89  |.  E8 F2B1FCFF              |call    00404180
00438F8E  |.  50                       |push    eax                                  ; |Text
00438F8F  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00438F91  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
00438F97  |.  C645 FC 13               |mov     byte ptr [ebp-4], 13
00438F9B  |.  8D8D 68FDFFFF            |lea     ecx, dword ptr [ebp-298]
00438FA1  |.  E8 FD770800              |call    004C07A3
00438FA6  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
00438FAA  |.  8D8D 6CFDFFFF            |lea     ecx, dword ptr [ebp-294]
00438FB0  |.  E8 EE770800              |call    004C07A3
00438FB5  |.  C785 64FDFFFF 00000000   |mov     dword ptr [ebp-29C], 0
00438FBF  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
00438FC6  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00438FCC  |.  E8 CF45FEFF              |call    0041D5A0
00438FD1  |.  8B85 64FDFFFF            |mov     eax, dword ptr [ebp-29C]
00438FD7  |.  E9 9C030000              |jmp     00439378
00438FDC  |>  8D55 C0                  |lea     edx, dword ptr [ebp-40]
00438FDF  |.  52                       |push    edx
00438FE0  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]
00438FE6  |.  81C1 781B0C00            |add     ecx, 0C1B78
00438FEC  |.  E8 EB780800              |call    004C08DC
00438FF1  |.  8D4D C4                  |lea     ecx, dword ptr [ebp-3C]
00438FF4  |.  E8 D7AFFCFF              |call    00403FD0
00438FF9  |.  C645 FC 15               |mov     byte ptr [ebp-4], 15
00438FFD  |.  833D 5C875D00 00         |cmp     dword ptr [5D875C], 0
00439004  |.  75 66                    |jnz     short 0043906C
00439006  |.  8B85 48FDFFFF            |mov     eax, dword ptr [ebp-2B8]
0043900C  |.  8B0D 50875D00            |mov     ecx, dword ptr [5D8750]
00439012  |.  2B88 101E0B00            |sub     ecx, dword ptr [eax+B1E10]
00439018  |.  51                       |push    ecx
00439019  |.  68 94030000              |push    394                                  ; /Arg2 = 00000394
0043901E  |.  8D95 60FDFFFF            |lea     edx, dword ptr [ebp-2A0]             ; |
00439024  |.  52                       |push    edx                                  ; |Arg1
00439025  |.  E8 A3400000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
0043902A  |.  83C4 08                  |add     esp, 8
0043902D  |.  8985 C4FCFFFF            |mov     dword ptr [ebp-33C], eax
00439033  |.  8B85 C4FCFFFF            |mov     eax, dword ptr [ebp-33C]
00439039  |.  8985 C0FCFFFF            |mov     dword ptr [ebp-340], eax
0043903F  |.  C645 FC 16               |mov     byte ptr [ebp-4], 16
00439043  |.  8B8D C0FCFFFF            |mov     ecx, dword ptr [ebp-340]
00439049  |.  E8 32B1FCFF              |call    00404180
0043904E  |.  50                       |push    eax
0043904F  |.  8D4D C4                  |lea     ecx, dword ptr [ebp-3C]
00439052  |.  51                       |push    ecx
00439053  |.  E8 FB000800              |call    004B9153
00439058  |.  83C4 0C                  |add     esp, 0C
0043905B  |.  C645 FC 15               |mov     byte ptr [ebp-4], 15
0043905F  |.  8D8D 60FDFFFF            |lea     ecx, dword ptr [ebp-2A0]
00439065  |.  E8 39770800              |call    004C07A3
0043906A  |.  EB 63                    |jmp     short 004390CF
0043906C  |>  8B95 48FDFFFF            |mov     edx, dword ptr [ebp-2B8]
00439072  |.  A1 50875D00              |mov     eax, dword ptr [5D8750]
00439077  |.  2B82 101E0B00            |sub     eax, dword ptr [edx+B1E10]
0043907D  |.  50                       |push    eax
0043907E  |.  68 95030000              |push    395                                  ; /Arg2 = 00000395
00439083  |.  8D8D 5CFDFFFF            |lea     ecx, dword ptr [ebp-2A4]             ; |
00439089  |.  51                       |push    ecx                                  ; |Arg1
0043908A  |.  E8 3E400000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
0043908F  |.  83C4 08                  |add     esp, 8
00439092  |.  8985 BCFCFFFF            |mov     dword ptr [ebp-344], eax
00439098  |.  8B95 BCFCFFFF            |mov     edx, dword ptr [ebp-344]
0043909E  |.  8995 B8FCFFFF            |mov     dword ptr [ebp-348], edx
004390A4  |.  C645 FC 17               |mov     byte ptr [ebp-4], 17
004390A8  |.  8B8D B8FCFFFF            |mov     ecx, dword ptr [ebp-348]
004390AE  |.  E8 CDB0FCFF              |call    00404180
004390B3  |.  50                       |push    eax
004390B4  |.  8D45 C4                  |lea     eax, dword ptr [ebp-3C]
004390B7  |.  50                       |push    eax
004390B8  |.  E8 96000800              |call    004B9153
004390BD  |.  83C4 0C                  |add     esp, 0C
004390C0  |.  C645 FC 15               |mov     byte ptr [ebp-4], 15
004390C4  |.  8D8D 5CFDFFFF            |lea     ecx, dword ptr [ebp-2A4]
004390CA  |.  E8 D4760800              |call    004C07A3
004390CF  |>  6A 40                    |push    40
004390D1  |.  68 51030000              |push    351                                  ; /Arg2 = 00000351
004390D6  |.  8D8D 58FDFFFF            |lea     ecx, dword ptr [ebp-2A8]             ; |
004390DC  |.  51                       |push    ecx                                  ; |Arg1
004390DD  |.  E8 EB3F0000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
004390E2  |.  83C4 08                  |add     esp, 8
004390E5  |.  8985 B4FCFFFF            |mov     dword ptr [ebp-34C], eax
004390EB  |.  8B95 B4FCFFFF            |mov     edx, dword ptr [ebp-34C]
004390F1  |.  8995 B0FCFFFF            |mov     dword ptr [ebp-350], edx
004390F7  |.  C645 FC 18               |mov     byte ptr [ebp-4], 18
004390FB  |.  8B8D B0FCFFFF            |mov     ecx, dword ptr [ebp-350]
00439101  |.  E8 7AB0FCFF              |call    00404180
00439106  |.  50                       |push    eax
00439107  |.  8D4D C4                  |lea     ecx, dword ptr [ebp-3C]
0043910A  |.  E8 71B0FCFF              |call    00404180
0043910F  |.  50                       |push    eax                                  ; |Text
00439110  |.  6A 00                    |push    0                                    ; |hOwner = NULL
00439112  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
00439118  |.  C645 FC 15               |mov     byte ptr [ebp-4], 15
0043911C  |.  8D8D 58FDFFFF            |lea     ecx, dword ptr [ebp-2A8]
00439122  |.  E8 7C760800              |call    004C07A3
00439127  |.  C645 FC 06               |mov     byte ptr [ebp-4], 6
0043912B  |.  8D4D C4                  |lea     ecx, dword ptr [ebp-3C]
0043912E  |.  E8 70760800              |call    004C07A3
00439133  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
0043913A  |.  8D8D 10FFFFFF            |lea     ecx, dword ptr [ebp-F0]
00439140  |.  E8 5B44FEFF              |call    0041D5A0
00439145  |.  E9 29020000              |jmp     00439373
0043914A  |>  C785 84FEFFFF 00000000   |mov     dword ptr [ebp-17C], 0
00439154  |.  B9 19000000              |mov     ecx, 19
00439159  |.  33C0                     |xor     eax, eax
0043915B  |.  8DBD 88FEFFFF            |lea     edi, dword ptr [ebp-178]
00439161  |.  F3:AB                    |rep     stos dword ptr es:[edi]
00439163  |.  8D85 84FEFFFF            |lea     eax, dword ptr [ebp-17C]
00439169  |.  50                       |push    eax                                  ; /Arg1
0043916A  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]             ; |
00439170  |.  E8 CA480000              |call    0043DA3F                             ; \SFLiveON.0043DA3F
00439175  |.  85C0                     |test    eax, eax
00439177  |.  75 0C                    |jnz     short 00439185
00439179  |.  C745 E4 01000000         |mov     dword ptr [ebp-1C], 1
00439180  |.^ E9 18F9FFFF              |jmp     00438A9D
00439185  |>  8D8D 88FEFFFF            |lea     ecx, dword ptr [ebp-178]
0043918B  |.  51                       |push    ecx
0043918C  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]
00439192  |.  81C1 781B0C00            |add     ecx, 0C1B78
00439198  |.  E8 8F770800              |call    004C092C
0043919D  |.  C785 ECFEFFFF 00000000   |mov     dword ptr [ebp-114], 0
004391A7  |.  B9 06000000              |mov     ecx, 6
004391AC  |.  33C0                     |xor     eax, eax
004391AE  |.  8DBD F0FEFFFF            |lea     edi, dword ptr [ebp-110]
004391B4  |.  F3:AB                    |rep     stos dword ptr es:[edi]
004391B6  |.  8D95 ECFEFFFF            |lea     edx, dword ptr [ebp-114]
004391BC  |.  52                       |push    edx                                  ; /Arg2
004391BD  |.  8D85 88FEFFFF            |lea     eax, dword ptr [ebp-178]             ; |
004391C3  |.  50                       |push    eax                                  ; |Arg1
004391C4  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]             ; |
004391CA  |.  E8 A8450000              |call    0043D777                             ; \SFLiveON.0043D777
004391CF  |.  85C0                     |test    eax, eax
004391D1  |.  75 0C                    |jnz     short 004391DF
004391D3  |.  C745 E4 01000000         |mov     dword ptr [ebp-1C], 1
004391DA  |.^ E9 BEF8FFFF              |jmp     00438A9D
004391DF  |>  83BD ECFEFFFF 0A         |cmp     dword ptr [ebp-114], 0A
004391E6  |.  74 0C                    |je      short 004391F4
004391E8  |.  C745 E4 01000000         |mov     dword ptr [ebp-1C], 1
004391EF  |.^ E9 A9F8FFFF              |jmp     00438A9D
004391F4  |>  8B8D F4FEFFFF            |mov     ecx, dword ptr [ebp-10C]
004391FA  |.  F7D9                     |neg     ecx
004391FC  |.  1BC9                     |sbb     ecx, ecx
004391FE  |.  83E1 FE                  |and     ecx, FFFFFFFE
00439201  |.  83C1 02                  |add     ecx, 2
00439204  |.  890D 60875D00            |mov     dword ptr [5D8760], ecx
0043920A  |.  8B95 00FFFFFF            |mov     edx, dword ptr [ebp-100]
00439210  |.  8915 58875D00            |mov     dword ptr [5D8758], edx
00439216  |.  8B85 FCFEFFFF            |mov     eax, dword ptr [ebp-104]
0043921C  |.  A3 48875D00              |mov     dword ptr [5D8748], eax
00439221  |.  8B8D 04FFFFFF            |mov     ecx, dword ptr [ebp-FC]
00439227  |.  890D 50875D00            |mov     dword ptr [5D8750], ecx
0043922D  |.  8B95 F8FEFFFF            |mov     edx, dword ptr [ebp-108]
00439233  |.  8915 4C875D00            |mov     dword ptr [5D874C], edx
00439239  |.  833D 54875D00 00         |cmp     dword ptr [5D8754], 0
00439240  |.  0F85 2D010000            |jnz     00439373
00439246  |.  8B8D 48FDFFFF            |mov     ecx, dword ptr [ebp-2B8]
0043924C  |.  E8 DD3A0000              |call    0043CD2E
00439251  |.  85C0                     |test    eax, eax
00439253  |.  0F85 A6000000            |jnz     004392FF
00439259  |.  6A 10                    |push    10
0043925B  |.  68 FC000000              |push    0FC                                  ; /Arg2 = 000000FC
00439260  |.  8D85 54FDFFFF            |lea     eax, dword ptr [ebp-2AC]             ; |
00439266  |.  50                       |push    eax                                  ; |Arg1
00439267  |.  E8 613E0000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
0043926C  |.  83C4 08                  |add     esp, 8
0043926F  |.  8985 ACFCFFFF            |mov     dword ptr [ebp-354], eax
00439275  |.  8B8D ACFCFFFF            |mov     ecx, dword ptr [ebp-354]
0043927B  |.  898D A8FCFFFF            |mov     dword ptr [ebp-358], ecx
00439281  |.  C745 FC 19000000         |mov     dword ptr [ebp-4], 19
00439288  |.  8B8D A8FCFFFF            |mov     ecx, dword ptr [ebp-358]
0043928E  |.  E8 EDAEFCFF              |call    00404180
00439293  |.  50                       |push    eax
00439294  |.  68 FB000000              |push    0FB                                  ; /Arg2 = 000000FB
00439299  |.  8D95 50FDFFFF            |lea     edx, dword ptr [ebp-2B0]             ; |
0043929F  |.  52                       |push    edx                                  ; |Arg1
004392A0  |.  E8 283E0000              |call    0043D0CD                             ; \SFLiveON.0043D0CD
004392A5  |.  83C4 08                  |add     esp, 8
004392A8  |.  8985 A4FCFFFF            |mov     dword ptr [ebp-35C], eax
004392AE  |.  8B85 A4FCFFFF            |mov     eax, dword ptr [ebp-35C]
004392B4  |.  8985 A0FCFFFF            |mov     dword ptr [ebp-360], eax
004392BA  |.  C645 FC 1A               |mov     byte ptr [ebp-4], 1A
004392BE  |.  8B8D A0FCFFFF            |mov     ecx, dword ptr [ebp-360]
004392C4  |.  E8 B7AEFCFF              |call    00404180
004392C9  |.  50                       |push    eax                                  ; |Text
004392CA  |.  6A 00                    |push    0                                    ; |hOwner = NULL
004392CC  |.  FF15 C0664E00            |call    dword ptr [<&USER32.MessageBoxA>]    ; \MessageBoxA
004392D2  |.  C645 FC 19               |mov     byte ptr [ebp-4], 19
004392D6  |.  8D8D 50FDFFFF            |lea     ecx, dword ptr [ebp-2B0]
004392DC  |.  E8 C2740800              |call    004C07A3
004392E1  |.  C745 FC FFFFFFFF         |mov     dword ptr [ebp-4], -1
004392E8  |.  8D8D 54FDFFFF            |lea     ecx, dword ptr [ebp-2AC]
004392EE  |.  E8 B0740800              |call    004C07A3
004392F3  |.  C745 E4 01000000         |mov     dword ptr [ebp-1C], 1
004392FA  |.^ E9 9EF7FFFF              \jmp     00438A9D
004392FF  |>  6A 00                    push    0                                     ; /Arg1 = 00000000
00439301  |.  8D8D D0FDFFFF            lea     ecx, dword ptr [ebp-230]              ; |
00439307  |.  E8 343AFEFF              call    0041CD40                              ; \SFLiveON.0041CD40
0043930C  |.  C745 FC 1B000000         mov     dword ptr [ebp-4], 1B
00439313  |.  68 5CB35000              push    0050B35C                              ;  ASCII

"http://www.kuihua.net/productonline/index.html"
00439318  |.  8D8D 3CFEFFFF            lea     ecx, dword ptr [ebp-1C4]
0043931E  |.  E8 09760800              call    004C092C
00439323  |.  C785 30FEFFFF 01000000   mov     dword ptr [ebp-1D0], 1
0043932D  |.  8D8D D0FDFFFF            lea     ecx, dword ptr [ebp-230]
00439333  |.  E8 66320800              call    004BC59E
00439338  |.  83F8 01                  cmp     eax, 1
0043933B  |.  74 24                    je      short 00439361
0043933D  |.  C785 4CFDFFFF 00000000   mov     dword ptr [ebp-2B4], 0
00439347  |.  C745 FC FFFFFFFF         mov     dword ptr [ebp-4], -1
0043934E  |.  8D8D D0FDFFFF            lea     ecx, dword ptr [ebp-230]
00439354  |.  E8 4742FEFF              call    0041D5A0
00439359  |.  8B85 4CFDFFFF            mov     eax, dword ptr [ebp-2B4]
0043935F  |.  EB 17                    jmp     short 00439378
00439361  |>  C745 FC FFFFFFFF         mov     dword ptr [ebp-4], -1
00439368  |.  8D8D D0FDFFFF            lea     ecx, dword ptr [ebp-230]
0043936E  |.  E8 2D42FEFF              call    0041D5A0
00439373  |>  B8 01000000              mov     eax, 1                                ; 由此向上找
00439378  |>  8B4D F4                  mov     ecx, dword ptr [ebp-C]
0043937B  |.  64:890D 00000000         mov     dword ptr fs:[0], ecx
00439382  |.  5F                       pop     edi
00439383  |.  8BE5                     mov     esp, ebp
00439385  |.  5D                       pop     ebp
00439386  \.  C3                       retn
-----------------------------------------------------------
    向上检查,在00438AED处下断点。00438B3F处的CALL是注册检测过程,进去一看,好多垃圾算法,好像还有花指令,白白浪费我一天时间

。算啦!爆破吧!先找爆破点。调试过程发现注册过程是在这段程序的中间进入的,我们下的断点就是最远处,好象由00438AE8处的CALL中返

回的。因无关紧要,我也没深究。向下改动跳转到00439112的信息框,出现“感谢您体验(评估)葵花软件,你可以评估 00 天。”,点确定

后程序启动。本来以为大功告成,可查看帮助文件后发现程序界面有很大不同:菜单栏缺“直播频道管理”,工具栏有几个灰按钮,左侧和下

方也不同。重启后,注册对话框依然出现,但序列号输入框消失,点确定后,程序界面依然不同。看来爆破点没有找对!
    为了检查程序的启动过程,必须提前下断。每次改动004D8542处的跳转就不得不做。哈哈!在此之前,程序就调用上面这段程序,而且由

入口处进入。在00438AE8处的CALL里调用自校验。而且两次调用后并不返回程序就出现注册对话框。点退出后才返回下一行00438AED处。这也

是我们填入任意码点确定时返回的地方啊!仔细观察流程走向,发现出口的eax=0,出了这段程序后,再继续运行就Game Over了。再看看我们

注册改动后,能运行起程序的出口eax=1。好啦!检查这段程序的出口值,只有两个,正确值是1。那为什么我们上面改动后,也是1,出去也有

问题呢?原因是岔路太多,我们走的可能不是一条平坦的大道啊!
    现在,就让我们来寻找一条平坦的光明大道吧!由00439373处为基点,向上查找。凡能到这里的,都是我们欢迎的,但到底是那条呢?先

把它们都记下来,看一下程序的正常流程走向,到底卡在哪里?!重新启动程序后,发现00438AA4处的跳转直指正确出口,但却没有实现。有

障碍就得踢开,改动这里,直接跳到正确出口(eax=1),再按F9,哇!程序不但运行起来,而且界面和帮助文件里的几乎一模一样,就是程序

标题里还有“试用版”三字。我找了一下没找到改的地方,再查“关于”对话框,时间赫然停留在30天,竟然连时间限制也破了!也算是歪打

正着吧。试用就试用吧,就让它永远还有30天,反正试用期是没啥限制的!若是那位大侠路过看见,取掉这三个字,那就更完美了。
4.0  整理:
    好了,在OD中改好,右键——复制到可执行文件——所有修改——全部复制,在弹出窗口中,右键——保存文件——换名——保存。
    OK!大功告成!半个字节解决战斗,收工!
--------------------------------------------------------------------------------
【经验总结】
    这是菜鸟成长的第三篇破文。破解工作虽然繁琐重复,有时还会碰得焦头烂额,但只要理出头绪来,还是会发现问题的症结所在的,关键

要有恒心和毅力。单步跟踪法对付这种利用自校验来反调试的做法,尽管比较笨拙,但还是有效的。分析关键流程的走向,是十分重要的,这

关系到能否找出关键跳转。一点体会,愿与大家分享,方家莫要见笑!

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                              2007.11.30

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 47147
活跃值: (20380)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
感谢你愿意与大家分享

不过,最近论坛刚出了一规定就是少讨论国产软件,这对论坛和个人都有好处。
希望你能理解。
看雪论坛对于所涉及到目标软件的管理2007.10.15
2007-11-30 21:46
0
游客
登录 | 注册 方可回帖
返回
//