重签名打包后非越狱设备闪退


#1

鉴于论坛大量涌入新人且提问缺乏必要信息导致问题无法解决,目前暂行提问模版机制。试运行期间内新帖没有按照这个模版发帖将导致 锁帖/删帖/封号
(除非有原因,某些问题无法分类进下面的分支。这一点完全靠管理员唯一指定,大多数普通问题请老实按照下面的分类)

标**的为可选项

需求: (请勿使用 “我的需求是a但是我认为b可以解决a所以我来问问b” 这种提问模式,会造成误导)
**日志: (例如iOS系统的日志,OS X上相关操作的日志,etc)
**代码: (如果项目本身代码不方便发布请提供最小问题重现代码)
操作步骤: (请详细描述自己每步做了什么操作)
** 任何其他描述: (描述问题的现象,等等)
** 环境: (系统版本,安装的相关工具,等操作)


折腾了半天终于在非越狱设备上安装了,但是
重签名打包后非越狱设备闪退,越狱设备正常
原 app 和 自己写的 my.dylib libsubstrate.dylib 都用同一个证书签名过,
只是 my.dylib 和 libsubstract.dylib 没有加 entitlement

我的打包命令是

xcrun -sdk iphoneos PackageApplication -v BCP.app -o ~/bcp.ipa

哪里出了问题?
我参照的是这里的方法,
只是在最好 打包的用法不同, npm 安装出错

Jul  6 18:35:16 kkde-iPhone ReportCrash(CrashReporterSupport)[10154] <Notice>: Process:             BCPClient [10153]
Path:                /private/var/containers/Bundle/Application/D0D31A15-C508-40CE-9EE7-C2351953D439/BCPClient.app/BCPClient
OS Version:          iPhone OS 10.2.1 (14D27)
Jul  6 18:35:16 kkde-iPhone ReportCrash(CrashReporterSupport)[10154] <Notice>: Exception Type:  EXC_BAD_ACCESS (SIGKILL - CODESIGNING)
Exception Subtype: unknown at 0x000000018f2a68c4
Termination Reason: Namespace CODESIGNING, Code 0x2
Triggered by Thread:  0
Jul  6 18:35:16 kkde-iPhone ReportCrash(CrashReporterSupport)[10154] <Notice>: Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_c.dylib             	0x000000018f2a68c4 0x18f29c000 + 43204
1   CoreFoundation                	0x00000001902c7d8c 0x19028d000 + 241036
2   CoreFoundation                	0x00000001902c7b30 0x19028d000 + 240432
3   CoreFoundation                	0x00000001902c746c 0x19028d000 + 238700
4   CoreFoundation                	0x00000001902979b8 0x19028d000 + 43448
5   CoreFoundation                	0x0000000190297904 0x19028d000 + 43268
6   CoreFoundation                	0x00000001903fc698 0x19028d000 + 1504920
7   CoreFoundation                	0x000000019036074c 0x19028d000 + 866124
8   CoreFoundation                	0x0000000190360d8c 0x19028d000 + 867724
9   CoreFoundation                	0x00000001903fe710 0x19028d000 + 1513232
10  CoreFoundation                	0x0000000190401220 0x19028d000 + 1524256
11  CFNetwork                     	0x0000000190aae048 0x1909bc000 + 991304
12  libdispatch.dylib             	0x000000018f2461

#2

如果没记错的话非越狱设备上substrate会触发内核校验【不非越狱设备真的允许改段权限么】
请考虑使用fishhook以及oc runtime来hook


#3

直接使用theos编译不依赖substrate不越狱可用的dylib的教程论坛内我也写过。


#4

真的谢谢大佬,原来是 theos 的锅,我看别人用的 libsubstrate 好像也是 ios9.x的时候,
runtime 自己写的话,还有点繁琐,不过还好,知道错在哪了了,
我看看您的文章,能用 theos 最好,不能用我再自己 runtime


#5

实际上取决于MS里面是怎么实现的了。我只是按记忆猜测是这个原因


#6

http://bbs.iosre.com/t/theos-dylib/4327


#7

真的是这个原因,按照你说的升级了 theos 就好了,有一点不好,就是找不到生成的 dylib, 只能看到 deb 文件,还要自己手动解压一遍,这点比较烦


#8

在非越狱设备使用HookMessage 走的是OC的runtime是可以的

使用MSHookFunction会触发系统的签名验证,会跪


#10

同样的问题,把my.dylib 和 libsubstract.dylib 没有加 entitlement 后重签名。测试是不会再报
Jul 6 18:35:16 kkde-iPhone ReportCrash(CrashReporterSupport)[10154] <Notice>: Exception Type: EXC_BAD_ACCESS (SIGKILL - CODESIGNING) Exception Subtype: unknown at 0x000000018f2a68c4 Termination Reason: Namespace CODESIGNING, Code 0x2


#11

zhang总 请问一下 为啥我没有发帖权限 有点懵:sweat_smile:


#12

论坛的保护机制,我已经手动提升了你的权限,现在可以正常发帖了


#13

谢谢 麻烦了