云在天 发表于 2020-7-27 08:46

【Mac】简单记录下对某软件限制使用的分析


#### 限制使用 具体表现在:程序位置必须在应用程序目录,不能为其他目录

**有图有真相,先看图**


**然后看看真相后面隐藏了什么,上代码图**


- 先说说*applicationWillFinishLaunching*这个函数是干嘛的,是载入程序时调用的,看字面意思也看得出来,注意,只有正常加载完这个函数程序才会正常启动。
- 再来说是下面他干的事情

```
v3 = objc_msgSend(&OBJC_CLASS___NSBundle, "mainBundle", a3);
v4 = (void *)objc_retainAutoreleasedReturnValue(v3);
v5 = v4;
v6 = objc_msgSend(v4, "bundlePath");
v7 = (void *)objc_retainAutoreleasedReturnValue(v6);
v8 = v7;
v9 = objc_msgSend(v7, "stringByDeletingLastPathComponent");
v10 = (void *)objc_retainAutoreleasedReturnValue(v9);
```
这几句话就是获取当前程序的运行目录
```
v11 = objc_msgSend(v10, "lowercaseString");
v12 = (void *)objc_retainAutoreleasedReturnValue(v11);
v13 = (unsigned __int64)objc_msgSend(v12, "isEqualToString:", CFSTR("/applications"));
```
上面这几句呢,是把获取到的目录转成小写,在和*/applications*比较是否一致
```
if ( v13 )
{
    if ( (unsigned __int8)+(&OBJC_CLASS___NeatNsUtils, "wasLaunchedAsLoginItem")
      && !(unsigned __int8)+(&OBJC_CLASS___NeatNsUtils, "getSettingAutoStart") )
    {
      objc_msgSend(NSApp, "terminate:", 0LL);
    }
}
else
{
    +(
      &OBJC_CLASS___NeatNsUtils,
      "showMessage:description:",
      CFSTR("NeatDownloadManager should run from Applications folder."),
      CFSTR("Please CopyNeatDownloadManager.appto \r\n /Applications folder and then run it."));
    objc_msgSend(NSApp, "terminate:", 0LL);
}
```
如果对比是在应用程序目录,就进行一系列的操作,这里我就不展开了
**重点是**,如果对比结果为否,就是不在应用程序目录,那就弹窗
> CFSTR("NeatDownloadManager should run from Applications folder."),
      CFSTR("Please CopyNeatDownloadManager.appto \r\n /Applications folder and then run it."));

这就是上面第一张图的结果了,至于解除限制也简单,把最后这个跳转NOP掉就好了

best_919 发表于 2020-7-27 17:49

本帖最后由 best_919 于 2020-7-27 17:51 编辑

吾道一以贯之 发表于 2020-7-27 10:07
支持大佬,现在的idm在下载b视频时,好多都没声音,有解决办法吗?
将B站视频播放方式改成 FLASH 就OK;默认 H5 播放器是下载不了声音的.

酷酷的爷 发表于 2020-8-20 12:48

原贴https://www.52pojie.cn/thread-1249351-1-1.html


整改后的软件下载链接https://tmwl.lanzouj.com/b015pd4fe

烦请版主看看这个整改后的是否适合发帖.

刚刚发送消息上限了,不知道这样回复是否合适

如果不合适还请给个提醒   重新编辑

校草 发表于 2020-7-27 08:54

膜拜大佬!{:1_921:}

友情提醒 发表于 2020-7-27 08:59

学习了,膜拜大佬

magicbug 发表于 2020-7-27 09:08

支持大佬!

zegnasm 发表于 2020-7-27 09:09

膜拜大佬,有点深

7a89t 发表于 2020-7-27 09:10

值得学习 大佬的技术

lanzhiming 发表于 2020-7-27 09:10

学习了,大佬{:1_893:}

张张ss生 发表于 2020-7-27 09:13

666厉害

唐宋元明清01 发表于 2020-7-27 09:13

大佬牛批!!!!

eautomate 发表于 2020-7-27 09:16

技艺高超
页: [1] 2 3 4 5
查看完整版本: 【Mac】简单记录下对某软件限制使用的分析