飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2417|回复: 6

佳易网页王 3.1算法分析

[复制链接]

该用户从未签到

发表于 2005-11-11 12:19:56 | 显示全部楼层 |阅读模式
【破文标题】佳易网页王 3.1算法分析
【破文作者】surge[PYG]
【作者邮箱】surgefree@163.com
【作者主页】无
破解工具】peid,ollydbg
【破解平台】win2000professional+sp4
【软件名称】佳易网页王 3.1
【软件大小】7099KB
【原版下载】http://hecz.onlinedown.net/soft/13188.htm
【保护方式】注册码
【软件简介】佳易网页王是一个易学易用且功能强大的新型网页制作软件,它不仅具有FrontPage等流行网页制作软件的主要功能,而且更方便易用,功能更强大。它的最大特点是:即使不懂制作网页的专门技术,使用者也可以轻松地制作出专业水平的高质量网站。即使不懂网页编程技术,也可以轻松制作出具有BBS论坛、计数器、动态新闻发布、网站数据库应用等全功能的企业网站。因而可以确实有效地解决当前存在的网站建设难的问题。佳易网页王3.1推广版没有使用时间和使用次数的限制。不仅适用于初学者,也适用于计算机专业人员。还可用于教学课件和远程教学网站的建设。
------------------------------------------------------------------------
【破解过程】
/**************************************************************************/
peid检查,无壳,vb程序。
/**************************************************************************/
od载入,在msvbvm60.dll中下断点rtcMsgBox,返回后去掉断点向上找到关键代码。
006E6100   push    ebp
006E6101   mov     ebp, esp
006E6103   sub     esp, 0C
006E6106   push    <jmp.&MSVBVM60.__vbaExceptHandler>       ;  SE handler installation
006E610B   mov     eax, dword ptr fs:[0]
006E6111   push    eax
006E6112   mov     dword ptr fs:[0], esp
006E6119   sub     esp, 0F0
006E611F   push    ebx
006E6120   push    esi
006E6121   push    edi
......
006E6260   push    edx
006E6261   push    eax
006E6262   call    dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>>;  MSVBVM60.__vbaStrVarVal
006E6268   push    eax
006E6269   push    esi
006E626A   call    dword ptr ds:[edi+6F8]                   ;  跟进
......
006E62D5   cmp     di, bx
006E62D8   je      jyshare3.006E659E                        ;  跳走就死了。
/****************************************************************************/
跟进之后到这里了:
00413A6E   jmp     jyshare3.006E6920
......
006E6991   lea     edx, dword ptr ss:[ebp-24]
006E6994   mov     dword ptr ss:[ebp-38], esi
006E6997   push    edx
006E6998   call    jyshare3.006E82D0                        ;  机器码MD5标准算法
006E699D   lea     edx, dword ptr ss:[ebp-48]
006E69A0   lea     ecx, dword ptr ss:[ebp-34]
......
006E6A4F   mov     eax, 3
006E6A54   add     esp, 10
006E6A57   add     ax, si
006E6A5A   jo      jyshare3.006E6B90
006E6A60   mov     esi, eax
006E6A62   jmp     jyshare3.006E69DF                        ;跳到下面代码处
/****************************************************************************/
下面这段代码取MD5的1、4、7、10、13、16、19、22、25、28、31.位合并。
/****************************************************************************/
006E69DF   cmp     si, word ptr ss:[ebp-90]
006E69E6   jg      short jyshare3.006E6A67
006E69E8   mov     edx, dword ptr ss:[ebp-1C]
006E69EB   lea     eax, dword ptr ss:[ebp-48]
006E69EE   movsx   ecx, si
006E69F1   mov     dword ptr ss:[ebp-80], edx
006E69F4   push    eax
006E69F5   lea     edx, dword ptr ss:[ebp-34]
006E69F8   push    ecx
006E69F9   lea     eax, dword ptr ss:[ebp-58]
006E69FC   push    edx
006E69FD   push    eax
006E69FE   mov     dword ptr ss:[ebp-88], 8
006E6A08   mov     dword ptr ss:[ebp-40], 1
006E6A0F   mov     dword ptr ss:[ebp-48], 2
006E6A16   call    ebx
006E6A18   lea     ecx, dword ptr ss:[ebp-88]
006E6A1E   lea     edx, dword ptr ss:[ebp-58]
006E6A21   push    ecx
006E6A22   lea     eax, dword ptr ss:[ebp-68]
006E6A25   push    edx
006E6A26   push    eax
006E6A27   call    edi
006E6A29   push    eax
006E6A2A   call    dword ptr ds:[<&MSVBVM60.__vbaStrVarMove>;  MSVBVM60.__vbaStrVarMove
006E6A30   mov     edx, eax
006E6A32   lea     ecx, dword ptr ss:[ebp-1C]
006E6A35   call    dword ptr ds:[<&MSVBVM60.__vbaStrMove>]  ;  MSVBVM60.__vbaStrMove
006E6A3B   lea     ecx, dword ptr ss:[ebp-68]
006E6A3E   lea     edx, dword ptr ss:[ebp-58]
006E6A41   push    ecx
006E6A42   lea     eax, dword ptr ss:[ebp-48]
006E6A45   push    edx
006E6A46   push    eax
006E6A47   push    3
006E6A49   call    dword ptr ds:[<&MSVBVM60.__vbaFreeVarLis>;  MSVBVM60.__vbaFreeVarList
006E6A4F   mov     eax, 3
006E6A54   add     esp, 10
006E6A57   add     ax, si
006E6A5A   jo      jyshare3.006E6B90
006E6A60   mov     esi, eax
006E6A62   jmp     jyshare3.006E69DF
006E6A67   lea     edx, dword ptr ss:[ebp-78]
/*******************************************************************/
这段代码把合并成的串反向
/*******************************************************************/
006E6A93   mov     esi, eax
006E6A95   mov     eax, 1
006E6A9A   cmp     si, ax
006E6A9D   jl      short jyshare3.006E6B02
006E6A9F   mov     dword ptr ss:[ebp-40], eax
006E6AA2   lea     edx, dword ptr ss:[ebp-1C]
006E6AA5   movsx   ecx, si
006E6AA8   lea     eax, dword ptr ss:[ebp-48]
006E6AAB   mov     dword ptr ss:[ebp-70], edx
006E6AAE   push    eax
006E6AAF   lea     edx, dword ptr ss:[ebp-78]
006E6AB2   push    ecx
006E6AB3   lea     eax, dword ptr ss:[ebp-58]
006E6AB6   push    edx
006E6AB7   push    eax
006E6AB8   mov     dword ptr ss:[ebp-48], 2
006E6ABF   mov     dword ptr ss:[ebp-78], 4008
006E6AC6   call    ebx
006E6AC8   lea     ecx, dword ptr ss:[ebp-34]
006E6ACB   lea     edx, dword ptr ss:[ebp-58]
006E6ACE   push    ecx
006E6ACF   lea     eax, dword ptr ss:[ebp-68]
006E6AD2   push    edx
006E6AD3   push    eax
006E6AD4   call    edi
006E6AD6   mov     edx, eax
006E6AD8   lea     ecx, dword ptr ss:[ebp-34]
006E6ADB   call    dword ptr ds:[<&MSVBVM60.__vbaVarMove>]  ;  MSVBVM60.__vbaVarMove
006E6AE1   lea     ecx, dword ptr ss:[ebp-58]
006E6AE4   lea     edx, dword ptr ss:[ebp-48]
006E6AE7   push    ecx
006E6AE8   push    edx
006E6AE9   push    2
006E6AEB   call    dword ptr ds:[<&MSVBVM60.__vbaFreeVarLis>;  MSVBVM60.__vbaFreeVarList
006E6AF1   or      eax, FFFFFFFF
006E6AF4   add     esp, 0C
006E6AF7   add     ax, si
006E6AFA   jo      jyshare3.006E6B90
006E6B00   jmp     short jyshare3.006E6A93
/*******************************************************************/
/*******************************************************************/
006E6B10   mov     dword ptr ss:[ebp-78], 8008
006E6B17   call    dword ptr ds:[<&MSVBVM60.__vbaVarTstEq>] ;  比较
006E6B1D   test    ax, ax
006E6B20   je      short jyshare3.006E6B29
006E6B22   mov     dword ptr ss:[ebp-38], -1
006E6B29   push    jyshare3.006E6B67
006E6B2E   jmp     short jyshare3.006E6B48
006E6B30   lea     eax, dword ptr ss:[ebp-68]
006E6B33   lea     ecx, dword ptr ss:[ebp-58]
006E6B36   push    eax


------------------------------------------------------------------------
【破解总结】
通过机器码算出MD5值之后,取31、28、25、22、19、16、13、10、7、4、1位合并成串就是注册码。

我的机器码:by9604
MD5运算后:C5D3F7EFBCD25C3D342F37A3155CEB10
最终注册码:1C172D5CE3C
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-9-28 11:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2005-11-11 12:37:13 | 显示全部楼层
    不知道是不是明码比较?
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2005-11-11 13:52:38 | 显示全部楼层
    是明码比较,没什么难度,太难的我搞不定,功力还不够。
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-9-28 11:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2005-11-11 15:38:10 | 显示全部楼层
    有空试试
    Windows 美化大师~~

    算法多~~
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-11-12 20:58:01 | 显示全部楼层
    嗯!还算比较简单!

    支持一下!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-14 01:21:22 | 显示全部楼层
    能分析出算法就很不错,练习算法是不是明码不重要
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-14 21:11:54 | 显示全部楼层
     分析也 比较 吃支持楼主
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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