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

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

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

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

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

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

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

您的位置:首页精文荟萃破解文章 → S-Demo3.0的算法分析

S-Demo3.0的算法分析

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

 

环境:win98
工具:w32dasm ollydbg1.09 peid
软件名称:Screen Demo Maker(简称:S-Demo)
软件版本:3.0 汉化版
运行环境:Win98/ME/2000/XP
软件性质:共享软件


软件介绍:
S-Demo是一个屏幕动画录制软件,大多被破解者用来作破解动画过程的软件,它可以记录你的屏幕上的任何动作及鼠标的移动过程,并支持声音的录制,同时使用了较高的压缩率。
采用了特殊的压缩算法,并可以自由选择可以选择压缩率,在正常的操作情况下,每分钟的生成的文件,大小在64-128Kbps左右(800x600x32bits)。生成的文件可用软件附带的SDPlayer播放。


 


破解过程:
1 peid无壳Microsoft Visual C++ 6.0
2 用w32dasm查找关键找到00406B66 ASCII "Bad Register Code!"
用ollydbg加载
向上看来到这里:下断
00406B1C . 8B7E 64 MOV EDI, DWORD PTR DS:[ESI+64]
00406B1F . 8D5E 64 LEA EBX, DWORD PTR DS:[ESI+64]
00406B22 . 83C9 FF OR ECX, FFFFFFFF
00406B25 . 33C0 XOR EAX, EAX
00406B27 . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00406B29 . F7D1 NOT ECX
00406B2B . 49 DEC ECX
00406B2C . 83F9 06 CMP ECX, 6 //第一组长度等于6
00406B2F . 75 31 JNZ SHORT SDSERVER.00406B62
00406B31 . 8B7E 68 MOV EDI, DWORD PTR DS:[ESI+68]
00406B34 . 8D56 68 LEA EDX, DWORD PTR DS:[ESI+68]
00406B37 . 83C9 FF OR ECX, FFFFFFFF
00406B3A . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00406B3C . F7D1 NOT ECX
00406B3E . 49 DEC ECX
00406B3F . 83F9 09 CMP ECX, 9 //第二组长度等于9
00406B42 . 75 1E JNZ SHORT SDSERVER.00406B62
00406B44 . 6A 0A PUSH 0A
00406B46 . 8BCA MOV ECX, EDX
00406B48 . E8 CFD50000 CALL
00406B4D . 50 PUSH EAX
00406B4E . 8BCB MOV ECX, EBX
00406B50 . E8 C7D50000 CALL
00406B55 . 50 PUSH EAX
00406B56 . E8 45F5FFFF CALL SDSERVER.004060A0 //关键call
00406B5B . 83C4 0C ADD ESP, 0C
00406B5E . 85C0 TEST EAX, EAX
00406B60 . 75 14 JNZ SHORT SDSERVER.00406B76
00406B62 > 6A 00 PUSH 0
00406B64 . 6A 00 PUSH 0
00406B66 . 68 A8F34100 PUSH SDSERVER.0041F3A8 ; ASCII "Bad Register Code!"
00406B6B . 8BCE MOV ECX, ESI
00406B6D . E8 FCD40000 CALL



004060A0 /$ 53 PUSH EBX
004060A1 |. 55 PUSH EBP
004060A2 |. 8B6C24 10 MOV EBP, DWORD PTR SS:[ESP+10]
004060A6 |. 56 PUSH ESI
004060A7 |. 8B7424 10 MOV ESI, DWORD PTR SS:[ESP+10]
004060AB |. 57 PUSH EDI
004060AC |. 8BCE MOV ECX, ESI
004060AE |. 8D5D 07 LEA EBX, DWORD PTR SS:[EBP+7]
004060B1 |. C646 06 00 MOV BYTE PTR DS:[ESI+6], 0
004060B5 |. 8BC5 MOV EAX, EBP
004060B7 |. 2BCD SUB ECX, EBP ;ecx=190
004060B9 |. BF 06000000 MOV EDI, 6 ;edi做计数器
004060BE |> 8A1401 /MOV DL, BYTE PTR DS:[ECX+EAX]
004060C1 |. 8810 |MOV BYTE PTR DS:[EAX], DL
004060C3 |. 40 |INC EAX
004060C4 |. 4F |DEC EDI
004060C5 |.^ 75 F7 \JNZ SHORT SDSERVER.004060BE ;用注册码的前6位替换注册码后九位的前6位
004060C7 |. 8B7C24 1C MOV EDI, DWORD PTR SS:[ESP+1C] ;edi=0xa
004060CB |. C645 06 2D MOV BYTE PTR SS:[EBP+6], 2D
004060CF |. 0FBE4E 03 MOVSX ECX, BYTE PTR DS:[ESI+3] ;取ser1的第四位
004060D3 |. 0FBE06 MOVSX EAX, BYTE PTR DS:[ESI] ;取ser1的第一位
004060D6 |. 8BD7 MOV EDX, EDI ;edi=0xa
004060D8 |. 6A 03 PUSH 3 ; /maxlen = 3
004060DA |. 03D1 ADD EDX, ECX ; | //edx=ser1[3]+0xa
004060DC |. B9 19000000 MOV ECX, 19 ; |
004060E1 |. 03C2 ADD EAX, EDX ; | //eax=ser1[0]+ser1[3]+0xa
004060E3 |. C64424 1B 00 MOV BYTE PTR SS:[ESP+1B], 0 ; |
004060E8 |. 99 CDQ ; |
004060E9 |. F7F9 IDIV ECX ; | //eax/19
004060EB |. 0FBE46 01 MOVSX EAX, BYTE PTR DS:[ESI+1] ; | //取ser1的第二位
004060EF |. 8BCF MOV ECX, EDI ; |
004060F1 |. 80C2 41 ADD DL, 41 ; | //余数加0x41
004060F4 |. 885424 18 MOV BYTE PTR SS:[ESP+18], DL ; | //保存
004060F8 |. 0FBE56 04 MOVSX EDX, BYTE PTR DS:[ESI+4] ; | //取ser1[4]
004060FC |. 03CA ADD ECX, EDX ; |
004060FE |. 03C1 ADD EAX, ECX ; |
00406100 |. B9 19000000 MOV ECX, 19 ; |
00406105 |. 99 CDQ ; |
00406106 |. F7F9 IDIV ECX ; |
00406108 |. 0FBE46 02 MOVSX EAX, BYTE PTR DS:[ESI+2] ; | //ser1[3]
0040610C |. 8BCF MOV ECX, EDI ; |
0040610E |. 80C2 41 ADD DL, 41 ; |
00406111 |. 885424 19 MOV BYTE PTR SS:[ESP+19], DL ; |
00406115 |. 0FBE56 05 MOVSX EDX, BYTE PTR DS:[ESI+5] ; | //ser1[6]
00406119 |. 03CA ADD ECX, EDX ; |
0040611B |. 03C1 ADD EAX, ECX ; |
0040611D |. B9 19000000 MOV ECX, 19 ; |
00406122 |. 99 CDQ ; |
00406123 |. F7F9 IDIV ECX ; |
00406125 |. 80C2 41 ADD DL, 41 ; |
00406128 |. 885424 1A MOV BYTE PTR SS:[ESP+1A], DL ; | //保存
0040612C |. 8D5424 18 LEA EDX, DWORD PTR SS:[ESP+18] ; |
00406130 |. 52 PUSH EDX ; |src
00406131 |. 53 PUSH EBX ; |dest
00406132 |. 8B1D 8C964100 MOV EBX, DWORD PTR DS:[<&MSVCRT.strncpy>>; |MSVCRT.strncpy
00406138 |. FFD3 CALL NEAR EBX ; \strncpy //得到ser2的3位
0040613A |. 0FBE46 03 MOVSX EAX, BYTE PTR DS:[ESI+3]
0040613E |. 0FBE0E MOVSX ECX, BYTE PTR DS:[ESI]
00406141 |. 2BC8 SUB ECX, EAX
00406143 |. 6A 03 PUSH 3
00406145 |. 8D4439 20 LEA EAX, DWORD PTR DS:[ECX+EDI+20]
00406149 |. B9 19000000 MOV ECX, 19
0040614E |. 99 CDQ
0040614F |. F7F9 IDIV ECX ;除以0x19
00406151 |. 0FBE46 04 MOVSX EAX, BYTE PTR DS:[ESI+4] ;ser1[4]
00406155 |. 80C2 41 ADD DL, 41 ;余数+0x41
00406158 |. 885424 24 MOV BYTE PTR SS:[ESP+24], DL ;保存
0040615C |. 0FBE56 01 MOVSX EDX, BYTE PTR DS:[ESI+1]
00406160 |. 2BD0 SUB EDX, EAX
00406162 |. 8D443A 20 LEA EAX, DWORD PTR DS:[EDX+EDI+20]
00406166 |. 99 CDQ
00406167 |. F7F9 IDIV ECX
00406169 |. 0FBE46 05 MOVSX EAX, BYTE PTR DS:[ESI+5]
0040616D |. 80C2 41 ADD DL, 41
00406170 |. 885424 25 MOV BYTE PTR SS:[ESP+25], DL
00406174 |. 0FBE56 02 MOVSX EDX, BYTE PTR DS:[ESI+2]
00406178 |. 2BD0 SUB EDX, EAX
0040617A |. 8D443A 20 LEA EAX, DWORD PTR DS:[EDX+EDI+20]
0040617E |. 99 CDQ
0040617F |. F7F9 IDIV ECX
00406181 |. 8D45 0A LEA EAX, DWORD PTR SS:[EBP+A]
00406184 |. 80C2 41 ADD DL, 41
00406187 |. 885424 26 MOV BYTE PTR SS:[ESP+26], DL
0040618B |. 8D5424 24 LEA EDX, DWORD PTR SS:[ESP+24]
0040618F |. 52 PUSH EDX
00406190 |. 50 PUSH EAX
00406191 |. FFD3 CALL NEAR EBX //得到ser2的第二组
00406193 |. 0FBE46 03 MOVSX EAX, BYTE PTR DS:[ESI+3] //ser1[3]
00406197 |. 0FBE0E MOVSX ECX, BYTE PTR DS:[ESI] //
0040619A |. 03C7 ADD EAX, EDI ; eax=ser1[3]+0xa
0040619C |. 33C1 XOR EAX, ECX ;eax xor ser[0]
0040619E |. B9 19000000 MOV ECX, 19
004061A3 |. 99 CDQ
004061A4 |. F7F9 IDIV ECX ;又是除以0x19
004061A6 |. 0FBE46 04 MOVSX EAX, BYTE PTR DS:[ESI+4]
004061AA |. 80C2 41 ADD DL, 41
004061AD |. 03C7 ADD EAX, EDI
004061AF |. 885424 2C MOV BYTE PTR SS:[ESP+2C], DL ;保存
004061B3 |. 0FBE56 01 MOVSX EDX, BYTE PTR DS:[ESI+1]
004061B7 |. 33C2 XOR EAX, EDX
004061B9 |. 6A 03 PUSH 3
004061BB |. 99 CDQ
004061BC |. F7F9 IDIV ECX
004061BE |. 0FBE46 05 MOVSX EAX, BYTE PTR DS:[ESI+5]
004061C2 |. 03C7 ADD EAX, EDI
004061C4 |. 80C2 41 ADD DL, 41
004061C7 |. 885424 31 MOV BYTE PTR SS:[ESP+31], DL
004061CB |. 0FBE56 02 MOVSX EDX, BYTE PTR DS:[ESI+2]
004061CF |. 33C2 XOR EAX, EDX
004061D1 |. 99 CDQ
004061D2 |. F7F9 IDIV ECX
004061D4 |. 8D45 0D LEA EAX, DWORD PTR SS:[EBP+D]
004061D7 |. 80C2 41 ADD DL, 41
004061DA |. 885424 32 MOV BYTE PTR SS:[ESP+32], DL
004061DE |. 8D5424 30 LEA EDX, DWORD PTR SS:[ESP+30]
004061E2 |. 52 PUSH EDX
004061E3 |. 50 PUSH EAX
004061E4 |. FFD3 CALL NEAR EBX
004061E6 |. 83C4 24 ADD ESP, 24
004061E9 |. C645 10 00 MOV BYTE PTR SS:[EBP+10], 0
004061ED |. B8 01000000 MOV EAX, 1
004061F2 |. 5F POP EDI
004061F3 |. 5E POP ESI
004061F4 |. 5D POP EBP
004061F5 |. 5B POP EBX
004061F6 \. C3 RETN
总结:
算法分析:
作者就是利用先输入的6位注册码经过几个简单的变换算出后9位注册码
这里不再多说~~~~~:-)太困啦~~~~~我要睡觉啦~~~~
有空再写注册机~~~呵呵~~~
注册机关键for(i=0;i<3;i++)
{
ser2[i]=(ser1[i]+ser1[i+3]+0xa)%0x19+0x41;
ser2[i+3]=(ser1[i]-ser1[i+3]+0x20+0xa)%0x19+0x41;
ser2[i+6]=((ser1[i+3]+0xa)^ser1[i])%0x19+0x41;
}



'VB注册机
Private Sub Command1_Click()
jqm = Text1.Text
For i = 1 To 3
sn1 = (Asc(Mid(jqm, i, 1)) + Asc(Mid(jqm, (i + 3), 1)) + &HA) Mod &H19 + &H41
code1 = code1 & Chr(sn1)
Next
For i = 1 To 3
sn2 = (Asc(Mid(jqm, i, 1)) - Asc(Mid(jqm, (i + 3), 1)) + 42) Mod &H19 + &H41
code2 = code2 & Chr(sn2)
Next
For i = 1 To 3
sn3 = ((Asc(Mid(jqm, (i + 3), 1)) + &HA) Xor Asc(Mid(jqm, i, 1))) Mod &H19 + &H41
code3 = code3 & Chr(sn3)
Next
code = code1 & code2 & code3
Text2.Text = code
End Sub


Private Sub Command2_Click()
End
End Sub


    
    
     
    
    
     

相关阅读 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破解如何给软件脱壳基础教程