speedboy 发表于 2021-4-2 14:20

Xara Designer Pro+ 21.0.1.61743分析爆破

本帖最后由 speedboy 于 2021-4-2 14:22 编辑

【文章标题】: Xara Designer Pro+ 21.0.1.61743(X64)分析爆破
【文章作者】: speedboy
【软件名称】: Xara Designer Pro+
【下载地址】:
【加壳方式】: 无
【编写语言】: Microsoft Visual C++
【使用工具】: x64dbg
【操作平台】: win7
【软件介绍】: 一套很棒的图形图像编辑处理软件包,Xara Designer用来绘图、处理图像、制作WEB图形,具有制图速度快、软件体积小、界面美观等特点,被誉为世界上速度最快的绘图软件。
【作者声明】: 只做学习、交流
--------------------------------------------------------------------------------
【详细过程】
1、搜索“CheckSerialRegistration”,得到如下结果
0000000140A3C5D5lea rcx,qword ptr ds:L"After CheckSerialRegistration\n"
2、在此行双击来到反汇编区,发现此行的上一行是检查序列号的函数,在函数上F2下断,运行程序
0000000140A3C5C4 | 48:8D0D 953FD000      | lea rcx,qword ptr ds:                                                                  | 0000000141740560:L"After LoadFrame\n"
0000000140A3C5CB | E8 30020100         | call <designerpro.public: static void __cdecl Error::ReleaseTrace(wchar_t const * __ptr64,...)>   |
0000000140A3C5D0 | E8 4B440100         | call <designerpro.public: static void __cdecl InternetManager::CheckSerialRegistration(void)>   |
0000000140A3C5D5 | 48:8D0D C43FD000      | lea rcx,qword ptr ds:                                                                  | 00000001417405A0:L"After CheckSerialRegistration\n"
0000000140A3C5DC | E8 1F020100         | call <designerpro.public: static void __cdecl Error::ReleaseTrace(wchar_t const * __ptr64,...)>   |
0000000140A3C5E1 | E8 5A0E1D00         | call <designerpro.public: static int __cdecl ProductUpgradeCheck::Init(void)>                     |
3、程序在未注册时运行会出现两个提示窗口(一是欢迎窗口,二是设置程序运行在演示模式提示窗口。)和首界面的“升级”按钮,程序断下后F8往下分析,会看到这个函数call <designerpro.public: int __cdecl CMainFrame::CreateUpgradeButton(void) __ptr64>,此函数就是创建升级按钮的,跳过即可
0000000140A3C9D9 | 48:8D0D 803ED000      | lea rcx,qword ptr ds:                                                                        | 0000000141740860:"OpVerifySubscription"
0000000140A3C9E0 | E8 CBD39FFF         | call <designerpro.public: static int __cdecl OpDescriptor::Do(char * __ptr64,class OpParam * __ptr64)>|
0000000140A3C9E5 | 80BC24 52050000 00    | cmp byte ptr ss:,0                                                                           |
0000000140A3C9ED | 74 70               | je designerpro.140A3CA5F                                                                              | 》【1】
0000000140A3C9EF | 48:8BCF               | mov rcx,rdi                                                                                             |
0000000140A3C9F2 | E8 99DF1100         | call <designerpro.public: int __cdecl CMainFrame::CreateUpgradeButton(void) __ptr64>                  | 》创建程序首页的升级按钮
0000000140A3C9F7 | 48:8D8424 A0000000    | lea rax,qword ptr ss:                                                                           |
0000000140A3C9FF | 48:894424 70          | mov qword ptr ss:,rax                                                                           | :L"XaraX1Mutex"
4、F8再往下调试,有这个函数call <designerpro.public: void __cdecl Application::SetDemoMode(bool) __ptr64>,此函数就是设置程序运行在演示模式,跳过即可
0000000140A3CAAB | 80BC24 51050000 00    | cmp byte ptr ss:,0                                                                           |
0000000140A3CAB3 | 0F85 B0000000         | jne designerpro.140A3CB69                                                                               | 》【2】
0000000140A3CAB9 | 80BC24 50050000 00    | cmp byte ptr ss:,0                                                                           |
0000000140A3CAC1 | 0F85 A2000000         | jne designerpro.140A3CB69                                                                               |
0000000140A3CAC7 | 80BC24 54050000 00    | cmp byte ptr ss:,0                                                                           |
0000000140A3CACF | 74 13               | je designerpro.140A3CAE4                                                                              |
0000000140A3CAD1 | B2 01               | mov dl,1                                                                                                |
0000000140A3CAD3 | 48:8D0D C62E4701      | lea rcx,qword ptr ds:[<class Application _DontReferenceMeDirectly_AppCamelot>]                        |
0000000140A3CADA | E8 917045FF         | call <designerpro.public: void __cdecl Application::SetDemoMode(bool) __ptr64>                        | 》设置程序运行在演示模式提示窗口
0000000140A3CADF | E9 E8000000         | jmp designerpro.140A3CBCC                                                                               |
5、修改【1】、【2】两处,保存程序,试运行破解后的程序,居然已经破解成功,破解前后对比。

aristan 发表于 2021-4-2 16:54

谢谢楼主的分享,学习了,很实用的爆破经验

qhy128 发表于 2021-4-2 21:54

谢谢,学习了。

halewandering 发表于 2021-4-2 21:59

怎么知道的要搜索“CheckSerialRegistration”?
页: [1]
查看完整版本: Xara Designer Pro+ 21.0.1.61743分析爆破