本文系jney2第一篇破文,错误之处,敬请指正。版本归论坛和作者所有。
软件名称:梦幻屏保 V1.1
软件大小: 866 KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 桌面制作
应用平台: Win9x/NT/2000/XP
加入时间: 2003-02-22 21:27:25
下载次数: 1132
开 发 商: http://remotion.myetang.com/
软件介绍:
梦幻屏保是一个操作简单表现出色的屏幕保护制作工具。您只须简单的单击鼠标,几分钟内就可创建美轮
美奂的Windows 屏幕保护。软件特点:1.程序操作简便;2.支持添加任意张Bmp、Jpg,Jpeg格式图片;3.支持添
加任意个媒体文件,包括mp3,wav,mid格式;4.拥有多达128中图片切换特效;5支持顺序或是随机方式播放图片
和媒体文件。您还可以利用 梦幻屏保 制作后缀为EXE的独立运行的电子贺卡。还想要什么呢?这就是您的选择
!
下载页面:http://www.skycn.net/soft/10998.html
加密方式:注册码
功能限制:次数限制
PJ工具:主要是WIN32Dasm 9.0 汉化版。
PJ日期:2003-03-25
作者jney2申明:只是学习,请不用于商业用途或是将本文方法制作的注册机任意传播,造成后果,本人一概不
负。
1,安装完成后,对主文件SDD.EXE用PEiD扫描,发现用UPX打包,于是用UPX124W解包。得到文件2.exe。
2,用J.Ping W32Dasm 9.0反汇编2.exe,保存汇编工程。
3,点字符串数据参考按钮即可看到下列字符串:(有删节)
"错误,梦幻屏保 注册认证失败"
"梦幻屏保 1.1(注册版)"
"梦幻屏保 注册成功,谢谢您对本软件的支持,您的认?
"请输入项目名称!"
"请输入注册认证码!"
"请至少添加两张图片!"
"请重新启动本软件,以完成软件的注册"
"软件试用次数已到,是否马上注册本软件?"
"未注册版本限用40次,您已经使用了"
"未注册版本限用40次,您已经使用了1次"
"未注册版本限用40次,您已经使用了40次"
"注册码输入有误,请重新输入!"
4,喜欢爆破的可作以下修改:
(1),修改方试用次数。
在字符串数据参考清单中双击 "未注册版本限用40次,您已经使用了40次" 即可看到如下反汇编代码:
:004CDF8B BA34E24C00 mov edx, 004CE234
:004CDF90 8BC3 mov eax, ebx
:004CDF92 8B38 mov edi, dword ptr [eax]
:004CDF94 FF5708 call [edi+08]
:004CDF97 83F828 cmp eax, 00000028;28H=40
:004CDF9A 0F8EAE000000 jle 004CE04E;不大于则继续试用 (jney2注)
:004CDFA0 8B8614030000 mov eax, dword ptr [esi+00000314]
:004CDFA6 8B4068 mov eax, dword ptr [eax+68]
:004CDFA9 BAFF000000 mov edx, 000000FF
:004CDFAE E8F961F5FF call 004241AC
* Possible StringData Ref from Code Obj ->"未注册版本限用40次,您已经使用了40次"
|
:004CDFB3 BA88E24C00 mov edx, 004CE288
:004CDFB8 8B8614030000 mov eax, dword ptr [esi+00000314]
:004CDFBE E8F953F7FF call 004433BC
稍懂汇编就知该怎么修改了,是改次数还是把JLE改为JMP你看着办吧!
(2),直接修改为注册版。
在字符串数据参考清单中双击 "梦幻屏保 1.1(注册版)" 即可看到如下反汇编代码:
* Possible StringData Ref from Code Obj ->"Project"
|
:004CDF42 BA34E24C00 mov edx, 004CE234
:004CDF47 8BC3 mov eax, ebx
:004CDF49 8B38 mov edi, dword ptr [eax]
:004CDF4B FF5708 call [edi+08]
:004CDF4E 5A pop edx
:004CDF4F 3BD0 cmp edx, eax;判断是否注册?
:004CDF51 7531 jne 004CDF84;未注册则跳。(jney2注)
:004CDF53 A1E4644D00 mov eax, dword ptr [004D64E4]
:004CDF58 8B00 mov eax, dword ptr [eax]
* Possible StringData Ref from Code Obj ->"梦幻屏保 1.1(注册版)"
|
:004CDF5A BA58E24C00 mov edx, 004CE258
:004CDF5F E85854F7FF call 004433BC
把 7531 改为 7431 或 9090 就OK了。(当然用HEX编辑器)
5,找到属于自己的注册码。
首先声明我是一个级别为0的菜鸟。分析该程序结构清晰,找注册码应该不难。
我的电脑两个硬盘三个系统。两个XP,一个WINDOWS2000SERVER,我绝大部分时间用XP。所以用不了
TRW2000和SOFTICE。就用WIN32Dasm吧。我是这样找到注册码的。
1),在字符串数据参考清单中双击 "注册码输入有误,请重新输入!" 即可看到如下反汇编代码:
:004CE398 8B4DFC mov ecx, dword ptr [ebp-04]
:004CE39B 8A4C01FF mov cl, byte ptr [ecx+eax-01]
:004CE39F 80F930 cmp cl, 30
:004CE3A2 7208 jb 004CE3AC
:004CE3A4 8B5DFC mov ebx, dword ptr [ebp-04]
:004CE3A7 80F939 cmp cl, 39
:004CE3AA 761F jbe 004CE3CB;判断是否为0-9的数字,是则跳。(jney2注)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004CE3A2(C)
|
* Possible StringData Ref from Code Obj ->"注册码输入有误,请重新输入!"
|
:004CE3AC B8F8E44C00 mov eax, 004CE4F8
:004CE3B1 E892E2F6FF call 0043C648
:004CE3B6 8B9610030000 mov edx, dword ptr [esi+00000310]
:004CE3BC A154824D00 mov eax, dword ptr [004D8254]
:004CE3C1 E83A01F9FF call 0045E500
:004CE3C6 E9C1000000 jmp 004CE48C
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004CE3AA(C)
|
:004CE3CB 40 inc eax
:004CE3CC 4A dec edx
:004CE3CD 75C9 jne 004CE398
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004CE391(C)
|
:004CE3CF 8D55EC lea edx, dword ptr [ebp-14]
:004CE3D2 8B860C030000 mov eax, dword ptr [esi+0000030C]
:004CE3D8 E8AF4FF7FF call 0044338C
:004CE3DD 8B45EC mov eax, dword ptr [ebp-14]
:004CE3E0 E873ADF3FF call 00409158
:004CE3E5 E82EF8FFFF call 004CDC18
:004CE3EA 8BD8 mov ebx, eax
:004CE3EC 8B45FC mov eax, dword ptr [ebp-04]
:004CE3EF E864ADF3FF call 00409158
:004CE3F4 3BD8 cmp ebx, eax
:004CE3F6 0F8586000000 jne 004CE482
:004CE3FC 8D55F8 lea edx, dword ptr [ebp-08]
:004CE3FF A1E4644D00 mov eax, dword ptr [004D64E4]
:004CE404 8B00 mov eax, dword ptr [eax]
:004CE406 E8FD3B0000 call 004D2008
:004CE40B 8D45E8 lea eax, dword ptr [ebp-18]
* Possible StringData Ref from Code Obj ->"\DSS.ini"
|
:004CE40E B91CE54C00 mov ecx, 004CE51C
:004CE413 8B55F8 mov edx, dword ptr [ebp-08]
:004CE416 E82967F3FF call 00404B44
:004CE41B 8B4DE8 mov ecx, dword ptr [ebp-18]
:004CE41E B201 mov dl, 01
* Possible StringData Ref from Code Obj ->"|軫"
|
:004CE420 A19CD34600 mov eax, dword ptr [0046D39C]
:004CE425 E822F0F9FF call 0046D44C
:004CE42A 8BD8 mov ebx, eax
:004CE42C 8D55E4 lea edx, dword ptr [ebp-1C]
:004CE42F 8B860C030000 mov eax, dword ptr [esi+0000030C]
:004CE435 E8524FF7FF call 0044338C
:004CE43A 8B45E4 mov eax, dword ptr [ebp-1C]
:004CE43D E816ADF3FF call 00409158
:004CE442 E8D1F7FFFF call 004CDC18
:004CE447 50 push eax
* Possible StringData Ref from Code Obj ->"registecode"
|
:004CE448 B930E54C00 mov ecx, 004CE530
* Possible StringData Ref from Code Obj ->"Project"
|
:004CE44D BA44E54C00 mov edx, 004CE544
:004CE452 8BC3 mov eax, ebx
:004CE454 8B30 mov esi, dword ptr [eax]
:004CE456 FF560C call [esi+0C]
:004CE459 8BC3 mov eax, ebx
:004CE45B E8F055F3FF call 00403A50
* Possible StringData Ref from Code Obj ->"梦幻屏保 注册成功,谢谢您对本软件的支持,您的认?
->"墒俏易畲蟮亩?"
|
:004CE460 B854E54C00 mov eax, 004CE554
:004CE465 E8DEE1F6FF call 0043C648
* Possible StringData Ref from Code Obj ->"请重新启动本软件,以完成软件的注册"
|
:004CE46A B89CE54C00 mov eax, 004CE59C
:004CE46F E8D4E1F6FF call 0043C648
:004CE474 A1FC664D00 mov eax, dword ptr [004D66FC]
:004CE479 8B00 mov eax, dword ptr [eax]
:004CE47B E89050F9FF call 00463510
:004CE480 EB0A jmp 004CE48C
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004CE3F6(C)
|
* Possible StringData Ref from Code Obj ->"错误,梦幻屏保 注册认证失败"
|
:004CE482 B8C8E54C00 mov eax, 004CE5C8
:004CE487 E8BCE1F6FF call 0043C648
分析以上代码可以看出,关键语句在:
:004CE3CF 8D55EC lea edx, dword ptr [ebp-14];1
:004CE3D2 8B860C030000 mov eax, dword ptr [esi+0000030C];2
:004CE3D8 E8AF4FF7FF call 0044338C;3
:004CE3DD 8B45EC mov eax, dword ptr [ebp-14];4
:004CE3E0 E873ADF3FF call 00409158;5
:004CE3E5 E82EF8FFFF call 004CDC18;6
:004CE3EA 8BD8 mov ebx, eax;7
:004CE3EC 8B45FC mov eax, dword ptr [ebp-04];8
:004CE3EF E864ADF3FF call 00409158;9
:004CE3F4 3BD8 cmp ebx, eax;比较注册码是否正确?等于则OK!
:004CE3F6 0F8586000000 jne 004CE482
2),在“调试”菜单里选择“载入过程”,则会调入2.exe;
3),找到以上语句,在语句1 这一行按F2设断点。
4),按F9运行。则启动程序。点“软件注册”,你会看到你的机器码,我的是59858453,在注册码:
中填入试炼码23456789。点“注册”。
5),程序会在断点处停住。按F8,执行完语句4后,你会发现EAX所指的内存是我的机器码59858453。
6),语句5子程序作用是将字符转为十六进制。关键代码如下:
...(有删)
|
:0040330F 8A1E mov bl, byte ptr [esi]
:00403311 46 inc esi
...(有删)
:0040334E 80EB30 sub bl, 30;字符转十进制
:00403351 80FB09 cmp bl, 09
:00403354 7725 ja 0040337B
:00403356 39F8 cmp eax, edi
:00403358 7721 ja 0040337B
:0040335A 8D0480 lea eax, dword ptr [eax+4*eax]
:0040335D 01C0 add eax, eax
:0040335F 01D8 add eax, ebx;十进制转十六进制
:00403361 8A1E mov bl, byte ptr [esi]
:00403363 46 inc esi
:00403364 84DB test bl, bl
:00403366 75E6 jne 0040334E
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403346(C)
|
:00403368 FECD dec ch
:0040336A 7409 je 00403375
:0040336C 85C0 test eax, eax
:0040336E 7D4E jge 004033BE
:00403370 EB09 jmp 0040337B
7),所以按F8执行完语句6后,EAX的值便是注册码的十六进制。
EAX=72391CA4H=1916345508 这才是我要找的真正的注册码。(用计算器算呀!)
8),按F8执行完语句8后,你会发现EAX所指的内存是你输入的试炼码23456789。
9),同样的语句9将23456789转为十六制。
10),中止进程,重新启动DSS.EXE,输入得到注册码,OK!:)!
6,利用刘健英的KERMAKER1.73可以很快地做出内存注册机。方法不再详解。
以上有不当之处请高手指正!谢谢!。jney2 的信箱是:jney2@21cn.com
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>