飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2395|回复: 3

【原创】一个桌面工具(Desk Marker V1.9.8)的注册算法分析

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-9-30 17:51:43 | 显示全部楼层 |阅读模式
    破解日期】 2005年9月30日
    【破解作者】 冷血书生[OCN][CZG][D.4s][PYG][PCG]
    【作者邮箱】 colddoctor@126.com
    【使用工具】 OD,PEID,UPX通用脱壳机,DEDE,MD5计算工具
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 Desk Marker V1.9.8
    【下载地址】 http://www.skycn.com/soft/18424.html
    【软件简介】 一个非常简单的在桌面上做笔记的工具,可以使用不同的笔型和颜色来进行标记。

    【软件大小】 1564 KB

    【加壳方式】 UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    PEID检测到UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo,用UPX通用脱壳机,轻松又快捷的把壳脱掉! 再检测,程序是Borland Delphi 6.0 - 7.0编写!

    OD载入,使用字符串插件,什么东西也没有!失败!
    于是转用DEDE,经过分析,轻松找到0426DF8A,下断0426DF8A:

    试炼信息:

    name:lengxue
    company:lengxueshusheng
    email add:colddoctor@126.com
    registration key:123654789

    0426DF8A    55              push ebp                                     ; 下断
    0426DF8B    68 18E02604     push DeskMark.0426E018
    0426DF90    64:FF30         push dword ptr fs:[eax]
    0426DF93    64:8920         mov dword ptr fs:[eax],esp
    0426DF96    8D55 FC         lea edx,dword ptr ss:[ebp-4]
    0426DF99    8B83 24030000   mov eax,dword ptr ds:[ebx+324]
    0426DF9F    E8 0059F8FF     call DeskMark.041F38A4
    0426DFA4    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DFA7    50              push eax
    0426DFA8    8D55 F8         lea edx,dword ptr ss:[ebp-8]
    0426DFAB    8B83 14030000   mov eax,dword ptr ds:[ebx+314]
    0426DFB1    E8 EE58F8FF     call DeskMark.041F38A4
    0426DFB6    8B45 F8         mov eax,dword ptr ss:[ebp-8]
    0426DFB9    50              push eax
    0426DFBA    8D55 F4         lea edx,dword ptr ss:[ebp-C]
    0426DFBD    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]
    0426DFC3    E8 DC58F8FF     call DeskMark.041F38A4
    0426DFC8    8B45 F4         mov eax,dword ptr ss:[ebp-C]
    0426DFCB    50              push eax
    0426DFCC    8D55 F0         lea edx,dword ptr ss:[ebp-10]
    0426DFCF    8B83 04030000   mov eax,dword ptr ds:[ebx+304]
    0426DFD5    E8 CA58F8FF     call DeskMark.041F38A4
    0426DFDA    8B55 F0         mov edx,dword ptr ss:[ebp-10]
    0426DFDD    A1 E4963304     mov eax,dword ptr ds:[43396E4]
    0426DFE2    8B00            mov eax,dword ptr ds:[eax]
    0426DFE4    59              pop ecx
    0426DFE5    E8 02060000     call DeskMark.0426E5EC                       ; 关键CALL(1),跟进
    0426DFEA    A1 709B3304     mov eax,dword ptr ds:[4339B70]
    0426DFEF    8B00            mov eax,dword ptr ds:[eax]
    0426DFF1    E8 6A9A0B00     call DeskMark.04327A60
    0426DFF6    8BC3            mov eax,ebx
    0426DFF8    E8 2F21FAFF     call DeskMark.0421012C
    0426DFFD    33C0            xor eax,eax
    0426DFFF    5A              pop edx
    0426E000    59              pop ecx
    0426E001    59              pop ecx
    0426E002    64:8910         mov dword ptr fs:[eax],edx
    0426E005    68 1FE02604     push DeskMark.0426E01F
    0426E00A    8D45 F0         lea eax,dword ptr ss:[ebp-10]
    0426E00D    BA 04000000     mov edx,4
    0426E012    E8 2D65F2FF     call DeskMark.04194544
    0426E017    C3              retn



    ********************     跟进关键CALL(1) call DeskMark.0426E5EC    ************************


    0426E5F2    53              push ebx
    0426E5F3    894D F8         mov dword ptr ss:[ebp-8],ecx
    0426E5F6    8955 FC         mov dword ptr ss:[ebp-4],edx
    0426E5F9    8BD8            mov ebx,eax
    0426E5FB    8B45 FC         mov eax,dword ptr ss:[ebp-4]                 ; "lengxue"
    0426E5FE    E8 CD63F2FF     call DeskMark.041949D0
    0426E603    8B45 F8         mov eax,dword ptr ss:[ebp-8]                 ; "lengxueshusheng"
    0426E606    E8 C563F2FF     call DeskMark.041949D0
    0426E60B    8B45 0C         mov eax,dword ptr ss:[ebp+C]                 ; "colddoctor@126.com"
    0426E60E    E8 BD63F2FF     call DeskMark.041949D0
    0426E613    8B45 08         mov eax,dword ptr ss:[ebp+8]                 ;"123654789"
    0426E616    E8 B563F2FF     call DeskMark.041949D0
    0426E61B    33C0            xor eax,eax
    0426E61D    55              push ebp
    0426E61E    68 E8E72604     push DeskMark.0426E7E8
    0426E623    64:FF30         push dword ptr fs:[eax]
    0426E626    64:8920         mov dword ptr fs:[eax],esp
    0426E629    8B45 0C         mov eax,dword ptr ss:[ebp+C]
    0426E62C    50              push eax
    0426E62D    8B4D F8         mov ecx,dword ptr ss:[ebp-8]
    0426E630    8B55 FC         mov edx,dword ptr ss:[ebp-4]
    0426E633    8BC3            mov eax,ebx
    0426E635    E8 A6050000     call DeskMark.0426EBE0
    0426E63A    8B83 40030000   mov eax,dword ptr ds:[ebx+340]
    0426E640    8B55 08         mov edx,dword ptr ss:[ebp+8]
    0426E643    E8 CCF5FFFF     call DeskMark.0426DC14                       ; 关键CALL(2),跟进
    0426E648    84C0            test al,al
    0426E64A    0F84 45010000   je DeskMark.0426E795                         ; 相等就注册失败



    **********************  跟进关键CALL(2)   call DeskMark.0426DC14     ***********************





    0426DC1A    53              push ebx
    0426DC1B    33C9            xor ecx,ecx
    0426DC1D    894D F8         mov dword ptr ss:[ebp-8],ecx
    0426DC20    8955 FC         mov dword ptr ss:[ebp-4],edx
    0426DC23    8BD8            mov ebx,eax
    0426DC25    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DC28    E8 A36DF2FF     call DeskMark.041949D0
    0426DC2D    33C0            xor eax,eax
    0426DC2F    55              push ebp
    0426DC30    68 70DC2604     push DeskMark.0426DC70
    0426DC35    64:FF30         push dword ptr fs:[eax]
    0426DC38    64:8920         mov dword ptr fs:[eax],esp
    0426DC3B    8D55 F8         lea edx,dword ptr ss:[ebp-8]
    0426DC3E    8BC3            mov eax,ebx
    0426DC40    E8 2BFEFFFF     call DeskMark.0426DA70                       ; 算法CALL(1),跟进
    0426DC45    8B45 F8         mov eax,dword ptr ss:[ebp-8]                 ; 真码
    0426DC48    8B55 FC         mov edx,dword ptr ss:[ebp-4]                 ; 假码
    0426DC4B    E8 DC6CF2FF     call DeskMark.0419492C                       ; 真假码比较





    ********************* 跟进算法CALL(1)  call DeskMark.0426DA70   ****************************







    0426DA7F    8BDA            mov ebx,edx
    0426DA81    8945 FC         mov dword ptr ss:[ebp-4],eax
    0426DA84    33C0            xor eax,eax
    0426DA86    55              push ebp
    0426DA87    68 99DB2604     push DeskMark.0426DB99
    0426DA8C    64:FF30         push dword ptr fs:[eax]
    0426DA8F    64:8920         mov dword ptr fs:[eax],esp
    0426DA92    33C9            xor ecx,ecx
    0426DA94    B2 01           mov dl,1
    0426DA96    A1 28F82504     mov eax,dword ptr ds:[425F828]
    0426DA9B    E8 EC03FFFF     call DeskMark.0425DE8C
    0426DAA0    8945 F8         mov dword ptr ss:[ebp-8],eax
    0426DAA3    8B45 F8         mov eax,dword ptr ss:[ebp-8]
    0426DAA6    8B10            mov edx,dword ptr ds:[eax]
    0426DAA8    FF52 20         call dword ptr ds:[edx+20]
    0426DAAB    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DAAE    FF70 10         push dword ptr ds:[eax+10]
    0426DAB1    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DAB4    FF70 08         push dword ptr ds:[eax+8]                    ;"lengxue"
    0426DAB7    68 B0DB2604     push DeskMark.0426DBB0
    0426DABC    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DABF    FF70 0C         push dword ptr ds:[eax+C]                    ;'lengxueshusheng"
    0426DAC2    68 B0DB2604     push DeskMark.0426DBB0
    0426DAC7    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DACA    FF70 04         push dword ptr ds:[eax+4]                    ;"colddoctor@126.com"
    0426DACD    8D45 F4         lea eax,dword ptr ss:[ebp-C]
    0426DAD0    BA 06000000     mov edx,6                                    ; EDX=6
    0426DAD5    E8 C66DF2FF     call DeskMark.041948A0
    0426DADA    68 F8030000     push 3F8
    0426DADF    53              push ebx
    0426DAE0    8B45 F8         mov eax,dword ptr ss:[ebp-8]
    0426DAE3    8B00            mov eax,dword ptr ds:[eax]
    0426DAE5    33C9            xor ecx,ecx
    0426DAE7    8B55 F4         mov edx,dword ptr ss:[ebp-C]                 ; 将上面的连起来DM-lengxue-lengxueshusheng-colddoctor@126.com
    0426DAEA    E8 412FFFFF     call DeskMark.04260A30                       ; 将上面的连接进行MD5运算并看到结果a1511d1c3c9ac8271cb1a0139118afe5
    0426DAEF    8B03            mov eax,dword ptr ds:[ebx]                   ; 结果送EAX
    0426DAF1    E8 EA6CF2FF     call DeskMark.041947E0
    0426DAF6    8BF8            mov edi,eax                                  ; EAX送EDI
    0426DAF8    85FF            test edi,edi
    0426DAFA    7E 55           jle short DeskMark.0426DB51
    0426DAFC    BE 01000000     mov esi,1                                    ; ESI=1
    0426DB01    8BC6            mov eax,esi                                  ; ESI送EAX
    0426DB03    B9 05000000     mov ecx,5                                    ; ECX=5
    0426DB08    99              cdq
    0426DB09    F7F9            idiv ecx                                     ; EAX MOD ECX=EDX
    0426DB0B    85D2            test edx,edx                                 ; 测试EDX
    0426DB0D    75 3E           jnz short DeskMark.0426DB4D                  ; EDX小于5就跳
    0426DB0F    8D45 F0         lea eax,dword ptr ss:[ebp-10]
    0426DB12    50              push eax
    0426DB13    8B03            mov eax,dword ptr ds:[ebx]
    0426DB15    8BCE            mov ecx,esi
    0426DB17    33D2            xor edx,edx
    0426DB19    E8 226FF2FF     call DeskMark.04194A40                       ; 将每次取的字符串用"-"连起来
    0426DB1E    FF75 F0         push dword ptr ss:[ebp-10]                   ; 看到连接后的结果
    0426DB21    68 B0DB2604     push DeskMark.0426DBB0
    0426DB26    8D45 EC         lea eax,dword ptr ss:[ebp-14]
    0426DB29    50              push eax
    0426DB2A    8B03            mov eax,dword ptr ds:[ebx]
    0426DB2C    E8 AF6CF2FF     call DeskMark.041947E0
    0426DB31    8BC8            mov ecx,eax
    0426DB33    49              dec ecx
    0426DB34    8D56 01         lea edx,dword ptr ds:[esi+1]
    0426DB37    8B03            mov eax,dword ptr ds:[ebx]
    0426DB39    E8 026FF2FF     call DeskMark.04194A40
    0426DB3E    FF75 EC         push dword ptr ss:[ebp-14]
    0426DB41    8BC3            mov eax,ebx
    0426DB43    BA 03000000     mov edx,3                                    ; EDX=3
    0426DB48    E8 536DF2FF     call DeskMark.041948A0
    0426DB4D    46              inc esi                                      ; ESI+1
    0426DB4E    4F              dec edi                                      ; EDI-1
    0426DB4F  ^ 75 B0           jnz short DeskMark.0426DB01                  ; 循环
    0426DB51    8B0B            mov ecx,dword ptr ds:[ebx]                   ; 结果a1511-d1c3-c9ac-8271-cb1a-0139-118afe5
    0426DB53    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    0426DB56    8B50 10         mov edx,dword ptr ds:[eax+10]
    0426DB59    8D45 E4         lea eax,dword ptr ss:[ebp-1C]
    0426DB5C    E8 CB6CF2FF     call DeskMark.0419482C                       ;将结果的小写转为大写
    0426DB61    8B45 E4         mov eax,dword ptr ss:[ebp-1C]                ; DM-a1511-d1c3-c9ac-8271-cb1a-0139-118afe5
    0426DB64    8D55 E8         lea edx,dword ptr ss:[ebp-18]
    0426DB67    E8 B4B2F2FF     call DeskMark.04198E20
    0426DB6C    8B55 E8         mov edx,dword ptr ss:[ebp-18]                ; DM-A1511-D1C3-C9AC-8271-CB1A-0139-118AFE5
    0426DB6F    8BC3            mov eax,ebx
    0426DB71    E8 FE69F2FF     call DeskMark.04194574
    0426DB76    8B45 F8         mov eax,dword ptr ss:[ebp-8]
    0426DB79    E8 525BF2FF     call DeskMark.041936D0
    0426DB7E    33C0            xor eax,eax
    0426DB80    5A              pop edx
    0426DB81    59              pop ecx                                      ; DeskMark.0426DB99
    0426DB82    59              pop ecx
    0426DB83    64:8910         mov dword ptr fs:[eax],edx
    0426DB86    68 A0DB2604     push DeskMark.0426DBA0
    0426DB8B    8D45 E4         lea eax,dword ptr ss:[ebp-1C]
    0426DB8E    BA 05000000     mov edx,5
    0426DB93    E8 AC69F2FF     call DeskMark.04194544
    0426DB98    C3              retn
    0426DB99  ^\E9 C662F2FF     jmp DeskMark.04193E64
    0426DB9E  ^ EB EB           jmp short DeskMark.0426DB8B
    0426DBA0    5F              pop edi
    0426DBA1    5E              pop esi
    0426DBA2    5B              pop ebx
    0426DBA3    8BE5            mov esp,ebp
    0426DBA5    5D              pop ebp
    0426DBA6    C3              retn                                         ; 返回


    ******************************** 跟进 call DeskMark.04260A30 *******************************


    04260A30    55              push ebp
    04260A31    8BEC            mov ebp,esp
    04260A33    51              push ecx
    04260A34    53              push ebx
    04260A35    56              push esi
    04260A36    8BF2            mov esi,edx
    04260A38    B2 01           mov dl,1
    04260A3A    E8 4DD4FFFF     call DeskMark.0425DE8C
    04260A3F    8945 FC         mov dword ptr ss:[ebp-4],eax
    04260A42    33C0            xor eax,eax
    04260A44    55              push ebp
    04260A45    68 B00A2604     push DeskMark.04260AB0
    04260A4A    64:FF30         push dword ptr fs:[eax]
    04260A4D    64:8920         mov dword ptr fs:[eax],esp
    04260A50    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260A53    8B10            mov edx,dword ptr ds:[eax]
    04260A55    FF52 20         call dword ptr ds:[edx+20]                   ; 算法CALL(2),跟进
    04260A58    8BC6            mov eax,esi
    04260A5A    E8 813DF3FF     call DeskMark.041947E0
    04260A5F    50              push eax
    04260A60    8BC6            mov eax,esi
    04260A62    E8 793FF3FF     call DeskMark.041949E0
    04260A67    8BD0            mov edx,eax
    04260A69    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260A6C    59              pop ecx
    04260A6D    8B18            mov ebx,dword ptr ds:[eax]
    04260A6F    FF53 24         call dword ptr ds:[ebx+24]
    04260A72    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260A75    8B10            mov edx,dword ptr ds:[eax]
    04260A77    FF52 28         call dword ptr ds:[edx+28]
    04260A7A    8B45 08         mov eax,dword ptr ss:[ebp+8]
    04260A7D    50              push eax
    04260A7E    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260A81    8B10            mov edx,dword ptr ds:[eax]
    04260A83    FF52 2C         call dword ptr ds:[edx+2C]
    04260A86    50              push eax
    04260A87    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260A8A    8B00            mov eax,dword ptr ds:[eax]
    04260A8C    FF50 30         call dword ptr ds:[eax+30]
    04260A8F    8BD0            mov edx,eax
    04260A91    8B4D 0C         mov ecx,dword ptr ss:[ebp+C]
    04260A94    58              pop eax
    04260A95    E8 02E0FFFF     call DeskMark.0425EA9C
    04260A9A    33C0            xor eax,eax
    04260A9C    5A              pop edx
    04260A9D    59              pop ecx
    04260A9E    59              pop ecx
    04260A9F    64:8910         mov dword ptr fs:[eax],edx
    04260AA2    68 B70A2604     push DeskMark.04260AB7
    04260AA7    8B45 FC         mov eax,dword ptr ss:[ebp-4]
    04260AAA    E8 212CF3FF     call DeskMark.041936D0
    04260AAF    C3              retn


    *************************  跟进 算法CALL(2)  call dword ptr ds:[edx+20]  *******************



    04261484    53              push ebx                                     ; 跟进来到这里
    04261485    8BD8            mov ebx,eax
    04261487    8D43 18         lea eax,dword ptr ds:[ebx+18]
    0426148A    33C9            xor ecx,ecx
    0426148C    BA 40000000     mov edx,40
    04261491    E8 DA1AF3FF     call DeskMark.04192F70                       ; 看到下面的常数,你一定会想起什么东西吧?呵呵!没错,就是MD5算法!
    04261496    C743 58 0123456>mov dword ptr ds:[ebx+58],67452301
    0426149D    C743 5C 89ABCDE>mov dword ptr ds:[ebx+5C],EFCDAB89
    042614A4    C743 60 FEDCBA9>mov dword ptr ds:[ebx+60],98BADCFE
    042614AB    C743 64 7654321>mov dword ptr ds:[ebx+64],10325476
    042614B2    C743 68 F0E1D2C>mov dword ptr ds:[ebx+68],C3D2E1F0
    042614B9    C743 6C 1032547>mov dword ptr ds:[ebx+6C],76543210
    042614C0    C743 70 98BADCF>mov dword ptr ds:[ebx+70],FEDCBA98
    042614C7    C743 74 EFCDAB8>mov dword ptr ds:[ebx+74],89ABCDEF
    042614CE    C743 78 6745230>mov dword ptr ds:[ebx+78],1234567
    042614D5    C743 7C 0F1E2D3>mov dword ptr ds:[ebx+7C],3C2D1E0F
    042614DC    33C0            xor eax,eax
    042614DE    8943 14         mov dword ptr ds:[ebx+14],eax
    042614E1    B2 01           mov dl,1
    042614E3    8BC3            mov eax,ebx
    042614E5    E8 BEF4FFFF     call DeskMark.042609A8
    042614EA    5B              pop ebx
    042614EB    C3              retn


    --------------------------------------------------------------------------------
    【算法总结】


    (1)DM-用户名-公司名称-EMAIL地址,连接后结果记为A
    (2)将A进行MD5运算,结果记为B
    (3)将B的字母小写转换为大写,记为C
    (4)将C按XXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXX格式分开,记为D
    (5)DM-与D连接(即DM-D),即为注册码


    一组可用的注册信息:

    name:lengxue
    company:lengxueshusheng
    email add:colddoctor@126.com
    registration key:DM-A1511-D1C3-C9AC-8271-CB1A-0139-118AFE5


    注册信息保存在:

    HKEY_CURRENT_USER\Software\delight software gmbh\DeskMarker

    删除又可再玩一次
    --------------------------------------------------------------------------------
    【内存注册机


    中断地址:426DC4B
    中断次数:1
    第一字节:E8
    指令长度:5
    内存方式===》EAX===》指针1层
    --------------------------------------------------------------------------------
    【爆破地址】


    0426E64A    0F84 45010000   je DeskMark.0426E795  ///  je ====>>>jne
    --------------------------------------------------------------------------------
    【破解总结】


      虽然是MD5算法,但还算是比较简单的,用工具就可以计算出注册码,不足之处,还请各位大侠指点!!

    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    --------------------------------------------------------------------------------
                                                               2005.9.30 by 冷血书生
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-9-30 19:52:14 | 显示全部楼层
    学习!!!
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-9-30 20:52:40 | 显示全部楼层
    恩,不错   标准MD5算法!
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-9-28 11:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2005-9-30 20:59:08 | 显示全部楼层
    楼主是用的什么破文生成器啊?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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