吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25913|回复: 169
上一主题 下一主题
收起左侧

[MacOS逆向] 破解PhotoShop CC 24.4.1: 基于LLDB动态调试与补丁注入

    [复制链接]
跳转到指定楼层
楼主
QiuChenly 发表于 2023-4-28 04:06 回帖奖励
本帖最后由 QiuChenly 于 2023-5-4 21:40 编辑

破解PhotoShop CC 24.4.1: 基于LLDB动态调试与补丁注入

前情提要

最近在追一个护士小姐姐,带出来玩了两次手都牵上了感觉很有机会,而且最近沉迷拍照,要修图的时候发现网上的版本最高也就是24.2.0,而且一联网还提示我ps无法使用,显然是检测到了盗版。无奈之下只能自己动手破解最新版,就为了修自己拍的照片。

那么看我帖子比较多的朋友呢我就不重复一些简单的步骤了,大家可以参考我早期发布的帖子互补一下相关的信息。
这次破解PS也是受到了一些朋友的帮助,还有HSICO团队放出来的24.2版本的破解文件,在此表示感谢。
本文并没有写出我失败的过程,仅仅写了成功的步骤,所以内容会有些简短。

2023.5.4 今天妹妹没约出来 很生气 索性就把Adobe全家桶都给办掉吧

把macOS上Adobe全家桶全给破解了
全部是截止2023.5.4 Adobe最新的版本

此教程提供的方法中已经破解的版本有:
Adobe XD 版本 56.1.12.1
Adobe Audition 2023 23.3
Adobe Illustrator 27.5.0
Adobe Dreamweaver 2021 21.3.0.15593
Adobe AfterEffects 23.3
Adobe PremierePro 23.3
Adobe Animate 2023 23.0.1
Adobe Media Encoder 2023 23.3
Adobe Lightroom Classic 12.3
Adobe PhotoShop 24.4.1
Adobe Acrobat 23.001.20143

0x01 开始


0x02 先上LLDB

lldb /Applications/Adobe\ Photoshop\ 2023/Adobe\ Photoshop\ 2023.app/Contents/MacOS/Adobe\ Photoshop\ 2023

输入run直接附加上去启动看看。



开局就给了我一点小小的购买正版震撼。

为了看反汇编,我们放出IDA跑一下。

等待分析IDA结果时,我们先观察一下这个app。
首先这是订阅制,那么订阅制有两种方案,一种是伪造返回数据,另一种自然就是爆破用户检查有效期的函数了。伪造数据比较复杂,这里还是选择爆破关键函数。

我们打开抓包软件,观察如下:
在启动app时,我们看到这样:

而颇为凑巧的是,app还发送了一个获取用户信息的请求

那么我们必然是有端联想:
他通过这个api获取用户信息后进行检查是否过期,如果过期则弹窗强制退出app,否则继续使用。

下面就开始检察官搜查系列:


可以看到这个网址确实存在且只有一个地方引用,所以我们开始跳转过去:
为了找到调用堆栈,我们要给1042C6E13地址下断点:

br s -a 0x1042C6E13

随后输入r重启app,让他断在我们的地址:

Process 72209 stopped
* thread #16, name = 'com.adobe.ngl-0x70000db2f000', stop reason = breakpoint 9.1
    frame #0: 0x00000001042c6e13 Adobe Photoshop 2023`___lldb_unnamed_symbol253631 + 9
Adobe Photoshop 2023`___lldb_unnamed_symbol253631:
->  0x1042c6e13 <+9>:  lea    rsi, [rip + 0x37502c1]    ; "/ims/token/v4"
    0x1042c6e1a <+16>: call   0x1042c6750               ; ___lldb_unnamed_symbol253608
    0x1042c6e1f <+21>: mov    rax, rbx
    0x1042c6e22 <+24>: add    rsp, 0x8
Target 0: (Adobe Photoshop 2023) stopped.
(lldb) 

然后我们输入bt查看堆栈

(lldb) bt
* thread #16, name = 'com.adobe.ngl-0x70000db2f000', stop reason = breakpoint 9.1
  * frame #0: 0x00000001042c6e13 Adobe Photoshop 2023`___lldb_unnamed_symbol253631 + 9
    frame #1: 0x000000010422b883 Adobe Photoshop 2023`___lldb_unnamed_symbol252241 + 1499
    frame #2: 0x0000000104227a09 Adobe Photoshop 2023`___lldb_unnamed_symbol252233 + 145
    frame #3: 0x0000000104229885 Adobe Photoshop 2023`___lldb_unnamed_symbol252235 + 61
    frame #4: 0x000000010428c40e Adobe Photoshop 2023`___lldb_unnamed_symbol253115 + 28
    frame #5: 0x0000000104296911 Adobe Photoshop 2023`___lldb_unnamed_symbol253131 + 2499
    frame #6: 0x0000000104287eaf Adobe Photoshop 2023`___lldb_unnamed_symbol253076 + 101
    frame #7: 0x00000001042a4b0a Adobe Photoshop 2023`___lldb_unnamed_symbol253187 + 44
    frame #8: 0x00000001042db930 Adobe Photoshop 2023`___lldb_unnamed_symbol253891 + 270
    frame #9: 0x00000001041a470e Adobe Photoshop 2023`___lldb_unnamed_symbol250887 + 66
    frame #10: 0x00000001041d6a0e Adobe Photoshop 2023`___lldb_unnamed_symbol251200 + 646
    frame #11: 0x00000001041d3b62 Adobe Photoshop 2023`___lldb_unnamed_symbol251156 + 34
    frame #12: 0x000000010424e497 Adobe Photoshop 2023`___lldb_unnamed_symbol252488 + 71
    frame #13: 0x00000001041ec35a Adobe Photoshop 2023`___lldb_unnamed_symbol251707 + 26
    frame #14: 0x000000010424e5d7 Adobe Photoshop 2023`___lldb_unnamed_symbol252490 + 59
    frame #15: 0x00007ff81a66d1d3 libsystem_pthread.dylib`_pthread_start + 125
    frame #16: 0x00007ff81a668bd3 libsystem_pthread.dylib`thread_start + 15
(lldb) 

都是非常可疑的函数调用链条,为了一步到位我们直接看#14.

__int64 __fastcall sub_10424E59C(_QWORD *a1)
{
  void **v1; // rbx
  pthread_key_t *v2; // rax
  const void *v3; // rsi
  __int64 (__fastcall *v4)(_QWORD); // rax
  _QWORD *v5; // rdi
  __int64 v6; // rax

  v1 = a1;
  v2 = std::__1::__thread_local_data(a1);
  v3 = *a1;
  *a1 = 0LL;
  pthread_setspecific(*v2, v3);
  v4 = a1[1];
  v5 = v1[3] + v1[2];
  if ( v4 & 1 )
    v4 = *(v4 + *v5 - 1);
  v6 = v4(v5);
  sub_10424E1BE(v6, v1);
  operator delete();
  return 0LL;
}

可以看到这里显然是一个线程函数,__thread_local_data/pthread_setspecific一出来我就闻到那味儿了。
虽然但是,这里还不算,我们继续xref看看有没有引用了:

unsigned int __fastcall sub_10424E4E8(pthread_t *a1, __int128 *a2, __int64 *a3)
{
  __int64 *v3; // r12
  std::__1::__thread_struct *v4; // r15
  char *v5; // rbx
  __int128 v6; // xmm0
  __int64 v7; // rax
  unsigned int result; // eax
  const char *v9; // rdx

  v3 = a3;
  v4 = operator new(8uLL);
  std::__1::__thread_struct::__thread_struct(v4);
  v5 = operator new(0x20uLL);
  v6 = *a2;
  v7 = *v3;
  *v5 = v4;
  *(v5 + 8) = v6;
  *(v5 + 3) = v7;
  result = pthread_create(a1, 0LL, sub_10424E59C, v5);
  if ( result )
  {
    std::__1::__throw_system_error(result, "thread constructor failed", v9);
    BUG();
  }
  return result;
}

这里adobe创建了一个线程并返回了线程id,恰好执行的sub_10424E59C任务就是我们找到这个函数。

0x03 注入补丁持久化破解

我们新建一个Library库,编写一个简单的hook代码将sub_10424E59C这个函数nop掉。
关于如何新建Library库进行注入,可以看我之前的帖子,这些基本步骤都相同,在此不再赘述。

随后复制/Applications/Adobe Photoshop 2023/Adobe Photoshop 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE到/Applications/Adobe Photoshop 2023/Adobe Photoshop 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE_副本,然后注入我们编译出来的补丁:

sudo insert_dylib /Users/qiuchenly/Library/Caches/JetBrains/AppCode2023.1/DerivedData/InlineInjectPlugin-eklzvojrwuuobhdysecelanfrlvy/Build/Products/Debug/libInlineInjectPlugin.dylib /Applications/Adobe\ Photoshop\ 2023/Adobe\ Photoshop\ 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE_副本 /Applications/Adobe\ Photoshop\ 2023/Adobe\ Photoshop\ 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE
Last login: Fri Apr 28 00:51:22 on ttys003
❯ sudo insert_dylib /Users/qiuchenly/Library/Caches/JetBrains/AppCode2023.1/DerivedData/InlineInjectPlugin-eklzvojrwuuobhdysecelanfrlvy/Build/Products/Debug/libInlineInjectPlugin.dylib /Applications/Adobe\ Photoshop\ 2023/Adobe\ Photoshop\ 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE_副本 /Applications/Adobe\ Photoshop\ 2023/Adobe\ Photoshop\ 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE
Password:

====================
2023.2.26 秋城落叶修改版
感谢insert_dylib的开源人员!仓库地址:https://github.com/Tyilo/insert_dylib
====================

/Applications/Adobe Photoshop 2023/Adobe Photoshop 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE 目标文件已经存在. 要重写他吗? [y/n] y
这是一个FAT格式二进制,携带 2 个架构的代码(Intel/Apple Silicon ARM64).
发现代码加载签名: LC_CODE_SIGNATURE load command. 要自动删掉吗? [y/n] y
发现代码加载签名: LC_CODE_SIGNATURE load command. 要自动删掉吗? [y/n] y
添加 LC_LOAD_DYLIB 指令到通用架构, 应用程序:/Applications/Adobe Photoshop 2023/Adobe Photoshop 2023.app/Contents/Frameworks/AdobeARE.framework/Versions/A/AdobeARE。

这样就注入成功。
然后我们直接打开PhotoShop,可以看到成功破解。

存在的问题

  1. 首页不会展示上次文件打开历史,注意不是无法保存文件,功能都正常。
  2. 无法连接在线服务

参考补丁文件

https://github.com/QiuChenly/MyMacsAppCrack

免费评分

参与人数 59威望 +1 吾爱币 +77 热心值 +57 收起 理由
yuanz8 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ne0w0r1d + 1 + 1 支持!
mailcam + 1 + 1 用心讨论,共获提升!
aa82053893 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
代尔 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yks1985 + 1 + 1 我很赞同!
18696766677 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Akou19 + 1 + 1 热心回复!
roy1218 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhongwenmingma + 1 + 1 我很赞同!
lmdragon315 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
5ayuan + 1 + 1 我很赞同!
havt + 1 + 1 谢谢@Thanks!
liyezhi7742 + 1 + 1 用心讨论,共获提升!
Qsj123 + 1 谢谢@Thanks!
a012305 + 1 + 1 谢谢@Thanks!
meishijiemeimei + 1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
深度值得伸入 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
52help + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
whxcjyrc + 1 + 1 谢谢@Thanks!
林英俊 + 1 用心讨论,共获提升!
QAQ~QL + 1 + 1 我很赞同!
lingyun011 + 1 + 1 用心讨论,共获提升!
fineapple + 1 + 1 谢谢@Thanks!
yumic114 + 1 用心讨论,共获提升!
大大连连 + 1 + 1 膜拜大神
longjiuzhou114 + 1 + 1 谢谢@Thanks!
bullshit + 1 + 1 谢谢@Thanks!
Atnil + 1 + 1 谢谢@Thanks!
木叶翃 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
0106yingzi + 1 + 1 热心回复!
SBKK123456 + 1 + 1 科技泡妞,支持
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
m1y3ll0w + 1 + 1 搜查官和护士都爱
唐小样儿 + 1 + 1 我很赞同!
wincao + 1 + 1 爱情让人进步
happykeke + 1 谢谢@Thanks!
pjy612 + 1 + 1 可惜不是修仙流~
fast123 + 1 热心回复!
woyucheng + 1 + 1 谢谢@Thanks!
wangsz + 1 + 1 我很赞同!
shandian281 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Mint_Grass + 1 + 1 用心讨论,共获提升!
advertising + 1 + 1 谢谢@Thanks!
zhuhaotian99 + 1 + 1 我很赞同!
17GoGaming + 1 + 1 谢谢@Thanks!
skiss + 1 + 1 谢谢@Thanks!
461735945 + 1 + 1 谢谢@Thanks!
suko + 1 + 1 谢谢@Thanks!
w3731026 + 1 + 1 谢谢@Thanks!
38342175 + 1 + 1 这是爱的力量
qxl1128 + 1 + 1 冠西的影迷?
smile1110 + 1 谢谢@Thanks!
Aegean0376 + 1 + 1 用心讨论,共获提升!
GenW + 4 + 1 会拍照又会破解,这不是宝藏摄影师嘛?
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
blindcat + 1 + 1 谢谢@Thanks!
aiwamusic + 1 + 1 用心讨论,共获提升!

查看全部评分

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

推荐
smile1110 发表于 2023-4-28 07:59
@QiuChenly 三不娶,护士,银行女,幼师,这是无数人总结出来的教训
推荐
blindcat 发表于 2023-4-28 07:30
推荐
回首雨季 发表于 2023-4-28 11:11
不用这么麻烦啊 话说你们都不知道 GenP吗  可以一键破解最新版的所有Adobe的软件
4#
whglaowang888 发表于 2023-4-28 05:21
学习受教,感谢例程。
5#
my2008og 发表于 2023-4-28 07:20
大佬厉害啊,学习了!
6#
qqaoshi888 发表于 2023-4-28 07:48
英雄虽然难过美人关,但是楼主破解方面确实厉害呀
7#
xiexiaoxi 发表于 2023-4-28 07:54
做大做强
8#
sunyidaoshang 发表于 2023-4-28 07:59
做的不错啊,破解后成果分享一下呀。
9#
lras 发表于 2023-4-28 08:03
出来两次都牵上了,就因为忙着搞破解,失去了两次机会,朋友,你这聪明没用在正地方啊
10#
daoye9988 发表于 2023-4-28 08:07
好手笔啊,学习受教了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 09:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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