美文网首页iOS 逆
代码注入的攻与防

代码注入的攻与防

作者: 烟影很美 | 来源:发表于2018-06-21 00:20 被阅读60次

一、代码注入

1. 通过修改LoadCommands段注入framework/dylib文件

参考: 逆向工程的代码注入

2. 在越狱机上, 通过DYLD_INSERT_LIBRARIES属性插入动态库, Tweak就是利用此原理

参考: Tweak使用及原理

二、代码注入的攻防

1. 通过修改LoadCommands注入的攻防博弈

(1) 围绕hook原理进行攻防

① 防守: 使用fishhook重绑定method swizzling相关方法, 使注入的代码hook失效.

由于依赖库加载顺序为: 插入的库->Link Binary With Libraries配置中依赖库按顺序载入->通过yololib注入的库.
所有开发者可以自己创建依赖库并加入到Link Binary With Libraries配置中的最前面. 只有先于注入代码重绑定才能阻断注入代码的hook.

② 攻击:

  • 通过Tweak注入, 其依赖库加载在最前面.
  • 找到APP中开发者反注入的动态库, 直接使用Synalyze It或其他工具修改其数据使其失效.

直接修改依赖库的mach-o文件的数据, 关键在于怎样定位选择合理的修改位置.

  • 使注入的库优先加载. 如果不适用Tweak的话, 只能修改LoadCommands段. 通过yololib修改只能是注入的库最后加载, 或者, 可以尝试写一个能将注入库改到LoadCommands段最前面的工具, 但是肯定很难.

(2) 针对使用DYLD_INSERT_LIBRARIES注入的攻防

① 防守: DYLD源码中, 有判断如果Mach-O文件中存在__RESTRICT段和__restrict组, 则不插入动态库. 那么开发者可以主动添加该段来防止插入动态库.

添加方式: 在Other Linker Flags配置中添加如下项
-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null

② 攻击: 破坏LoadCommands段中的__RESTRICT__restrict字段, 即直接修改Mach-O文件.

③ 再防守: 在工程中, 查看自己的LoadCommands段, 如果__RESTRICT__restrict被修改, 则证明Mach-O文件被修改, 可以执行exit退出方式被hook

查看LoadCommands段的方法可在DYLD源码中找到.

④ 再攻击: 找到工程中判断__RESTRICT段是否存在的代码, 通过修改Mach-O文件的方式破坏其代码.

相关文章

  • 代码注入的攻与防

    一、代码注入 1. 通过修改LoadCommands段注入framework/dylib文件 参考: 逆向工程的代...

  • iOS安全攻与防(总篇)

    iOS安全攻与防 本地数据攻与防 https UIWebview 第三方sdk与xcode 反编译与代码混淆 越狱...

  • UIWebView代码注入时机与姿势

    UIWebView代码注入时机与姿势 UIWebView代码注入时机与姿势

  • 溢出攻与防

    之前说的溢出攻防中,“防”的策略。(欢迎订阅我在“开发者头条”的主题,红客白客黑客)我们知道对于溢出的简单原理,即...

  • 前端安全:XSS攻击/CSRF攻击

    XSS攻击 什么是 XSS Cross-Site Scripting (跨站脚本攻击)简称XSS,是一种代码注入攻...

  • sqlmap从入门到精通-第七章-7-所有-各种绕过技术

    7. SQL注入绕过技术 本章主要内容 1. Access 数据库手工绕过通用代码防注入系统 2. sqlmap绕...

  • 数据库交互(总结)

    防SQL注入知乎详解 常用数据库交互代码 mysql mongo mongo知识大全 redis

  • 小迪16期-20170401

    第六天:MySQL防注入研究 MySQL头注入(http)Access偏移注入CSRF攻击 MySQL防注入 过滤...

  • 智能合约攻与防

    智能合约的概念出现的非常早,在1994年就有人提出,但是因为当时没有这种可信化的这种执行环境,并没有在当时应用到实...

  • Android签名攻与防

    一. Android签名背景: Android应用使用应用包文件(.apk文件)的形式分发到设备上,由于这个平台的...

网友评论

    本文标题:代码注入的攻与防

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