逗鸟外传百度云资源:毕业破文 FontFrenzy V1.5.138 注册机初级分析 - 『 PYG5.4学员...
来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 03:11:48
【破文作者】王猛
【作者邮箱】12985462@QQ.com
【作者主页】www.81mil.cn
【破解工具】OllyDBG
【破解平台】Windows Vista
【软件名称】FontFrenzy V1.5.138
【软件大小】556 KB
【原版下载】http://www.skycn.com/soft/18199.html
【保护方式】自定义算法
【软件简介】
字体管理软件,免费注册,未注册限制使用时间并弹出NAG窗口!
这次破解在字符串格式上我搞错了,这是一个UNICODE程序,我一直以ASCII方式进行的破解。大家都知道,UNICODE的
程序假设用ASCII方式搜索字符串是得不到结果的。但是我还是以ASCII方式来写破文,权当与大家分享下如何对付隐藏
字符串的程序。
【破解声明】个人学习总结,仅供学习参考
------------------------------------------------------------------------
【破解过程】
一、软件保护
以PEiD进行扫描,文件为加壳,程序以使用VC++编制。
二、注册分析
以OD载入程序输入错误的注册码,程序弹出对话框提示“Your registration information is incorrect.please try
again.” 搜索字符串(以ASCII方式,其实是个UNICODE程序。)什么有价值的信息都未能发现。放弃根据字符串下断点
的思想,以错误提示对话框为契机入手破解。
下断点在 MessageBoxA 和 MessageBoxW 上,使用命令 bp MessageBoxA 和 bp MessageBoxW。
随意输入一个电子邮件地址和想象的注册码,程序断在 75F0FBD5 。在提示行,我们可以找到一些非常有用的信息。
0012EE14 00401F1F /CALL 到 MessageBoxW 来自 FontFren.00401F19
0012EE18 002D0128 |hOwner = 002D0128 ('Register FontFrenzy?',class='#32770')
0012EE1C 00423C88 |Text = "Your registration information is incorrect. Please try again."
0012EE20 00423C6C |Title = "Registration"
0012EE24 00000030 \Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
通过上边的信息,我们可以知道这个程序的错误提示对话信息以MessageBoxW函数弹出,是一个UNICODE程序。00401F19
处是对MessageBoxW进行调用的。这说明如果注册码不相符,程序会跳到00401F19处,并弹出对话框。那么我们就去这个
00401F19看看程序在什么情况下会弹出这个对话框。
按快捷键 ALT+ G 输入 00401F19 ,我们过来后可以看到这个完整的MessageBoxW函数是如何调用的。
00401F0C |> \6A 30 PUSH 30
00401F0E |. 68 6C3C4200 PUSH FontFren.00423C6C ; Registration
00401F13 |. 68 883C4200 PUSH FontFren.00423C88 ; Your registration information is
incorrect. Please try again.
00401F18 |. 53 PUSH EBX
00401F19 |. FF15 00A24200 CALL DWORD PTR DS:[42A200] ; USER32.MessageBoxW
这是一个汇编语言下,完整的MessageBox调用,将鼠标停在00401FOC行看看都是那些地方引发了错误提示。在提示行可
以看到 “跳转来自 00401DCD” 我们过去看看 。
00401DC4 |. /EB 05 JMP SHORT FontFren.00401DCB
00401DC6 |> |1BC0 SBB EAX,EAX
00401DC8 |. |83D8 FF SBB EAX,-1
00401DCB |> \85C0 TEST EAX,EAX ; 比较注册标记
00401DCD |. 0F85 39010000 JNZ FontFren.00401F0C ; 不正确跳向注册错误
00401DCD所处的是一行条件判断语句,如果标志位EAX为1,则跳向注册失败!
我们想上拉几行代码,注意汇编语句的内容,看到
00401D06 |. 68 503C4200 PUSH FontFren.00423C50 ; Unregistered
处时,停下来下断点。
备注:如果对自己的汇编语言功底没有信心,也可以用一个简单办法,将鼠标停在跳转语句上,OD会告诉你是那里引发
的这个跳转,顺藤摸瓜逆向分析向上拉 =)
00401D06 |. 68 503C4200 PUSH FontFren.00423C50 ; Unregistered
00401D0B |. 51 PUSH ECX
00401D0C |. E8 5AA70100 CALL FontFren.0041C46B ; 读取用户名
00401D11 |. 83C4 08 ADD ESP,8
00401D14 |. 85C0 TEST EAX,EAX
00401D16 |. 0F84 0E020000 JE FontFren.00401F2A ; 如果用户名为空,跳向注册失败
00401D1C |. 8D8424 B00000>LEA EAX,DWORD PTR SS:[ESP+B0]
00401D23 |. 8D50 02 LEA EDX,DWORD PTR DS:[EAX+2]
00401D26 |> 66:8B08 /MOV CX,WORD PTR DS:[EAX]
00401D29 |. 83C0 02 |ADD EAX,2
00401D2C |. 66:85C9 |TEST CX,CX
00401D2F |.^ 75 F5 \JNZ SHORT FontFren.00401D26
00401D31 |. 2BC2 SUB EAX,EDX
00401D33 |. D1F8 SAR EAX,1
00401D35 |. 83F8 06 CMP EAX,6 ; 如果小于6位,跳向注册失败
00401D38 |. 0F82 EC010000 JB FontFren.00401F2A
00401D3E |. 8D8424 9C0000>LEA EAX,DWORD PTR SS:[ESP+9C] ; 读取注册码
00401D45 |. 8D50 02 LEA EDX,DWORD PTR DS:[EAX+2]
00401D48 |. EB 06 JMP SHORT FontFren.00401D50
00401D4A | 8D9B 00000000 LEA EBX,DWORD PTR DS:[EBX]
00401D50 |> 66:8B08 /MOV CX,WORD PTR DS:[EAX]
00401D53 |. 83C0 02 |ADD EAX,2
00401D56 |. 66:85C9 |TEST CX,CX
00401D59 |.^ 75 F5 \JNZ SHORT FontFren.00401D50
00401D5B |. 2BC2 SUB EAX,EDX
00401D5D |. D1F8 SAR EAX,1
00401D5F |. 83F8 08 CMP EAX,8 ; 如果小于8位,跳向注册失败
00401D62 |. 0F85 C2010000 JNZ FontFren.00401F2A
00401D68 |. 8D8C24 B00000>LEA ECX,DWORD PTR SS:[ESP+B0] ; 读取注册名
00401D6F |. E8 2C170100 CALL FontFren.004134A0 ; 调用注册码生成函数?
00401D74 |. 8BF8 MOV EDI,EAX ; EAX中出现正确注册码
00401D76 |. 85FF TEST EDI,EDI
00401D78 |. 75 18 JNZ SHORT FontFren.00401D92
00401D7A |. 8B15 2CBD4200 MOV EDX,DWORD PTR DS:[42BD2C]
00401D80 |. 6A 10 PUSH 10
00401D82 |. 68 043D4200 PUSH FontFren.00423D04 ; Error 4413
00401D87 |. 68 203D4200 PUSH FontFren.00423D20 ; Error 4413: Program error.
Contact support.
00401D8C |. 52 PUSH EDX
00401D8D |. E9 A5010000 JMP FontFren.00401F37
00401D92 |> 8BCF MOV ECX,EDI
00401D94 |. 8D8424 9C0000>LEA EAX,DWORD PTR SS:[ESP+9C]
00401D9B |. EB 03 JMP SHORT FontFren.00401DA0
00401D9D | 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
00401DA0 |> 66:8B10 /MOV DX,WORD PTR DS:[EAX]
00401DA3 |. 66:3B11 |CMP DX,WORD PTR DS:[ECX]
00401DA6 |. 75 1E |JNZ SHORT FontFren.00401DC6
00401DA8 |. 66:85D2 |TEST DX,DX
00401DAB |. 74 15 |JE SHORT FontFren.00401DC2
00401DAD |. 66:8B50 02 |MOV DX,WORD PTR DS:[EAX+2]
00401DB1 |. 66:3B51 02 |CMP DX,WORD PTR DS:[ECX+2]
00401DB5 |. 75 0F |JNZ SHORT FontFren.00401DC6
00401DB7 |. 83C0 04 |ADD EAX,4
00401DBA |. 83C1 04 |ADD ECX,4
00401DBD |. 66:85D2 |TEST DX,DX
00401DC0 |.^ 75 DE \JNZ SHORT FontFren.00401DA0
00401DC2 |> 33C0 XOR EAX,EAX
00401DC4 |. EB 05 JMP SHORT FontFren.00401DCB
00401DC6 |> 1BC0 SBB EAX,EAX
00401DC8 83D8 FF SBB EAX,-1
00401DCB 85C0 TEST EAX,EAX ; 比较注册码
00401DCD |. 0F85 39010000 JNZ FontFren.00401F0C ; 不正确跳向注册错误
00401DD3 |. 68 7C334200 PUSH FontFren.0042337C ; RegName
00401DD8 |. 8DB424 B40000>LEA ESI,DWORD PTR SS:[ESP+B4]
00401DDF |. E8 EC800000 CALL FontFren.00409ED0
00401DE4 |. 83C4 04 ADD ESP,4
00401DE7 |. 68 783D4200 PUSH FontFren.00423D78 ; RegCode
00401DEC |. 8DB424 A00000>LEA ESI,DWORD PTR SS:[ESP+A0]
00401DF3 |. E8 D8800000 CALL FontFren.00409ED0
00401DF8 |. 83C4 04 ADD ESP,4
00401DFB |. 68 00010000 PUSH 100
00401E00 |. 8D8424 B40200>LEA EAX,DWORD PTR SS:[ESP+2B4]
00401E07 |. 6A 00 PUSH 0
00401E09 |. 50 PUSH EAX
00401E0A |. E8 317E0100 CALL FontFren.00419C40
00401E0F |. 8B15 2CBD4200 MOV EDX,DWORD PTR DS:[42BD2C]
00401E15 |. 8B35 18A24200 MOV ESI,DWORD PTR DS:[42A218] ; USER32.SendMessageW
00401E1B |. 83C4 0C ADD ESP,0C
00401E1E |. 8D8C24 B00200>LEA ECX,DWORD PTR SS:[ESP+2B0]
00401E25 |. 51 PUSH ECX
00401E26 |. 68 00010000 PUSH 100
00401E2B |. 6A 0D PUSH 0D
00401E2D |. 52 PUSH EDX
00401E2E |. FFD6 CALL ESI
00401E30 |. 8D8424 B00200>LEA EAX,DWORD PTR SS:[ESP+2B0]
00401E37 |. 8D50 02 LEA EDX,DWORD PTR DS:[EAX+2]
00401E3A |. 8D9B 00000000 LEA EBX,DWORD PTR DS:[EBX]
00401E40 |> 66:8B08 /MOV CX,WORD PTR DS:[EAX]
00401E43 |. 83C0 02 |ADD EAX,2
00401E46 |. 66:85C9 |TEST CX,CX
00401E49 |.^ 75 F5 \JNZ SHORT FontFren.00401E40
00401E4B |. 2BC2 SUB EAX,EDX
00401E4D |. D1F8 SAR EAX,1
00401E4F |. 83F8 0F CMP EAX,0F
00401E52 |. 72 38 JB SHORT FontFren.00401E8C
00401E54 |. 8D8424 B00200>LEA EAX,DWORD PTR SS:[ESP+2B0]
00401E5B |. 8D50 02 LEA EDX,DWORD PTR DS:[EAX+2]
00401E5E |. 8BFF MOV EDI,EDI
00401E60 |> 66:8B08 /MOV CX,WORD PTR DS:[EAX]
00401E63 |. 83C0 02 |ADD EAX,2
00401E66 |. 66:85C9 |TEST CX,CX
00401E69 |.^ 75 F5 \JNZ SHORT FontFren.00401E60
00401E6B |. 2BC2 SUB EAX,EDX
00401E6D |. D1F8 SAR EAX,1
00401E6F |. 66:898C44 920>MOV WORD PTR SS:[ESP+EAX*2+292],CX
00401E77 |. 8B0D 2CBD4200 MOV ECX,DWORD PTR DS:[42BD2C]
00401E7D |. 8D8424 B00200>LEA EAX,DWORD PTR SS:[ESP+2B0]
00401E84 |. 50 PUSH EAX
00401E85 |. 6A 00 PUSH 0
00401E87 |. 6A 0C PUSH 0C
00401E89 |. 51 PUSH ECX
00401E8A |. FFD6 CALL ESI
00401E8C |> 8B15 2CBD4200 MOV EDX,DWORD PTR DS:[42BD2C]
00401E92 |. 52 PUSH EDX ; /hWnd => NULL
00401E93 |. FF15 30124200 CALL DWORD PTR DS:[<&USER32.GetMenu>] ; \GetMenu
00401E99 |. 8D4C24 38 LEA ECX,DWORD PTR SS:[ESP+38]
00401E9D |. 51 PUSH ECX
00401E9E |. 6A 01 PUSH 1
00401EA0 |. 6A 03 PUSH 3
00401EA2 |. 50 PUSH EAX
00401EA3 |. C74424 4C 040>MOV DWORD PTR SS:[ESP+4C],4
00401EAB |. C74424 48 300>MOV DWORD PTR SS:[ESP+48],30
00401EB3 |. FF15 D8A14200 CALL DWORD PTR DS:[42A1D8] ; FontFren.00413F2F
00401EB9 |. 8B5424 4C MOV EDX,DWORD PTR SS:[ESP+4C]
00401EBD |. 6A 00 PUSH 0 ; /Flags =
MF_BYCOMMAND|MF_ENABLED|MF_STRING
00401EBF |. 68 4A9C0000 PUSH 9C4A ; |ItemID = 9C4A (40010.)
00401EC4 |. 52 PUSH EDX ; |hMenu
00401EC5 |. FF15 60124200 CALL DWORD PTR DS:[<&USER32.RemoveMenu>] ; \RemoveMenu
00401ECB |. 6A 40 PUSH 40
00401ECD |. 68 6C3C4200 PUSH FontFren.00423C6C ; Registration
00401ED2 |. 68 883D4200 PUSH FontFren.00423D88 ; Thank you for registering
FontFrenzy!
00401ED7 |. 53 PUSH EBX
00401ED8 |. FF15 00A24200 CALL DWORD PTR DS:[42A200] ; FontFren.00413942
00401EDE |. 6A 01 PUSH 1 ; /Result = 1
00401EE0 |. 53 PUSH EBX ; |hWnd
00401EE1 |. FF15 44124200 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog
00401EE7 |. 57 PUSH EDI
00401EE8 |. E8 DD2D0100 CALL FontFren.00414CCA
00401EED |. 83C4 04 ADD ESP,4
00401EF0 |. B8 01000000 MOV EAX,1
00401EF5 |. 5F POP EDI
00401EF6 |. 5E POP ESI
00401EF7 |. 5B POP EBX
00401EF8 |. 8B8C24 E80A00>MOV ECX,DWORD PTR SS:[ESP+AE8]
00401EFF |. 33CC XOR ECX,ESP
00401F01 |. E8 B52D0100 CALL FontFren.00414CBB
00401F06 |. 8BE5 MOV ESP,EBP
00401F08 |. 5D POP EBP
00401F09 |. C2 1000 RETN 10
00401F0C |> 6A 30 PUSH 30
00401F0E |. 68 6C3C4200 PUSH FontFren.00423C6C ; Registration
00401F13 |. 68 883C4200 PUSH FontFren.00423C88 ; Your registration information is
incorrect. Please try again.
00401F18 |. 53 PUSH EBX
00401F19 |. FF15 00A24200 CALL DWORD PTR DS:[42A200] ; FontFren.00413942
00401F1F |. 57 PUSH EDI
00401F20 |. E8 A52D0100 CALL FontFren.00414CCA
00401F25 |. 83C4 04 ADD ESP,4
00401F28 |. EB 13 JMP SHORT FontFren.00401F3D
00401F2A |> 6A 30 PUSH 30
00401F2C |. 68 6C3C4200 PUSH FontFren.00423C6C ; Registration
00401F31 |. 68 883C4200 PUSH FontFren.00423C88 ; Your registration information is
incorrect. Please try again.
00401F36 |. 53 PUSH EBX
00401F37 |> FF15 00A24200 CALL DWORD PTR DS:[42A200] ; FontFren.00413942
00401F3D |> 8B8C24 F40A00>MOV ECX,DWORD PTR SS:[ESP+AF4] ; Default case of switch 00401C81
00401F44 |. 5F POP EDI
00401F45 |. 5E POP ESI
00401F46 |. 5B POP EBX
00401F47 |. 33CC XOR ECX,ESP
00401F49 |. 33C0 XOR EAX,EAX
00401F4B |. E8 6B2D0100 CALL FontFren.00414CBB
00401F50 |. 8BE5 MOV ESP,EBP
00401F52 |. 5D POP EBP
00401F53 \. C2 1000 RETN 10
这个程序的特点是注册标志位与注册信息条件虽然提示相同,但是处理函数不同。非法注册信息由 00401F2A 处理,而
注册标志位错误,也就是注册码错误由 00401F19 处理。
------------------------------------------------------------------------
【破解总结】
注册时,用户名可任意输入6位以上字符并非提示所显示的必须是电子邮件地址,注册码不小于8位。真实的注册信息为8
位数字,出现于 00401D74 句的 EAX寄存器。
内存注册机:
中断地址 00401D74
中断次数 1
第一字节 8B
指令长度 2
【*】 内存方式 寄存器EAX
【*】 宽字符串
------------------------------------------------------------------------
【版权声明】
版权没有,翻版考究!;)
[ 本帖最后由 野猫III 于 2007-4-19 17:09 编辑 ]
毕业破文 FontFrenzy V1.5.138 注册机初级分析 - 『 PYG5.4学员...
注册国际投资分析师
多数学员在校多年不愿“毕业”大学不堪重负
局域网QQ(V1.4)
【1最新硬盘坏道修复程序 HDDreg v1.41 注册版】
Splash PRO EX(AVCHD格式播放工具) 多语言绿色版 V1.9.0 注册版 ...
学员回家作品选4
【望子成龙】之(初级篇)(4)--个股资料分析-龙在江湖-金融界股票论坛
在分时图分析(初级看盘)
中国首批水面舰艇初级指挥女学员完成远航实习
中国海军首批水面舰艇初级指挥专业女学员完成远航实习训练
饮水不忘掘井人——北大青鸟毕业学员经验交流会
中共中央党校举行2011年春季学期毕业典礼 习近平出席并为学员颁发毕业证书
胡耀邦1985年在中央党校学员毕业典礼上的讲话
小学数学六年级毕业试题分析
职业生涯规划的分析框架-毕业一年有感
小学六年级数学下册毕业试题分析
小学数学 六年级毕业试题分析
小学数学六年级毕业试题分析2
小学数学六年级毕业试题分析
注册税务师考试历年命题特点分析 - 注册税务师考试 -
新浪微博注册页面的用户体验分析报告
支付宝、淘宝网、盛大等网站注册流程分析
Nik Software Viveza For PhotoShop v1.003 - 『 ...