首页
社区
课程
招聘
[原创]Quick Budget V1.14注册算法简单分析
发表于: 2008-8-29 17:56 6854

[原创]Quick Budget V1.14注册算法简单分析

2008-8-29 17:56
6854

【文章标题】: Quick Budget V1.14注册算法简单分析
【文章作者】: 蚊香
【作者邮箱】: xpi386com@gmail.com
【作者主页】: 95aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2H3K9e0x3^5y4W2)9J5k6h3y4G2L8b7`.`.
【下载地址】: 140K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3A6#2M7%4c8S2M7s2m8K6i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6I4N6h3W2U0K9$3u0#2k6r3N6W2N6q4)9#2k6Y4y4W2N6s2g2H3i4K6u0W2k6i4S2W2
【保护方式】: 用户名 + 注册码
【使用工具】: OD,计算器
【操作平台】: D版XP-SP3
【软件介绍】: 是一款快速预算财政的软件.
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  下载安装,试注册,有弹框错误提示.于是首先想到用F12暂停查看堆栈调用的方法,,很快可以定位到关键.
  为方便说明,假注册时统一使用用户名'abcde'和假码'123456789'.出现的计算数字均为16进制形式.  
  

00690804  /.  55            push    ebp                            ;  F2下断,F9运行,F8单步往下。
  00690805  |.  8BEC          mov     ebp, esp
  00690807  |.  81C4 ECFEFFFF add     esp, -114
  0069080D  |.  53            push    ebx
  0069080E  |.  33C9          xor     ecx, ecx
  00690810  |.  898D ECFEFFFF mov     dword ptr [ebp-114], ecx
  00690816  |.  898D F4FEFFFF mov     dword ptr [ebp-10C], ecx
  0069081C  |.  898D F0FEFFFF mov     dword ptr [ebp-110], ecx
  00690822  |.  894D FC       mov     dword ptr [ebp-4], ecx
  00690825  |.  894D F8       mov     dword ptr [ebp-8], ecx
  00690828  |.  8BD8          mov     ebx, eax
  0069082A  |.  33C0          xor     eax, eax
  0069082C  |.  55            push    ebp
  0069082D  |.  68 8B096900   push    0069098B
  00690832  |.  64:FF30       push    dword ptr fs:[eax]
  00690835  |.  64:8920       mov     dword ptr fs:[eax], esp
  00690838  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
  0069083B  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
  00690841  |.  E8 CEFDDDFF   call    00470614                       ;  用户名
  00690846  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
  00690849  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
  0069084C  |.  E8 7B95D7FF   call    00409DCC
  00690851  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
  00690854  |.  A1 A4EC6900   mov     eax, dword ptr [69ECA4]
  00690859  |.  E8 2247D7FF   call    00404F80
  0069085E  |.  8D95 F0FEFFFF lea     edx, dword ptr [ebp-110]
  00690864  |.  8B83 00030000 mov     eax, dword ptr [ebx+300]
  0069086A  |.  E8 A5FDDDFF   call    00470614                       ;  假码
  0069086F  |.  8B85 F0FEFFFF mov     eax, dword ptr [ebp-110]
  00690875  |.  8D95 F4FEFFFF lea     edx, dword ptr [ebp-10C]
  0069087B  |.  E8 4C95D7FF   call    00409DCC
  00690880  |.  8B95 F4FEFFFF mov     edx, dword ptr [ebp-10C]
  00690886  |.  8D85 F8FEFFFF lea     eax, dword ptr [ebp-108]
  0069088C  |.  B9 FF000000   mov     ecx, 0FF                       ;  ? 不知道1
  00690891  |.  E8 3249D7FF   call    004051C8
  00690896  |.  8D95 F8FEFFFF lea     edx, dword ptr [ebp-108]
  0069089C  |.  A1 24F36900   mov     eax, dword ptr [69F324]
  006908A1  |.  B1 1E         mov     cl, 1E                         ;  ? 不知道2
  006908A3  |.  E8 C02DD7FF   call    00403668                       ;  不知道上面两个mov是干什么的 ???
  006908A8  |.  68 62040000   push    462                            ;  后面表现英勇的常数462压栈
  006908AD  |.  8D85 ECFEFFFF lea     eax, dword ptr [ebp-114]
  006908B3  |.  8B15 24F36900 mov     edx, dword ptr [69F324]        ;  QuickBud.006A2B14
  006908B9  |.  E8 D248D7FF   call    00405190
  006908BE  |.  8B8D ECFEFFFF mov     ecx, dword ptr [ebp-114]
  006908C4  |.  8B15 A4EC6900 mov     edx, dword ptr [69ECA4]        ;  QuickBud.006A2B0C
  006908CA  |.  8B12          mov     edx, dword ptr [edx]
  006908CC  |.  A1 20ED6900   mov     eax, dword ptr [69ED20]
  006908D1  |.  8B00          mov     eax, dword ptr [eax]
  006908D3  |.  8B80 A8030000 mov     eax, dword ptr [eax+3A8]
  006908D9  |.  E8 DACCE4FF   call    004DD5B8                       ;  关键CALL,F7进
  006908DE  |.  84C0          test    al, al
  006908E0  |.  75 29         jnz     short 0069090B                 ;  关键跳转
  006908E2  |.  6A 00         push    0
  006908E4  |.  66:8B0D 98096>mov     cx, word ptr [690998]
  006908EB  |.  B2 01         mov     dl, 1
  006908ED  |.  B8 A4096900   mov     eax, 006909A4                  ;  ASCII "The Registration Code that you provided does not",CR,"match the Name entered."
  006908F2  |.  E8 09C1DAFF   call    0043CA00
  006908F7  |.  48            dec     eax
  006908F8  |.  75 52         jnz     short 0069094C
  006908FA  |.  A1 2C2D6A00   mov     eax, dword ptr [6A2D2C]
  006908FF  |.  C780 4C020000>mov     dword ptr [eax+24C], 1
  00690909  |.  EB 41         jmp     short 0069094C
  0069090B  |>  803D 302D6A00>cmp     byte ptr [6A2D30], 0
  00690912  |.  75 29         jnz     short 0069093D
  00690914  |.  6A 00         push    0
  00690916  |.  66:8B0D 98096>mov     cx, word ptr [690998]
  0069091D  |.  B2 03         mov     dl, 3
  0069091F  |.  B8 F8096900   mov     eax, 006909F8                  ;  ASCII "Thank you for Registering Quick Budget."
  00690924  |.  E8 D7C0DAFF   call    0043CA00
  00690929  |.  48            dec     eax
  0069092A  |.  75 20         jnz     short 0069094C
  0069092C  |.  A1 2C2D6A00   mov     eax, dword ptr [6A2D2C]
  00690931  |.  C780 4C020000>mov     dword ptr [eax+24C], 1
  0069093B  |.  EB 0F         jmp     short 0069094C
  0069093D  |>  A1 2C2D6A00   mov     eax, dword ptr [6A2D2C]
  00690942  |.  C780 4C020000>mov     dword ptr [eax+24C], 1
  0069094C  |>  33C0          xor     eax, eax
  0069094E  |.  5A            pop     edx
  0069094F  |.  59            pop     ecx
  00690950  |.  59            pop     ecx
  00690951  |.  64:8910       mov     dword ptr fs:[eax], edx
  00690954  |.  68 92096900   push    00690992
  00690959  |>  8D85 ECFEFFFF lea     eax, dword ptr [ebp-114]
  0069095F  |.  E8 C845D7FF   call    00404F2C
  00690964  |.  8D85 F0FEFFFF lea     eax, dword ptr [ebp-110]
  0069096A  |.  E8 BD45D7FF   call    00404F2C
  0069096F  |.  8D85 F4FEFFFF lea     eax, dword ptr [ebp-10C]
  00690975  |.  E8 B245D7FF   call    00404F2C
  0069097A  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
  0069097D  |.  E8 AA45D7FF   call    00404F2C
  00690982  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
  00690985  |.  E8 A245D7FF   call    00404F2C
  0069098A  \.  C3            retn
  0069098B   .^ E9 D43ED7FF   jmp     00404864
  00690990   .^ EB C7         jmp     short 00690959
  00690992   .  5B            pop     ebx
  00690993   .  8BE5          mov     esp, ebp
  00690995   .  5D            pop     ebp
  00690996   .  C3            retn
004DD5B8  /$  55            push    ebp
  004DD5B9  |.  8BEC          mov     ebp, esp
  004DD5BB  |.  83C4 F4       add     esp, -0C
  004DD5BE  |.  53            push    ebx
  004DD5BF  |.  56            push    esi
  004DD5C0  |.  57            push    edi
  004DD5C1  |.  33DB          xor     ebx, ebx
  004DD5C3  |.  895D F4       mov     dword ptr [ebp-C], ebx
  004DD5C6  |.  894D F8       mov     dword ptr [ebp-8], ecx
  004DD5C9  |.  8955 FC       mov     dword ptr [ebp-4], edx
  004DD5CC  |.  8BF8          mov     edi, eax
  004DD5CE  |.  8B75 08       mov     esi, dword ptr [ebp+8]         ;  ESI=常数462
  004DD5D1  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  004DD5D4  |.  E8 037EF2FF   call    004053DC
  004DD5D9  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
  004DD5DC  |.  E8 FB7DF2FF   call    004053DC
  004DD5E1  |.  33C0          xor     eax, eax
  004DD5E3  |.  55            push    ebp
  004DD5E4  |.  68 37D64D00   push    004DD637
  004DD5E9  |.  64:FF30       push    dword ptr fs:[eax]
  004DD5EC  |.  64:8920       mov     dword ptr fs:[eax], esp
  004DD5EF  |.  33DB          xor     ebx, ebx
  004DD5F1  |.  837D FC 00    cmp     dword ptr [ebp-4], 0
  004DD5F5  |.  74 25         je      short 004DD61C
  004DD5F7  |.  85F6          test    esi, esi
  004DD5F9  |.  74 21         je      short 004DD61C
  004DD5FB  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
  004DD5FE  |.  50            push    eax
  004DD5FF  |.  8BCE          mov     ecx, esi
  004DD601  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
  004DD604  |.  8BC7          mov     eax, edi
  004DD606  |.  E8 8DFEFFFF   call    004DD498                       ;  经过此CALL后真码现身,F7进
  004DD60B  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
  004DD60E  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
  004DD611  |.  E8 9EF1FFFF   call    004DC7B4                       ;  真假码比较
  004DD616  |.  84C0          test    al, al
  004DD618  |.  74 02         je      short 004DD61C                 ;  关键跳转
  004DD61A  |.  B3 01         mov     bl, 1                          ;  关键赋值
  004DD61C  |>  33C0          xor     eax, eax
  004DD61E  |.  5A            pop     edx
  004DD61F  |.  59            pop     ecx
  004DD620  |.  59            pop     ecx
  004DD621  |.  64:8910       mov     dword ptr fs:[eax], edx
  004DD624  |.  68 3ED64D00   push    004DD63E
  004DD629  |>  8D45 F4       lea     eax, dword ptr [ebp-C]
  004DD62C  |.  BA 03000000   mov     edx, 3
  004DD631  |.  E8 1A79F2FF   call    00404F50
  004DD636  \.  C3            retn
  004DD637   .^ E9 2872F2FF   jmp     00404864
  004DD63C   .^ EB EB         jmp     short 004DD629
  004DD63E   .  8BC3          mov     eax, ebx                       ;  关键传递
  004DD640   .  5F            pop     edi
  004DD641   .  5E            pop     esi
  004DD642   .  5B            pop     ebx
  004DD643   .  8BE5          mov     esp, ebp
  004DD645   .  5D            pop     ebp
  004DD646   .  C2 0400       retn    4

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

收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 106821
活跃值: (202484)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
support.
2008-8-29 21:11
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
算法分析很清晰,学习一下。
2008-8-30 00:39
0
雪    币: 371
活跃值: (67)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
谢谢,很适合我这种没有破解过一个软件的菜鸟,边自己破解,边对照学习.^_^
2008-8-30 08:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恩.不错.......正找不到这类文章看....非常感谢
2008-8-30 08:09
0
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
6
蚊香MM的极品算法,学习!
2008-8-30 21:32
0
游客
登录 | 注册 方可回帖
返回