文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃破解文章 → 梦幻屏保 V1.1 算法分析

梦幻屏保 V1.1 算法分析

时间:2004/10/15 0:54:00来源:本站整理作者:蓝点我要评论(0)

 

本文系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破解如何给软件脱壳基础教程