tobefuturer/app2dylib

关于dlopen 失败的问题

19kka opened this issue · 6 comments

19kka commented

dlopen failed ,error dlopen(/var/containers/Bundle/Application/8E5A5121-EBBC-4762-AE61-AB45D3E06EBD/fortest.app/cm_arm64.dylib, 2): no suitable image found. Did find:.......

这个问题一般是签名的问题么?
搜索后这个方法 https://stackoverflow.com/questions/32730312/reason-no-suitable-image-found 也没能解决。没有很好的思路。

一般是签名,然后Did find:.......,那个.......的才是错误原因,你给省略了。。。

19kka commented

Did find:
/var/containers/Bundle/Application/42A328AB-C736-43FF-B566-3756F7BEBFEB/fortest.app/cm_arm64.dylib: mremap_encrypted() => -1, errno=1 for /var/containers/Bundle/Application/42A328AB-C736-43FF-B566-3756F7BEBFEB/fortest.app/cm_arm64.dylib

19kka commented

我签名其实签了。我去fortest.app 里面看了下 codesign -dv cm_arm64.dylib

TeamIdentifier = 我的证书

看起来还是签名的问题,方便的话工程和.dylib发我邮箱,有空的时候我看下

19kka commented

感谢@tobefuturer 的回复
后来解决了,有点晚就今天这里贴下原因:

没有脱壳。

在PP助手上直接下的有些没有脱壳。

所以大家在重签名之前用 otool -l xxxx | grep crypt 看下确认下有没有脱壳。

最后再次感谢@tobefuturer 的回复。

动态库已签名、并且已脱壳,但是 dlopen 加载动态库失则,有遇到的吗?

报错如下:

mremap_encrypted() => -1, errno=22