站在巨人的肩膀上
网上找了一些 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 软件下载站了....., 这是我没想道的;
搞到深夜了, 抽根烟睡觉了, 困到不行了;