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】两处,保存程序,试运行破解后的程序,居然已经破解成功,破解前后对比。
谢谢楼主的分享,学习了,很实用的爆破经验 谢谢,学习了。 怎么知道的要搜索“CheckSerialRegistration”?
页:
[1]