飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2238|回复: 0

申请加入PYG第二篇破文

[复制链接]

该用户从未签到

发表于 2006-4-4 11:25:41 | 显示全部楼层 |阅读模式
【破文标题】申请加入PYG第二篇破文
【破文作者】Fantasy
【作者邮箱】[email protected]
破解工具】peid0.94, OD1.1
【破解平台】winxp sp2
【软件名称】百科知识竞赛
【软件大小】1744KB
【原版下载】http://www.fuzi.cn/
------------------------------------------------------------------------
【软件简介】
   〖百科知识竞赛〗软件是一款模拟中央电视台“开心辞典”答题形式的软件。
    软件集趣味性、知识性于一体。除了可以实现家庭式答题外,还可以网上答题。
    软件还自带了丰富的“你知道吗?”知识库及“脑筋急转弯”训练题库。
    软件还支持随时从网上提取开心问答题库。
    软件功能强大,随时升级,随时添加丰富题库,谢谢你的使用。任何问题请与作者联系。
    软件绿色、环保、小巧、功能强大、可完全卸载,放心使用。
    升级:增加网上题库查阅功能。共47期节目。
    升级:修正软件外壳,功能更全面、更安全。
    升级:增加并修正部分题库。
------------------------------------------------------------------------
【破解声明】仅供学习和交流,没有其他目的。本人菜鸟一个,失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】
首先peid 查壳显示Borland Delphi 6.0 - 7.0 ,无壳
OD载入,运行程序,输入信息:
确认码:747474
注册码:123456
字符插件查找错误提示:你填写的注册吗错误!
双击来到

005377BD  |> \B8 F0785300   mov     eax, 005378F0                    ;  你填写的注册码错误,请重新核对准确。\n\n如果你是软件注册用户,请与作者联系。

向上查找关键跳转

00537602  |.  55            push    ebp
00537603  |.  68 4C785300   push    0053784C
00537608  |.  64:FF30       push    dword ptr fs:[eax]
0053760B  |.  64:8920       mov     fs:[eax], esp
0053760E  |.  68 80000000   push    80                               ; /BufSize = 80 (128.)
00537613  |.  8D85 7BFFFFFF lea     eax, [ebp-85]                    ; |
00537619  |.  50            push    eax                              ; |Buffer
0053761A  |.  E8 BDFAECFF   call    <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
0053761F  |.  8D45 FC       lea     eax, [ebp-4]
00537622  |.  8D95 7BFFFFFF lea     edx, [ebp-85]
00537628  |.  B9 81000000   mov     ecx, 81
0053762D  |.  E8 1AD4ECFF   call    00404A4C
00537632  |.  8D95 74FFFFFF lea     edx, [ebp-8C]
00537638  |.  8B83 FC020000 mov     eax, [ebx+2FC]
0053763E  |.  E8 79E9F0FF   call    00445FBC
00537643  |.  83BD 74FFFFFF>cmp     dword ptr [ebp-8C], 0            ;把确认吗与0比较
0053764A  |.  74 1A         je      short 00537666                   ;没填就跳
0053764C  |.  8D95 70FFFFFF lea     edx, [ebp-90]
00537652  |.  8B83 04030000 mov     eax, [ebx+304]
00537658  |.  E8 5FE9F0FF   call    00445FBC
0053765D  |.  83BD 70FFFFFF>cmp     dword ptr [ebp-90], 0            ;把注册吗与0比较
00537664  |.  75 0F         jnz     short 00537675                   ;填了就跳到下面计算
00537666  |>  B8 64785300   mov     eax, 00537864                    ;  注册信息没有填写完毕!
0053766B  |.  E8 407BF0FF   call    0043F1B0
00537670  |.  E9 5F010000   jmp     005377D4
00537675  |>  8D95 6CFFFFFF lea     edx, [ebp-94]
0053767B  |.  8B83 04030000 mov     eax, [ebx+304]
00537681  |.  E8 36E9F0FF   call    00445FBC
00537686  |.  8B85 6CFFFFFF mov     eax, [ebp-94]
0053768C  |.  50            push    eax
0053768D  |.  8D95 64FFFFFF lea     edx, [ebp-9C]
00537693  |.  8B83 FC020000 mov     eax, [ebx+2FC]
00537699  |.  E8 1EE9F0FF   call    00445FBC
0053769E  |.  8B85 64FFFFFF mov     eax, [ebp-9C]                    ;  把 确认吗 放到eax
005376A4  |.  E8 4F1DEDFF   call    004093F8                        
005376A9  |.  B9 77070000   mov     ecx, 777
005376AE  |.  99            cdq
005376AF  |.  F7F9          idiv    ecx
005376B1  |.  8BC2          mov     eax, edx                         ;  把 确认马 放到eax
005376B3  |.  8D95 68FFFFFF lea     edx, [ebp-98]
005376B9  |.  E8 D61CEDFF   call    00409394
005376BE  |.  8D85 68FFFFFF lea     eax, [ebp-98]
005376C4  |.  50            push    eax
005376C5  |.  8D95 58FFFFFF lea     edx, [ebp-A8]
005376CB  |.  8B83 FC020000 mov     eax, [ebx+2FC]
005376D1  |.  E8 E6E8F0FF   call    00445FBC
005376D6  |.  8B85 58FFFFFF mov     eax, [ebp-A8]
005376DC  |.  E8 171DEDFF   call    004093F8
005376E1  |.  8D95 5CFFFFFF lea     edx, [ebp-A4]
005376E7  |.  E8 2CFCFFFF   call    00537318                         ;  算法call1
005376EC  |.  8B85 5CFFFFFF mov     eax, [ebp-A4]
005376F2  |.  E8 011DEDFF   call    004093F8
005376F7  |.  8D95 60FFFFFF lea     edx, [ebp-A0]
005376FD  |.  E8 F6FCFFFF   call    005373F8                         ;  算法call2
00537702  |.  8B95 60FFFFFF mov     edx, [ebp-A0]
00537708  |.  58            pop     eax
00537709  |.  E8 96D3ECFF   call    00404AA4                         ;  算法call3
0053770E  |.  8B95 68FFFFFF mov     edx, [ebp-98]
00537714  |.  58            pop     eax
00537715  |.  E8 C6D4ECFF   call    00404BE0                         ;  比较call
0053771A  |.  0F85 9D000000 jnz     005377BD                         ;  关键跳转 跳就死
00537720  |.  B8 84785300   mov     eax, 00537884                    ;  注册成功,谢谢您的注册!
00537725  |.  E8 867AF0FF   call    0043F1B0
0053772A  |.  8BC3          mov     eax, ebx
0053772C  |.  E8 77C1F2FF   call    004638A8
00537731  |.  A1 18CF5300   mov     eax, [53CF18]
00537736  |.  8B00          mov     eax, [eax]
00537738  |.  8B80 B4030000 mov     eax, [eax+3B4]
0053773E  |.  BA A8785300   mov     edx, 005378A8                    ;  软件已注册

我们在00537715处下断,F9运行
断下,在edx可以看到真码,eax是刚才输入的假码

【算法总结】
具体算法我跟了一下,好象不怎么清楚,请高手指点。大概是

确认码 xor 0b25f1=结果1->在经过处理又加上了2位=结果2(具体不知道:(,请高手指点)
结果2  xor ddfb7687=结果3->经过处理=结果4(可能与作者名字fuzi有关)
结果4   +  确认马(如果<=3位,就取前3位。大与3位又要计算。晕死)=注册码


确认吗:747474
注册吗:27337i2u261}g7727

现在可以请出我们的注册机制作好工具Keymake v1.73,F8 制作内存注册机:
中断地址:00537715
中断次数:1
第一字节:E8
指令长度:5

选择内存方式:寄存器 → EDX  → 生成!
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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