[原创] Movavi Academic 2020分析和Patch
发表于:
2020-5-10 12:08
4346
[原创] Movavi Academic 2020分析和Patch
因为要给孩子做点视频啥的,就找到这个工具,当然网络上也有某大神的破解结果,不过他的补丁做了保护,作为强迫症,对于杀毒软件的提示是不能忍受的,就撸了一下它。 版本信息:直接官网下载的最新版本。
开始上调试器没有做反调试,程序会退出,虽然没有做很强的保护。
先在软件的激活框随便输入点啥,提示:XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX,因为这个是QT实现,肯定有一些逻辑在DLL中。 通过对文件内搜索,在Application.dll内找到它的位置。 地址=000007FEB4661338 反汇编=lea r8,qword ptr ds:[7FEB467A830] 字符串="<b>Activation error.</b><br><br>Please check if the key has the following format XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX and try again." 地址=000007FEB4661338 反汇编=lea r8,qword ptr ds:[7FEB467A830] 字符串="<b>Activation error.</b><br><br>Please check if the key has the following format XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX and try again." 设置断点后,停止下来:
正则如下:^\d{6}-\d{5}-\d{5}-\d{5}-\d{5}-\d{5}-\d{5}$,通过这个表达式验证,发现应该Key全为数字,再次构造一个KEY: 123456-12345-12345-12345-12345-12345-12345 这次断点在了academic.exe内部,从给出的破解也是这个文件,所以具体去分析一下: 000000013F177DFC | 48:81EC 70010000 | sub rsp,170 | 000000013F177E03 | 48:8B05 EEC90A00 | mov rax,qword ptr ds:[13F2247F8] | 000000013F177E0A | 48:33C4 | xor rax,rsp | 000000013F177E0D | 48:8945 60 | mov qword ptr ss:[rbp+60],rax | 000000013F177E11 | 48:8BFA | mov rdi,rdx <------ | 000000013F177E14 | 48:8BD9 | mov rbx,rcx | 000000013F177E17 | 48:895424 58 | mov qword ptr ss:[rsp+58],rdx | 000000013F177E1C | 33F6 | xor esi,esi | 对应的函数:sub_140067DF0(int64 a1, int64 a2) 输入后,得到注册失败,监控网络注册过程: 地址=000000013F11A239 反汇编=lea rcx,qword ptr ds:[13F1F4C88] 字符串=9a8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4U0N6r3W2$3j5i4c8A6L8$3&6K6i4K6u0W2L8h3!0$3j5i4k6A6i4K6u0W2j5$3!0E0i4K6u0r3j5h3y4@1K9i4k6S2N6r3f1K6i4K6u0W2M7r3S2H3 地址=000000013F11A269 反汇编=lea rcx,qword ptr ds:[13F1F4CB8] 字符串=25eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4U0N6r3W2$3j5i4c8A6L8$3&6K6i4K6u0W2L8h3!0$3j5i4k6A6i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2&6i4K6u0r3j5$3S2W2j5$3E0Q4y4h3k6W2P5s2m8A6M7X3q4@1K9h3!0F1 并没有想着去破解在线注册,看到它可以通过离线注册,就查看了一下逻辑: 从上面的逻辑,应该是发邮件给提供商,会给提供一个码,填进去就OK了!!!先随便输入一个后,程序停了下来:
可以看到我输入的码信息:全为11,对应函数为: Offline_key = ^([\dA-Z]{8}-){15}[\dA-Z]{8}$ 构建KEY: 12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678-12345678 到这里就进入到函数:sub_1400558F0 因为字符串没有混淆,做了Patch,以为就可以破解了,结果程序直接奔溃了:
很奇怪是吧,这段地址都不在代码段,重新试了一次,发现程序通过内存位置,进入了一个dll函数调用: 而且分析它的代码发现它是加密的,这个应该是做了保护的本地认证模块了。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!