首页
社区
课程
招聘
[原创]一个桌面工具(DeskMarkerV1.9)的注册算法分析
发表于: 2005-9-30 17:21 4222

[原创]一个桌面工具(DeskMarkerV1.9)的注册算法分析

2005-9-30 17:21
4222
【破解日期】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 冷血书生

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
明码我喜欢  
2005-9-30 17:27
0
雪    币: 206
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持一下~~~
2005-9-30 17:27
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
4
楼上的两位真勤啊!

是不是一直在守着?

我刚发就知道顶了?

2005-9-30 17:34
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
5
算法的文章,好
2005-9-30 19:27
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
好文
2005-10-1 16:07
0
游客
登录 | 注册 方可回帖
返回
//