我们用x64dbg加载主程序后,直接让程序跑起来
貌似是从22版本之后,就开始了先登录试用30天后再进主界面的行为了。
先前的版本都是输入注册码之后。。。
先查下壳
还好没壳没花Microsoft Visual C++ 2015的,现在就可以愉快的玩耍了。
当【开始免费试用】按钮出来之后,你会发现这实际上一个内嵌的网页窗口,遮挡住了下面的主窗口
你点顶上的关闭也好,或者是没有输入在线的帐号密码也好,都会导致直接退出。
在线申请帐号可以得到30天的测试机会,过期之后,就只能预览不能编辑了。
现在我们就来搞定第一个拦路虎吧。
当【开始免费试用】按钮出来之后,我们按F12暂停程序,Alt+K来到堆栈窗口中
这里模块比较多,我们从上向下观察,不难发现上面有个 DoModal的模态窗口 ,我们双击红色箭头所指的地方跟随过去(有时x64dbg中的显示不如OD正常,有时需要重复多试几次才能有此效果,估计算是不稳定或bug吧)
我们来到了 00000001400A8F0A
上行是00000001400A8F04 | FF15 9E9D0401 | call qword ptr ds:[<public: virtual __int64 __cdecl CmjMfcEnhancedDialog::DoModal(void
段首是00000001400A8E60 | 48:894C24 08 | mov qword ptr ss:[rsp+8],rcx | rcx:NtUserGetMessage+14
并且段首有4处调用点,我们尝试ret或mov al,1; ret 都可轻松跳过该遮挡窗口
我们发现修改成功了,我们进到主界面里边啦~~
相关代码:
00000001400A8E60 | 48:894C24 08 | mov qword ptr ss:[rsp+8],rcx ==》这里ret或mov al,1 |
00000001400A8E65 | 48:81EC F8020000 | sub rsp,2F8 |
00000001400A8E6C | 48:C74424 40 FEFFFFFF | mov qword ptr ss:[rsp+40],FFFFFFFFFFFFFFFE | [rsp+40]:const CmjMfcManageRemindersDialog::`vftable'+4AE280
00000001400A8E75 | 48:8B05 A4696A01 | mov rax,qword ptr ds:[14174F820] |
00000001400A8E7C | 48:33C4 | xor rax,rsp |
00000001400A8E7F | 48:898424 E0020000 | mov qword ptr ss:[rsp+2E0],rax |
00000001400A8E87 | 48:8B8424 00030000 | mov rax,qword ptr ss:[rsp+300] |
00000001400A8E8F | 0FB640 34 | movzx eax,byte ptr ds:[rax+34] |
00000001400A8E93 | 85C0 | test eax,eax |
00000001400A8E95 | 74 07 | je mindmanager.1400A8E9E ==》或这里NOP掉! |
00000001400A8E97 | B0 01 | mov al,1 |
00000001400A8E99 | E9 ED010000 | jmp mindmanager.1400A908B |
00000001400A8E9E | 48:8B8424 00030000 | mov rax,qword ptr ss:[rsp+300] |
00000001400A8EA6 | 48:83C0 34 | add rax,34 |
00000001400A8EAA | 48:894424 30 | mov qword ptr ss:[rsp+30],rax | [rsp+30]:Ordinal#2223+17
00000001400A8EAF | 48:8B4424 30 | mov rax,qword ptr ss:[rsp+30] | [rsp+30]:Ordinal#2223+17
00000001400A8EB4 | 0FB600 | movzx eax,byte ptr ds:[rax] |
00000001400A8EB7 | 884424 38 | mov byte ptr ss:[rsp+38],al |
00000001400A8EBB | 48:8B8424 00030000 | mov rax,qword ptr ss:[rsp+300] |
00000001400A8EC3 | C640 34 01 | mov byte ptr ds:[rax+34],1 |
00000001400A8EC7 | 33C0 | xor eax,eax |
00000001400A8EC9 | 83F8 01 | cmp eax,1 |
00000001400A8ECC | 0F84 A3010000 | je mindmanager.1400A9075 |
00000001400A8ED2 | 48:8B8424 00030000 | mov rax,qword ptr ss:[rsp+300] |
00000001400A8EDA | 48:8B00 | mov rax,qword ptr ds:[rax] |
00000001400A8EDD | 48:8B8C24 00030000 | mov rcx,qword ptr ss:[rsp+300] |
00000001400A8EE5 | FF50 30 | call qword ptr ds:[rax+30] |
00000001400A8EE8 | 0FB6C0 | movzx eax,al |
00000001400A8EEB | 85C0 | test eax,eax |
00000001400A8EED | 75 26 | jne mindmanager.1400A8F15 |
00000001400A8EEF | 45:33C0 | xor r8d,r8d |
00000001400A8EF2 | 33D2 | xor edx,edx |
00000001400A8EF4 | 48:8D4C24 50 | lea rcx,qword ptr ss:[rsp+50] |
00000001400A8EF9 | E8 72B23F00 | call <mindmanager.sub_1404A4170> |
00000001400A8EFE | 90 | nop |
00000001400A8EFF | 48:8D4C24 50 | lea rcx,qword ptr ss:[rsp+50] |
00000001400A8F04 | FF15 9E9D0401 | call qword ptr ds:[<public: virtual __int64 __cdecl CmjMfcEnhancedDialog::DoModal(voi |
但你会发现一个新问题,左侧的按钮全为虚化,不可点击,并且 【只读 试用到期】,只能打开预览并不能编辑。
在这里输入不输入申请的帐号都会过期(以前没申请的帐号应该可以得到30天试用期)
在这里你有多种修改选择,尝试改成无限试用下去,尝试改成注册版。
上面的截图处发现有个叫ReadDesktopServer的 ,还有一个叫ReadLicenseCloudInfo的我们都修改成mov al,1
在模块中搜索相关字符串expire ,我们修改成mov al, 0 ;ret
修改后的效果就是下面这样的:
出现试用剩余-19564天 (用到死,哈哈~~)
其他功能就正常了。
但如里不想出现【试用剩余。。。】呢?
效果就是上面这样子。
这里还有其他的几种授权:
不过感觉显示的内容不会有太大的出入就这样吧。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2023-7-27 16:43
被ninebell编辑
,原因: