求教optool的使用方法

optool install -c load -p /Library/MobileSubstrate/DynamicLibraries/aa.dylib -t Target
这个命令对不?执行成功,macho文件也查到了这个数据,只是app会闪退,重签也没用

然后optool uninstall -p /Library/MobileSubstrate/DynamicLibraries/aa.dylib -t Target 提示 No entries for /Library/MobileSubstrate/DynamicLibraries/aa.dylib

问题:
1、我这样用对么?
2、optool install -c , -c后面的命令只有load?我看optool的help并不是load,而是 LC_**之类的,但是用这个会提示command not found
3、help提示说 install操作会: This may render some executables unusable,然后我要修改的那个app就中招了?只能去掉__RESTRICT才能加载dylib了么

1 个赞

附上otool -l的信息:

Load command 40
          cmd LC_LOAD_DYLIB
      cmdsize 80
         name /Library/MobileSubstrate/DynamicLibraries/kk.dylib (offset 24)
   time stamp 2 Thu Jan  1 08:00:02 1970
      current version 0.0.0
compatibility version 0.0.0

没用过optool,试试insert_dylib

我的optool应该是成功的,otool也显示加入的dylib

搞定了吗 楼主 同问啊

搞定了,不是optool的问题,install没问题,就那样子用。
只不过 uninstall不知道为什么无法使用

optool install -c load -p "@executable_path/RedEnvelop.dylib" -t WeChat
这就是给WeChat加载抢红包插件

如果要unstall,要这样:
optool uninstall -p "@executable_path/RedEnvelop.dylib" -t WeChat

具体 dylib 的路径可以用 otool 查看:
otool -L WeChat

多谢。多谢。
./optool uninstall -p “/usr/lib/libsubstrate.dylib” -t xxxx.dylib

看上面你的回复,你是想把越狱的插件直接用在非越狱设备上。那你这样是不行的,要用install_name
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib v2plus.dylib

上面的命令,就把 v2plus.dylib 中的 CydiaSubstrate 改成了 dylib 所在目录下。

Soga , 多谢回复。:joy: 我也是尝试性的做了下,闪退就没管了。

用·install_name_tool -change·的效果不知道是否和optool uninstall + ./yololib xx xxx 的组合命令是否一样,我试过了,一样的闪退哟了

install_name 是对 dylib 操作的。
你otool -l 看一下。

:grinning:
最后我还是搞定了Cydia商店下载的dylib文件在非越狱机器上完美运行,大致方法和你说的比较类似。 也有不一样的地方,很奇怪的是,需要在二进制原包做yololib 而不能uninstall后再yololib 不然就破坏mach-O文件了

不知道是不是你 uninstall 的问题,我倒是从没遇见文件破坏的问题。

可能,不过最终还是问题有解决,多谢你的解答。让我离成功近了很多。

越狱dylib内调用资源文件的是路径\Library\PreferenceLoader\Preferences,注入非越狱后怎么修改资源文件路径,大哥求教

PreferenceLoader在非越狱下没法调用的。
你在编写的 Tweak 里把调用的相关资源放进沙盒内访问。

@rpath这个目录下,用optool去除大动态库就闪退了,为什么呢?