首页
社区
课程
招聘
MM23爆破实录
发表于: 2023-7-27 10:51 4682

MM23爆破实录

2023-7-27 10:51
4682

我们用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天 (用到死,哈哈~~)

其他功能就正常了。

但如里不想出现【试用剩余。。。】呢?


效果就是上面这样子。

这里还有其他的几种授权:

不过感觉显示的内容不会有太大的出入就这样吧。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-7-27 16:43 被ninebell编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
总之口诀和诀窍就是:
见到不利效果的,如【expire的模块】改成(返回空)一般修改成mov al, 0
见到有利效果的,如【license的模块】改成(返回1/真)一般修改成mov al, 1
总之使用经验值、使用场合和感觉都很重要,所以要灵活运用。
2023-7-27 11:01
0
雪    币: 3565
活跃值: (3950)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
厉害了,还有口诀。
2023-7-27 19:04
0
雪    币: 9142
活跃值: (1630)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
只要不vm,f12暂停,堆栈回溯,能搞出很多东西……
2023-7-27 19:26
0
雪    币: 42
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
很多工具,不如自己写啊!网上那么多库!
2023-7-28 19:47
0
雪    币: 42
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
很多工具,都是伪需求.
2023-7-28 19:49
0
雪    币: 1131
活跃值: (4202)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
7
牛逼,666
2023-7-29 12:07
0
游客
登录 | 注册 方可回帖
返回
//