飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2189|回复: 0

maomaoma申请加入PYG破文之二

[复制链接]
  • TA的每日心情
    擦汗
    2024-10-29 12:21
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2006-12-9 10:16:32 | 显示全部楼层 |阅读模式
    【破文标题】菜鸟maomaoma的算法练习破文二
    【破文作者】maomaoma
    【作者邮箱】
    【作者主页】无
    破解工具】OD、PEiD
    【破解平台】winxp
    【软件名称】AD Sound Recorder 2.5
    【软件大小】820KB
    【原版下载】http://86516.onlinedown.net/soft/49157.htm
    【保护方式】无
    【软件简介】AD Sound Recorder 是一款音频录音工具,它可以录制由麦克风、CD、互联网,以及由媒体播放软件播放的音频。它可以即时捕捉正在播放的声音并把音频录制为 WAV/MP3 文件。支持 WAV、MP3 或 WMA 回放的功能,可编辑 MP3 文件的 ID3 标记。
    【破解声明】我是菜鸟,学写破文,还请大侠多多指教:)

    ------------------------------------------------------------------------
    【破解过程】

    1、PEiD查主程序无壳(暗自高兴:)),Borland Delphi 6.0 - 7.0编译
    2、OD载入,根据注册错误提示字符串“incorrect code!”下断点
    3、F9运行,输入注册码:1234 5678908576,OD断下
    4、具体分析过程及代码注释如下:

    0049C970  /.  55            push    ebp                              ;  OD断在此处
    0049C971  |.  8BEC          mov     ebp, esp
    0049C973  |.  33C9          xor     ecx, ecx
    0049C975  |.  51            push    ecx
    0049C976  |.  51            push    ecx
    0049C977  |.  51            push    ecx
    0049C978  |.  51            push    ecx
    0049C979  |.  51            push    ecx
    0049C97A  |.  51            push    ecx
    0049C97B  |.  51            push    ecx
    0049C97C  |.  53            push    ebx
    0049C97D  |.  56            push    esi
    0049C97E  |.  57            push    edi
    0049C97F  |.  8945 FC       mov     [ebp-4], eax
    0049C982  |.  33C0          xor     eax, eax
    0049C984  |.  55            push    ebp
    0049C985  |.  68 CACA4900   push    0049CACA
    0049C98A  |.  64:FF30       push    dword ptr fs:[eax]
    0049C98D  |.  64:8920       mov     fs:[eax], esp
    0049C990  |.  68 C8000000   push    0C8                              ; /Timeout = 200. ms
    0049C995  |.  E8 4A11F7FF   call    <jmp.&kernel32.Sleep>            ; \Sleep
    0049C99A  |.  C745 F8 32000>mov     dword ptr [ebp-8], 32
    0049C9A1  |.  BF 28354A00   mov     edi, 004A3528                    ;  ASCII 04,"1297" 真码第一部分表入口
    0049C9A6  |>  8D55 F0       /lea     edx, [ebp-10]
    0049C9A9  |.  8B45 FC       |mov     eax, [ebp-4]
    0049C9AC  |.  8B80 14030000 |mov     eax, [eax+314]
    0049C9B2  |.  E8 49E4FBFF   |call    0045AE00                        ;  获取假码第一部分
    0049C9B7  |.  8B45 F0       |mov     eax, [ebp-10]
    0049C9BA  |.  50            |push    eax
    0049C9BB  |.  8D45 EC       |lea     eax, [ebp-14]
    0049C9BE  |.  8BD7          |mov     edx, edi
    0049C9C0  |.  E8 F77EF6FF   |call    004048BC                        :  注册码第一部分查表
    0049C9C5  |.  8B55 EC       |mov     edx, [ebp-14]   
    0049C9C8  |.  58            |pop     eax
    0049C9C9  |.  E8 9680F6FF   |call    00404A64                        ;  注册码第一部分比较call
    0049C9CE  |.  0F85 92000000 |jnz     0049CA66                        ;  不等则跳
    0049C9D4  |.  BE 32000000   |mov     esi, 32
    0049C9D9  |.  BB 24364A00   |mov     ebx, 004A3624                   ;  真码第二部分表入口\n1157717132\n1275215397\n1566343884\n2565740578\n2662106601\n2691296134\n2891286439\n2976152334\n3129671956\n3215798652\n3310760636\n3408623238\n3613335510\n3613792109\n3682429757\n4137188610\n4342271231\n4576195302\n4794974223\n4866392884\n5488323045 ..
    0049C9DE  |>  8D55 E8       |/lea     edx, [ebp-18]
    0049C9E1  |.  8B45 FC       ||mov     eax, [ebp-4]
    0049C9E4  |.  8B80 18030000 ||mov     eax, [eax+318]
    0049C9EA  |.  E8 11E4FBFF   ||call    0045AE00                       ;  获取假码第二部分
    0049C9EF  |.  8B45 E8       ||mov     eax, [ebp-18]
    0049C9F2  |.  50            ||push    eax
    0049C9F3  |.  8D45 E4       ||lea     eax, [ebp-1C]
    0049C9F6  |.  8BD3          ||mov     edx, ebx
    0049C9F8  |.  E8 BF7EF6FF   ||call    004048BC                       ;  
    0049C9FD  |.  8B55 E4       ||mov     edx, [ebp-1C]
    0049CA00  |.  58            ||pop     eax
    0049CA01  |.  E8 5E80F6FF   ||call    00404A64                       ;  注册码第二部分比较call
    0049CA06  |.  75 54         ||jnz     short 0049CA5C                 ;  不等则跳
    0049CA08  |.  A1 D0384A00   ||mov     eax, [4A38D0]
    0049CA0D  |.  C600 01       ||mov     byte ptr [eax], 1
    0049CA10  |.  A1 DC3A4A00   ||mov     eax, [4A3ADC]
    0049CA15  |.  C700 F6750100 ||mov     dword ptr [eax], 175F6
    0049CA1B  |.  8D45 F4       ||lea     eax, [ebp-C]
    0049CA1E  |.  50            ||push    eax                            ; /pHandle
    0049CA1F  |.  68 06000200   ||push    20006                          ; |Access = KEY_WRITE
    0049CA24  |.  6A 00         ||push    0                              ; |Reserved = 0
    0049CA26  |.  68 D8CA4900   ||push    0049CAD8                       ; |software\adrosoft\ad sound recorder
    0049CA2B  |.  68 01000080   ||push    80000001                       ; |hKey = HKEY_CURRENT_USER
    0049CA30  |.  E8 C79EF6FF   ||call    <jmp.&advapi32.RegOpenKeyExA>  ; \RegOpenKeyExA
    0049CA35  |.  85C0          ||test    eax, eax
    0049CA37  |.  75 63         ||jnz     short 0049CA9C
    0049CA39  |.  6A 04         ||push    4                              ; /BufSize = 4
    0049CA3B  |.  A1 DC3A4A00   ||mov     eax, [4A3ADC]                  ; |
    0049CA40  |.  50            ||push    eax                            ; |Buffer => adsrecor.004A569C
    0049CA41  |.  6A 04         ||push    4                              ; |ValueType = REG_DWORD
    0049CA43  |.  6A 00         ||push    0                              ; |Reserved = 0
    0049CA45  |.  68 FCCA4900   ||push    0049CAFC                       ; |control1
    0049CA4A  |.  8B45 F4       ||mov     eax, [ebp-C]                   ; |
    0049CA4D  |.  50            ||push    eax                            ; |hKey
    0049CA4E  |.  E8 B99EF6FF   ||call    <jmp.&advapi32.RegSetValueExA> ; \RegSetValueExA
    0049CA53  |.  8B45 F4       ||mov     eax, [ebp-C]
    0049CA56  |.  50            ||push    eax                            ; /hKey
    0049CA57  |.  E8 989EF6FF   ||call    <jmp.&advapi32.RegCloseKey>    ; \RegCloseKey
    0049CA5C  |>  83C3 0B       ||add     ebx, 0B
    0049CA5F  |.  4E            ||dec     esi
    0049CA60  |.^ 0F85 78FFFFFF |\jnz     0049C9DE
    0049CA66  |>  83C7 05       |add     edi, 5
    0049CA69  |.  FF4D F8       |dec     dword ptr [ebp-8]
    0049CA6C  |.^ 0F85 34FFFFFF \jnz     0049C9A6
    0049CA72  |.  A1 D0384A00   mov     eax, [4A38D0]
    0049CA77  |.  8038 00       cmp     byte ptr [eax], 0
    0049CA7A  |.  75 0C         jnz     short 0049CA88
    0049CA7C  |.  B8 10CB4900   mov     eax, 0049CB10                    ;  incorrect code!
    0049CA81  |.  E8 3645F9FF   call    00430FBC
    0049CA86  |.  EB 14         jmp     short 0049CA9C
    0049CA88  |>  B8 28CB4900   mov     eax, 0049CB28                    ;  thank you for using our product!\nyou have registered ad sound recorder!
    0049CA8D  |.  E8 2A45F9FF   call    00430FBC
    0049CA92  |.  A1 A0684A00   mov     eax, [4A68A0]
    0049CA97  |.  E8 34AAFDFF   call    004774D0
    0049CA9C  |>  33C0          xor     eax, eax
    0049CA9E  |.  5A            pop     edx
    0049CA9F  |.  59            pop     ecx
    0049CAA0  |.  59            pop     ecx
    0049CAA1  |.  64:8910       mov     fs:[eax], edx
    0049CAA4  |.  68 D1CA4900   push    0049CAD1
    0049CAA9  |>  8D45 E4       lea     eax, [ebp-1C]
    0049CAAC  |.  E8 A77BF6FF   call    00404658
    0049CAB1  |.  8D45 E8       lea     eax, [ebp-18]
    0049CAB4  |.  E8 9F7BF6FF   call    00404658
    0049CAB9  |.  8D45 EC       lea     eax, [ebp-14]
    0049CABC  |.  E8 977BF6FF   call    00404658
    0049CAC1  |.  8D45 F0       lea     eax, [ebp-10]
    0049CAC4  |.  E8 8F7BF6FF   call    00404658
    0049CAC9  \.  C3            retn
    0049CACA   .^ E9 0975F6FF   jmp     00403FD8
    0049CACF   .^ EB D8         jmp     short 0049CAA9
    0049CAD1   .  5F            pop     edi
    0049CAD2   .  5E            pop     esi
    0049CAD3   .  5B            pop     ebx
    0049CAD4   .  8BE5          mov     esp, ebp
    0049CAD6   .  5D            pop     ebp
    0049CAD7   .  C3            retn


    内存中注册码表:
    004A3528  04 31 32 39 37 04 31 33 39 37 04 31 34 36 31 04  129713971461     真码第一部分表
    004A3538  31 35 35 36 04 31 36 31 32 04 32 34 30 37 04 32  1556161224072
    004A3548  34 33 34 04 32 35 30 33 04 32 39 37 36 04 33 31  4342503297631
    004A3558  35 36 04 33 33 34 37 04 33 34 38 37 04 33 36 30  5633473487360
    004A3568  31 04 33 39 33 30 04 34 31 30 35 04 34 31 31 38  1393041054118
    004A3578  04 34 33 35 36 04 34 33 36 33 04 34 34 30 31 04  435643634401
    004A3588  34 35 34 33 04 34 35 35 38 04 34 38 35 32 04 34  4543455848524
    004A3598  39 38 32 04 34 39 39 33 04 35 31 38 36 04 35 33  9824993518653
    004A35A8  37 37 04 35 36 35 34 04 35 36 39 31 04 35 37 39  7756545691579
    004A35B8  37 04 35 38 39 37 04 35 39 37 31 04 36 31 33 30  7589759716130
    004A35C8  04 36 33 31 37 04 36 33 32 33 04 36 33 38 31 04  631763236381
    004A35D8  36 35 35 36 04 36 36 39 37 04 36 37 35 30 04 37  6556669767507
    004A35E8  33 38 33 04 37 36 30 39 04 37 37 31 35 04 37 38  3837609771578
    004A35F8  34 36 04 37 39 32 39 04 38 31 36 30 04 38 38 36  4679298160886
    004A3608  37 04 38 39 38 35 04 39 32 38 37 04 39 33 37 37  7898592879377
    004A3618  04 39 37 34 30 04 39 39 38 32 8B C0 0A 31 31 35  97409982嬂.115     真码第二部分表
    004A3628  37 37 31 37 31 33 32 0A 31 32 37 35 32 31 35 33  7717132.12752153
    004A3638  39 37 0A 31 35 36 36 33 34 33 38 38 34 0A 32 35  97.1566343884.25
    004A3648  36 35 37 34 30 35 37 38 0A 32 36 36 32 31 30 36  65740578.2662106
    004A3658  36 30 31 0A 32 36 39 31 32 39 36 31 33 34 0A 32  601.2691296134.2
    004A3668  38 39 31 32 38 36 34 33 39 0A 32 39 37 36 31 35  891286439.297615
    004A3678  32 33 33 34 0A 33 31 32 39 36 37 31 39 35 36 0A  2334.3129671956.
    004A3688  33 32 31 35 37 39 38 36 35 32 0A 33 33 31 30 37  3215798652.33107
    004A3698  36 30 36 33 36 0A 33 34 30 38 36 32 33 32 33 38  60636.3408623238
    004A36A8  0A 33 36 31 33 33 33 35 35 31 30 0A 33 36 31 33  .3613335510.3613
    004A36B8  37 39 32 31 30 39 0A 33 36 38 32 34 32 39 37 35  792109.368242975
    004A36C8  37 0A 34 31 33 37 31 38 38 36 31 30 0A 34 33 34  7.4137188610.434
    004A36D8  32 32 37 31 32 33 31 0A 34 35 37 36 31 39 35 33  2271231.45761953
    004A36E8  30 32 0A 34 37 39 34 39 37 34 32 32 33 0A 34 38  02.4794974223.48
    004A36F8  36 36 33 39 32 38 38 34 0A 35 34 38 38 33 32 33  66392884.5488323
    004A3708  30 34 35 0A 35 35 37 36 36 34 39 35 33 31 0A 35  045.5576649531.5
    004A3718  37 30 35 39 31 34 39 38 36 0A 35 37 34 32 37 39  705914986.574279
    004A3728  33 36 33 38 0A 35 38 34 33 32 39 36 32 38 30 0A  3638.5843296280.
    004A3738  35 39 31 36 38 35 34 36 36 36 0A 35 39 32 38 37  5916854666.59287
    004A3748  37 37 37 38 32 0A 36 32 33 39 37 33 33 39 35 31  77782.6239733951
    004A3758  0A 36 33 35 34 34 39 33 30 36 32 0A 36 34 34 37  .6354493062.6447
    004A3768  33 34 38 37 38 35 0A 36 34 37 30 36 34 39 36 38  348785.647064968
    004A3778  35 0A 36 38 34 33 30 38 36 31 36 39 0A 37 31 33  5.6843086169.713
    004A3788  37 39 38 32 30 35 30 0A 37 34 30 38 36 38 39 35  7982050.74086895
    004A3798  31 33 0A 37 35 39 30 31 30 30 38 33 31 0A 37 37  13.7590100831.77
    004A37A8  31 32 33 30 32 37 31 32 0A 37 38 30 33 36 35 39  12302712.7803659
    004A37B8  34 35 34 0A 37 38 33 38 33 39 34 33 30 38 0A 37  454.7838394308.7
    004A37C8  38 37 33 32 30 33 34 30 36 0A 38 31 30 30 36 38  873203406.810068
    004A37D8  34 34 30 39 0A 38 35 35 32 30 38 31 30 39 37 0A  4409.8552081097.
    004A37E8  38 35 37 35 31 32 33 34 33 38 0A 38 36 39 32 39  8575123438.86929
    004A37F8  37 33 32 38 38 0A 38 37 32 38 37 30 36 31 32 36  73288.8728706126
    004A3808  0A 39 32 31 31 31 32 33 33 34 38 0A 39 33 37 34  .9211123348.9374
    004A3818  31 30 39 34 30 36 0A 39 35 30 37 33 36 32 39 39  109406.950736299
    004A3828  31 0A 39 36 33 33 37 36 39 31 39 36 0A 39 37 35  1.9633769196.975
    004A3838  35 30 36 36 35 34 34 0A 39 39 33 32 35 37 39 33  5066544.99325793
    004A3848  39 38                                            98



    ------------------------------------------------------------------------
    【破解总结】

    1、注册码以表的形式储存于内存中
    2、明码比较
    3、两表中注册码任意两两组合即可得到一组可用注册码

    一组可用注册码:
    注册码第一部分:1297
    注册码第二部分:1157717132
    ------------------------------------------------------------------------
    【版权声明】本文系作者原创, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表