吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19488|回复: 94
收起左侧

[原创] 绕过 Adobe Audition 登录和许可验证

  [复制链接]
xyx0826 发表于 2020-4-8 05:02
本帖最后由 xyx0826 于 2020-4-9 15:14 编辑

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


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

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

未命名图片.png

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

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

未命名图片.png

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

未命名图片.png
未命名图片.png

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

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

未命名图片.png

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

未命名图片.png

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

未命名图片.png

“程序关闭,因为授权无效。”这部分肯定要跳过去了。
因为关掉授权窗口会导致AL变成0,直接退出程序,所以我们把弹窗的call改成mov al,1,令AL总是为1,退出程序的逻辑就一定会被跳过去。成功!
未命名图片.png

免费评分

参与人数 27吾爱币 +35 热心值 +25 收起 理由
Crazyyushen + 1 热心回复!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ytsuufu + 1 + 1 用心讨论,共获提升!
大帅哥 + 1 + 1 热心回复!
menglingkai2008 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
MakeDave + 1 虽然看懂的,但是能绕过这个验证,应该很不错的。
冰雪冬樱250 + 1 + 1 谢谢@Thanks!
unicornraphael + 1 用心讨论,共获提升!
一醉方休 + 1 + 1 谢谢@Thanks!
馍馍 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
THEFOOLXX + 1 + 1 膜拜大佬、
云谁之思 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Wloy + 1 + 1 用心讨论,共获提升!
Dboykey + 1 + 1 谢谢@Thanks!
Cdreamfly + 1 + 1 我很赞同!
涛之雨 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Dare + 1 + 1 谢谢@Thanks!
hs_f + 1 + 1 谢谢@Thanks!
Alice丶纸飞机 + 1 + 1 我很赞同!
冥界3大法王 + 4 很不错!一会下载一个实践下。
handsomegod + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
bill_fish + 1 + 1 用心讨论,共获提升!
smile5 + 1 谢谢@Thanks!
sunptf + 1 + 1 用心讨论,共获提升!
wkxq + 3 + 1 不错的分析,支持楼主
为你而战 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2020-4-8 17:30
本帖最后由 冥界3大法王 于 2020-4-8 17:34 编辑

@xyx0826
好,确实是那里
这个工具有几个不错的地方
能看目标进程的上下层对应关系
网络端口,连网地址 ,比如这个程序 Adobe Audition.exe (7124), license.codegear.com, 53303, license.codegear.com, 53302, TCP, Established,
查看窗口功能和类名不如其他工具直白,有点绕路。
不过比任务管理器强姥姥去了,是个破解好助手。


我给我的x32dbg辅助伴侣又加了几个功能
[Asm] 纯文本查看 复制代码
if (GetAsyncKeyState(VK_MENU) < 0) and (GetAsyncKeyState(Ord('A')) < 0) then        //Alt+A (先把x64dbg中的热键清掉,得到激活窗口的PID
  begin
    h := GetForegroundWindow;         //这个是句柄
    GetWindowThreadProcessId(h, @pid);
    pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
    GetModuleFileNameEx(pHandle, 0, buf, Length(buf));

    GetWindowText(h, @arr, SizeOf(arr));
    Application.MessageBox(arr, '当前激活的窗口标题', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON3 + MB_TOPMOST);

    GetClassName(h, ps, 255);        //得到激活的窗口类名
    Application.MessageBox(ps, '窗口类名', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON3 + MB_TOPMOST);

    path := GetProcessExePath(h);   //得到激活窗口的完整路径
    Application.MessageBox(PChar(path), '激活窗口的完整路径', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON3 + MB_TOPMOST);

    //ShowMessage('当前窗口的句柄为:' + IntToStr(h));  //这个是 10 进制的
    Application.MessageBox(PChar(IntToHex(StrToInt(IntToStr(h)))), '当前窗口的句柄为(16进制的):', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON3 + MB_TOPMOST);     //这个是转换成16进制的

   {
    begin                                         //遍历打开的全部窗口
      h := GetWindow(Handle, GW_HWNDFIRST);
      while h <> 0 do
      begin
        if GETWindowText(h, @Text, 255) > 0 then   //判断得到的窗口标题
          if (POS('分析模块', Text) > 0) then      //判断得到的局部窗口标题
          begin
            //ShowMessage(Text);
            SetWindowPos(h, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);  //激活窗口

          end;
        h := GetWindow(h, GW_HWNDNEXT);
      end;
    end;  }
//  ShowMessage(IntToHex(StrToInt(Format('%u',[pid])), 4));   //再转换成 16进制,因为x32dbg/x64dbg 附加进程用到的是 16进制数
    Clipboard.AsText := 'AttachDebugger ' + IntToHex(StrToInt(Format('%u', [pid])), 4) + ',' + IntToHex(StrToInt(IntToStr(h)));
    SendMyPress(Clipboard.ToString);
//    ShowMessage('回到X64dbg中并在命令行处开心的粘贴吧!' + #13#10 + '命令行代码为:  ' + Clipboard.AsText + #13#10 + '你会发现程序已神奇的附加了!');
    CloseHandle(pHandle);
    MediaPlayer1.FileName := ExtractFileDir(Application.Exename) + '\Sound\已经复制到剪贴板.wav';
    MediaPlayer1.Open;
    MediaPlayer1.Play;
  end;

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Hmily + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

hdzrmlm 发表于 2020-4-8 05:45
wapjcxz 发表于 2020-4-8 06:33
ms8557 发表于 2020-4-8 06:36
为防止大面积传播,该功能远程控制,网络验证成功才可使用,开发者保留随时全网禁用的权利
kkklj 发表于 2020-4-8 06:59
Adobe 的远程验证是挺麻烦的
为你而战 发表于 2020-4-8 07:04
谢谢分享
wjwddd 发表于 2020-4-8 07:11
谢谢楼主辛苦分享!
RZJ-YQJY 发表于 2020-4-8 07:16
66666666666666666骚操作
TYUTlfx 发表于 2020-4-8 07:22
相当给力嗷
zkq970413 发表于 2020-4-8 07:28
厉害了!膜拜大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 03:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表