iOS锁定系统库文件

作者: 俞子将 | 来源:发表于2016-03-03 12:23 被阅读1012次

默认装完Xcode后,我们还是可以修改系统的Frameworks中的头文件。比如,我们首先定位到UIKit.h中。

按 cmd+shift+O 打开符号搜索框,输入uikit.h。然后点击进入该头文件。这时候,我们可以随意修改它,WTF...之前,同事就因为查看系统接口,把部分接口误删了,导致编译报错,弄得很麻烦。

而如果,我们进入到sdk下的usr/include下,修改头文件,系统会报文件已经被锁定。如下图:

可以看到usr/include下的头文件,默认情况下已经被锁定了。所以,我们要把frameworks下的文件,也搞成锁定的。这样就可以避免小白,乱动这些头文件,导致蛋疼的结果。

解决

其实,要锁定文件,其实就是把文件权限改成只读,把它的写权限关掉即可。我们做的,主要是定位到系统的frameworks的路径下,然后用chmod命令去掉写权限即可。

根据上面的步骤,进入到UIKit.h中。这里可以看到代码编辑框上面,有个路径栏。如下图:


这个路径栏表示当前UIKit.h在模拟器sdk中,我们也可以切换到iOS的sdk下。我们首先,修改模拟器sdk中的frameworks为只读。

点击 File->Show in Finder 进入 UIKit.h在文件中的路径。然后,进几层上级目录,直到看到一大堆的以framework结尾的目录,路径类似如下:

/xcode/Xcode7.2.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks

打开终端,进入该目录,运行chmod命令,递归去除写权限:

sudo chmod -R a-w *

这时,再编辑UIKit.h文件,系统就可以提示无法修改的提示框了:

类似方法,可以修改iOS、watchOS等idk下frameworks的权限。

结论

参考资料

相关文章

  • iOS锁定系统库文件

    引 默认装完Xcode后,我们还是可以修改系统的Frameworks中的头文件。比如,我们首先定位到UIKit.h...

  • 五 iOS逆向- 动态库共享缓存(dyld shared cac

    共享缓存机制 dyld简介 共享缓存库中抽取动态库 从iOS 3.1开始,为了提高系统的性能,所有的系统库文件都被...

  • iOS逆向-Mach-O文件(二)

    UIKit的Mach-O文件在哪里?? 系统的动态库 从iOS3.1开始,为了提高性能,绝大部分的系统动态库文件都...

  • iOS系统的底层通知框架库

    iOS系统的底层通知框架库 iOS系统的底层通知框架库

  • 深入iOS系统底层之静态库介绍

    深入iOS系统底层之静态库介绍 深入iOS系统底层之静态库介绍

  • 安装nginx

    锁定文件与解锁文件 锁定关键系统文件,防止被提权篡改lsattr与chattr命令,chattr命令可以更改名称,...

  • ios逆向工具--dyld_decache

    了解了一点iOS逆向方面的知识了,就迫不及待的要开始查看一下iOS文件系统,查看传说中的iOS系统的私有库等等,然...

  • Mach-O

    前言: Mach-O(Mach Object)是macOS、iOS、iPadOS存储程序和库的文件格式。对应系统通...

  • iOS逆向-dyld shared cache 动态库共享缓存-

    从iOS3.1开始,为了提高性能,绝大部分的系统动态库都打包存档到了一个缓存文件中。 动态库共享缓存 缓存文件存放...

  • iOS逆向_动态库共享缓存

    动态库共享缓存 从iOS3.1开始,为了提高性能,绝大部分的系统动态库文件都打包存放到了一个缓存文件中(dyld ...

网友评论

  • 4陈雨泽4:请问 :sudo chmod -R a-w *. 这句话执行了之后,我又后悔了。那应该怎么办呢?
    coding_Liu:怎么解除,恢复原来的样子呀,作者?
    4陈雨泽4:@俞子将 是啊,怎么调和回去呢?急死了
    俞子将:全部加写权限?sudo chmod -R a+w *
  • 叶舞清风:厉害,我以前搜索过啊没找到,今天看到了,谢谢

本文标题:iOS锁定系统库文件

本文链接:https://www.haomeiwen.com/subject/ubankttx.html