关于dlopen 失败的问题
19kka opened this issue · 6 comments
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:.......,那个.......的才是错误原因,你给省略了。。。
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
我签名其实签了。我去fortest.app 里面看了下 codesign -dv cm_arm64.dylib
TeamIdentifier = 我的证书
看起来还是签名的问题,方便的话工程和.dylib发我邮箱,有空的时候我看下
感谢@tobefuturer 的回复
后来解决了,有点晚就今天这里贴下原因:
没有脱壳。
在PP助手上直接下的有些没有脱壳。
所以大家在重签名之前用 otool -l xxxx | grep crypt 看下确认下有没有脱壳。
最后再次感谢@tobefuturer 的回复。
动态库已签名、并且已脱壳,但是 dlopen
加载动态库失则,有遇到的吗?
报错如下:
mremap_encrypted() => -1, errno=22