surge for mac 5.7 逆向分析

查看 233|回复 9
作者:Vvvvvoid   
分析过程
站在巨人的肩膀上
网上找了一些 4. 5.的逆向资料, 结合分析了一番, 这个很重要,划重点;
ptrace 反调试
程序入口有 ptrace 相关, 调试会出现 Process xxxx exited with status = 45 (0x0000002d)错误 ;
hook ptrace 函数处理
DobbyHook((void *)ptrace, (void *)my_ptrace, (void *)&orig_ptrace);
程序启动后,有个函数会检测 license type
1:试用
2:已授权
3:不可用(已被注销)
4:过期
5:不可用
ret2 即可
DobbyHook(_sub_license_type_ptr, ret2, nil);
license sign 验证
这一步得从盘古开天辟地开始说起...
policy 信息存在 扩展属性中,需要 hook 掉 sign 签名验证( verify(policy,sign)) ret 1,
或者自己生成一份public/private key, 伪造公钥  
即可生成 license
{
"policy":"",
"sign":""
}
改完之后程序会弹框(检测到文件被修改),并退出
会检测主程序 跟 Framework 下的二进制依赖程序(防 dylib 注入?)
nop 掉
DobbyHook(_sub_check_file, ret, nil);
程序启动后会有一些 api 接口请求验证, nop掉
DobbyHook(_sub_api_verify, ret1, nil);
helper 后台程序也有文件完整教研, nop 掉
之后要清理 helper 与主程序的 sign 信息,否则 helper 安装不上;


1.png (944.71 KB, 下载次数: 0)
下载附件
2024-5-2 02:16 上传



2.png (244.2 KB, 下载次数: 0)
下载附件
2024-5-2 02:16 上传



3.png (289.93 KB, 下载次数: 0)
下载附件
2024-5-2 02:16 上传

还有一个暗z, 已处理
不需要的请求要屏蔽干净, 随机时间 kill -9 真恶心
后记
突然想到,几个月前,我开源了一个 dylib, 支持 mac 平台 我平常用的多的一些软件的 patch 补丁;
但是有人 down 下来之后把我版权改了, 然后上传到各个 MAC 软件下载站了....., 这是我没想道的;
搞到深夜了, 抽根烟睡觉了, 困到不行了;

程序, 下载次数

Vvvvvoid
OP
  

TODO 还有一个暗z, 程序每个小时会异常重启呢,
我在研究下.
[Asm] 纯文本查看 复制代码 [SGFileDescriptor-1327] Failed to close file descriptor: Error Domain=NSPOSIXErrorDomain Code=9 "Bad file descriptor" UserInfo={NSLocalizedDescription=Bad file descriptor}
[SGLog] Call stack: (
    0   Surge                               0x00000001097a2642 Surge + 755266
    1   Surge                               0x00000001097a25ca Surge + 755146
    2   Surge                               0x00000001098184d6 Surge + 1238230
    3   Surge                               0x00000001096f709d Surge + 53405
    4   Surge                               0x0000000109881415 Surge + 1668117
    5   libdispatch.dylib                   0x00007ff804cbdac6 _dispatch_call_block_and_release + 12
    6   libdispatch.dylib                   0x00007ff804cbedbc _dispatch_client_callout + 8
    7   libdispatch.dylib                   0x00007ff804cc4eff _dispatch_lane_serial_drain + 800
    8   libdispatch.dylib                   0x00007ff804cc5997 _dispatch_lane_invoke + 377
    9   libdispatch.dylib                   0x00007ff804ccf414 _dispatch_root_queue_drain_deferred_wlh + 271
    10  libdispatch.dylib                   0x00007ff804cced2a _dispatch_workloop_worker_thread + 451
    11  libsystem_pthread.dylib     
sodouxy   

mark!!!!
hipojie   

感谢分享,学习了
nmweizi   

mark!!!!
suifei   

关注并学习!
wyib38080   

谢谢分享
Sunny2023   

感谢分享,盗用可耻
laomaotao   

感谢大佬分享!!
zyastc521   

学习了,感谢分享!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部