- UID
- 16062
注册时间2006-6-19
阅读权限40
最后登录1970-1-1
独步武林
该用户从未签到
|
【软件名称】: Clipboard Box 3.3
【软件大小】: 752K
【下载地址】: http://ha.newhua.com/down/clipboardbox.zip
【运行环境】:Win9x/Me/NT/2000/XP/2003
【加壳方式】: N
【发布时间】:2006-8-29 16:16:46
【作者声明】: 因为小弟不擅长算法,所以野猫III兄特别推荐这个简单的软件给小弟练习算法分析!如果有什么不对的地方,希望大家批评指正!谢谢!
--------------------------------------------------------------------------------
【详细过程】
软件介绍:
是一款拓展Windows自带的剪贴板功能,可以保存多达50次的剪贴板信息。为您节省时间,提高生产力。人人都需要Clipboard Box的帮助,特别是程序员和办公室文员。Windows的剪贴板只能保存一次信息,而Clipboard Box可以保存50次以供复制和粘贴。
先运行软件看看情况,一启动要求输入用户名和注册码,随便填入后,提示:Invalid Registrstion
OD载入,查找“Invalid Registrstion”,来到下面:
004A7336 |. /75 68 JNZ SHORT clipboar.004A73A0 !是从这里跳到出错信息处的!
004A7338 |. |B2 01 MOV DL,1
004A733A |. |A1 10684300 MOV EAX,DWORD PTR DS:[436810]
004A733F |. |E8 CCF5F8FF CALL clipboar.00436910
004A7344 |. |8BD8 MOV EBX,EAX
004A7346 |. |BA 00000080 MOV EDX,80000000
004A734B |. |8BC3 MOV EAX,EBX
004A734D |. |E8 5EF6F8FF CALL clipboar.004369B0
004A7352 |. |B1 01 MOV CL,1
004A7354 |. |BA 08744A00 MOV EDX,clipboar.004A7408 ; ASCII ".lwx1"
004A7359 |. |8BC3 MOV EAX,EBX
004A735B |. |E8 B4F6F8FF CALL clipboar.00436A14
004A7360 |. |84C0 TEST AL,AL
004A7362 |. |74 11 JE SHORT clipboar.004A7375
004A7364 |. |B9 18744A00 MOV ECX,clipboar.004A7418 ; ASCII "!oncemoreagain"
004A7369 |. |BA 30744A00 MOV EDX,clipboar.004A7430 ; ASCII "registerok"
004A736E |. |8BC3 MOV EAX,EBX
004A7370 |. |E8 5BF8F8FF CALL clipboar.00436BD0
004A7375 |> |6A 00 PUSH 0
004A7377 |. |B9 3C744A00 MOV ECX,clipboar.004A743C ; ASCII "Registerd OK"
004A737C |. |BA 4C744A00 MOV EDX,clipboar.004A744C ; ASCII "Registerd OK,Enjoy it!"
004A7381 |. |A1 5CCB4A00 MOV EAX,DWORD PTR DS:[4ACB5C]
004A7386 |. |8B00 MOV EAX,DWORD PTR DS:[EAX]
004A7388 |. |E8 CF02FBFF CALL clipboar.0045765C
004A738D |. |A1 B0DD4A00 MOV EAX,DWORD PTR DS:[4ADDB0]
004A7392 |. |E8 7DC9FAFF CALL clipboar.00453D14
004A7397 |. |8BC3 MOV EAX,EBX
004A7399 |. |E8 16C8F5FF CALL clipboar.00403BB4
004A739E |. |EB 18 JMP SHORT clipboar.004A73B8
004A73A0 |> \6A 00 PUSH 0
004A73A2 |. B9 64744A00 MOV ECX,clipboar.004A7464 ; ASCII "Warning"
004A73A7 |. BA 6C744A00 MOV EDX,clipboar.004A746C ; ASCII "Invalid registration!!" <---来到这里!
004A737A是从004A7336 |. /75 68 JNZ SHORT clipboar.004A73A0 跳过来的,所以上面应该是进行判断的地方!
往上面看,发现这段代码应该是一个call,起始位置在004A7268那里,于是,在004A7268处下断,F9运行,输入假注册信息后,点Register,被断下了,OD里面单步跟踪,
004A7268 /. 55 PUSH EBP 停在这里!
004A7269 |. 8BEC MOV EBP,ESP
004A726B |. 33C9 XOR ECX,ECX
004A726D |. 51 PUSH ECX
004A726E |. 51 PUSH ECX
004A726F |. 51 PUSH ECX
004A7270 |. 51 PUSH ECX
004A7271 |. 51 PUSH ECX
004A7272 |. 51 PUSH ECX
004A7273 |. 51 PUSH ECX
004A7274 |. 51 PUSH ECX
004A7275 |. 53 PUSH EBX
004A7276 |. 56 PUSH ESI
004A7277 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004A727A |. 33C0 XOR EAX,EAX
004A727C |. 55 PUSH EBP
004A727D |. 68 E3734A00 PUSH clipboar.004A73E3
004A7282 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004A7285 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004A7288 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004A728B |. BA F8734A00 MOV EDX,clipboar.004A73F8 ; 给EDX赋值为 "820709"(820709是进行计算的基本码)
004A7290 |. E8 27D7F5FF CALL clipboar.004049BC
004A7295 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004A7298 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A729B |. 8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
004A72A1 |. E8 2AF1FBFF CALL clipboar.004663D0
004A72A6 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 把注册名放到EAX
004A72A9 |. E8 36D9F5FF CALL clipboar.00404BE4 计算注册名的字符数目,返回到EAX
004A72AE |. 8BD8 MOV EBX,EAX 把EAX的值赋给EBX
004A72B0 |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
004A72B3 |. B8 6D000000 MOV EAX,6D
004A72B8 |. E8 E31CF6FF CALL clipboar.00408FA0 清空EDX ?
004A72BD |. 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14] 给EDX赋值为109(第二个基本码109)
004A72C0 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ;
004A72C3 |. E8 24D9F5FF CALL clipboar.00404BEC 将2个基本码合并为"820709109"
004A72C8 |. 83FB 07 CMP EBX,7 比较注册名的位数
004A72CB |. 7C 05 JL SHORT clipboar.004A72D2 不足7位直接继续
004A72CD |. BB 07000000 MOV EBX,7 超过7位则只取前7位
004A72D2 |> 8BF3 MOV ESI,EBX
004A72D4 |. 85F6 TEST ESI,ESI
004A72D6 |. 7E 42 JLE SHORT clipboar.004A731A
004A72D8 |. C745 F4 01000>MOV DWORD PTR SS:[EBP-C],1
004A72DF |> 8D45 E8 /LEA EAX,DWORD PTR SS:[EBP-18] 从这里开始的一个循环(004A72DF到004A7318)是根据输入的注册名进行计算
004A72E2 |. 50 |PUSH EAX
004A72E3 |. B9 01000000 |MOV ECX,1
004A72E8 |. 8B55 F4 |MOV EDX,DWORD PTR SS:[EBP-C]
004A72EB |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8] 将注册名送到EAX
004A72EE |. E8 51DBF5FF |CALL clipboar.00404E44 将注册名长度送到EBX
004A72F3 |. 8B45 E8 |MOV EAX,DWORD PTR SS:[EBP-18]
004A72F6 |. E8 E9DAF5FF |CALL clipboar.00404DE4
004A72FB |. 8A18 |MOV BL,BYTE PTR DS:[EAX]
004A72FD |. 8D55 E4 |LEA EDX,DWORD PTR SS:[EBP-1C]
004A7300 |. 33C0 |XOR EAX,EAX
004A7302 |. 8AC3 |MOV AL,BL
004A7304 |. E8 971CF6FF |CALL clipboar.00408FA0 取得第一个字符的ascii码
004A7309 |. 8B55 E4 |MOV EDX,DWORD PTR SS:[EBP-1C] ; 将得到的码值送到EDX
004A730C |. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10] ;
004A730F |. E8 D8D8F5FF |CALL clipboar.00404BEC 将已经得到的ascii码值加到基本码"820709109"后面,同时把长度值送到ESI,用ESI作计数器
004A7314 |. FF45 F4 |INC DWORD PTR SS:[EBP-C]
004A7317 |. 4E |DEC ESI ESI值-1
004A7318 |.^ 75 C5 \JNZ SHORT clipboar.004A72DF 跳到循环起始处(004A72DF),对下一个字符求其ascii码
004A731A |> 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
004A731D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A7320 |. 8B80 0C030000 MOV EAX,DWORD PTR DS:[EAX+30C]
004A7326 |. E8 A5F0FBFF CALL clipboar.004663D0
004A732B |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] 把输入的注册码送到EAX
004A732E |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10] 把计算出来的注册码送到EDX
004A7331 |. E8 FAD9F5FF CALL clipboar.00404D30 将2个注册码进行比较
004A7336 |. /75 68 JNZ SHORT clipboar.004A73A0 如果不相等就跳到出错的地方,相等就继续往下,弹出注册成功的对话框!
小结:
这个软件的注册码计算方法是:将取得的注册名按字符从左到右逐一取出求其相应的ASCII码值,然后加到基本码("820709109")的后面即可。
接着写注册机,我只会VB,
打开vb,添加2个文本框用来输入注册名和显示注册码!
代码如下:
Private Sub Txtname_Change()
Dim cd%, na$, ls$, i%
na = Mid$(Txtname.Text, 1, 7)
cd = Len(na)
If cd <> 0 Then
For i = 1 To cd
ls = ls & Asc(Mid$(na, i, 1))
Next
ls = "820709109" & ls
Txtkeycode.Text = ls
Else
Txtkeycode.Text = ""
End If
End Sub
生成exe文件,输入用户名:jjdg,得到注册码:820709109106106100103
输入用户名:jjdgjjdg,得到注册码:820709109106106100103106106100
试试,注册成功!
修改于 2006年10月12日 16:08:35
[ 本帖最后由 jjdg 于 2006-10-12 16:48 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|