当前位置:首页 >> 破解资源

绕过 Adobe Audition 登录和许可验证


此破解不完全,仍处于试用期的话不能完全屏蔽弹窗。请继续阅读@冥界3大法王的续传

自古以来,A厂全家桶都是以CS(Creative Suite)的形式发售。破解CS系列非常简单,替换AMTLib.dll即可。
但是近几年A厂把这些程序搬到了CC(Creative Cloud)云平台上,下载安装运行需要注册,云同步和授权验证也需要联网。
在被Audacity的上古界面折腾得受不了以后,我把眼光转向了Audition。(A厂真香!)

在试用过期以后,打开Audition最明显的特征就是会出现一个遮蔽窗口,要求登录:

绕过 Adobe Audition 登录和许可验证

关掉窗口以后Audition就会直接退出。用Process Hacker定位到这个窗口以后尝试设置不可见,然而Audition的主界面仍然不可点击。
看来需要对Audition的逻辑进行分析。

使用CreateWindow系列API作为切入点。这个登录窗口的类名(Class name)为EmbeddedWB

绕过 Adobe Audition 登录和许可验证

搜索Audition的所有模块,果然发现AuUI.dll里有这个字符串。

绕过 Adobe Audition 登录和许可验证
绕过 Adobe Audition 登录和许可验证

这块逻辑里加载了这个字符串,然后把它当作窗口类名(第二个参数,RDX)直接传入CreateWindowExW,正如我们所猜测。
向上看看这个函数的其余部分,发现有个字符串叫EMBEDDED_BROWSER_AUTH_WORKFLOW(嵌入式浏览器认证流),说明这个函数已经深入授权逻辑。
这个负责弹窗的函数并不是我们想找的。如果能绕过整个授权逻辑,而不只是跳过这个弹窗,岂不美哉?

下面要做的就是看调用堆栈,一层一层往上找。最后来到一个函数,它的开头是这样的:

绕过 Adobe Audition 登录和许可验证

是一个导出函数,名字翻译成C++就是private: virtual void __cdecl aui::Application::DoIdle(void) __ptr64,看起来是UI主循环一类。所以这个函数不能跳过去。
回到我们跟踪调用堆栈找到的弹窗call

绕过 Adobe Audition 登录和许可验证

call之后test RAX里的值,如果是1就跳转,如果是0就继续执行。继续执行什么呢?下面写着"AuLog.Shutdown",关闭程序了。
往下翻翻,还有一行日志:

绕过 Adobe Audition 登录和许可验证

“程序关闭,因为授权无效。”这部分肯定要跳过去了。
因为关掉授权窗口会导致AL变成0,直接退出程序,所以我们把弹窗的call改成mov al,1,令AL总是为1,退出程序的逻辑就一定会被跳过去。成功!
绕过 Adobe Audition 登录和许可验证