__RESTRICT修改为__RRSTRICT,程序闪退。

Posted iamonion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__RESTRICT修改为__RRSTRICT,程序闪退。相关的知识,希望对你有一定的参考价值。

     近期逆向一个程序,发现有保护措施,不能加载。用machoview后,发现有__RESTRICT段,因此改为RRSTRICT。

     先前用iphone4调试,没有问题,只是调试过程中老是卡死,要等个半天才能有反应。因此换了iphone5s,9.3.3。安装后,把修改过的二进制scp到设备,发现闪退了。莫名其妙啊,为啥 iphone4 不闪退,iphone5s就闪退了?网上找了解决办法,可能是:

“CodeSignature/CodeResources 记录了可执行程序的hash值,你修改了了可执行程序后,没处理CodeSignature/CodeResources里的对应值”

对二进制签名进行签名:

codesign -s - --entitlements entitlements.plist -f TianXiaYou

然后在scp到设备,不闪退了。

 

问题遗留:

1、为啥 iphone4 不闪退,iphone5s就闪退了?

2、codesign这个签名和 证书签名有啥不同?区别?

3、entitlements.plist 这个里面的内容是啥意思?这个是以前我用来签名debugserver 的。

以上三个问题暂时没去研究,继续往下逆向再说吧。还请知道的朋友告知下,谢谢

以上是关于__RESTRICT修改为__RRSTRICT,程序闪退。的主要内容,如果未能解决你的问题,请参考以下文章

为啥clang忽略__restrict__?

在 g++4.4.7 中为复杂算术生成快速汇编

文件流缓冲区

APUE:标准I/O库

C++中的restrict关键字是啥意思?

APUE:线程,线程控制