iOS安全攻防(十九):基于脚本实现动态库注入

《iOS应用安全攻防实战》读书笔记(一) 最近一直在研究iOS应用安全攻防方面的东西,这本书是一本好书,坚持写下去,这本书能带给我想要的收获。刚开始写,还没有找到正确的方式,人生需要不断思考。希望以后可以越来越得心应手。 关于iOS安全机制单一化方案的误解。作为开发人员,你可能对iOS SDK提供的一系列来开发安全的应用软件充满信心,因为这种信任是最佳的方式。由于代码复用有很多的好处,因此一种面向安全的单一化解决方案就形成在任何环境 阅读详情

原文地址:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/19642621


MobileSubstrate可以帮助我们加载自己的动态库,于是开发者们谨慎的采取了对MobileSubstrate的检索和防御措施。

那么,除了依靠MobileSubstrate帮忙注入dylib,还有别的攻击入口吗?


理理思路,条件、目的很明确:
1)必须在应用程序启动之前,把dylib的环境变量配置好
2)dylib的位置必须能被应用程序放问到
3)最后再启动应用程序



啊哈,原汁原味,走bash!


在点击应用程序图标-->程序启动这个过程中,在我们看来程序是被动执行的。为了让特定功能的脚本被执行,我们可以把脚本改成应用程序二进制的名字伪装成应用程序,让系统调用启动。在脚本中,配置好dylib,然后再手动启动真的应用程序,假装什么也没发生,挥一挥衣袖不带走一片云彩~

将真的支付宝程序改名为oriPortal:

  1. mv Portal oriPortal  

将待执行的脚本改名为支付宝:
  1. mv Portal.sh Portal  



脚本代码:

  1. #!/bin/bash  
  2.   
  3. #得到第一个参数  
  4. C=$0  
  5.   
  6. #第一个参数是二进制的绝对路径 比如 :  
  7. #/private/var/mobile/Applications/4763A8A5-2E1D-4DC2-8376-6CB7A8B98728/Portal.app/  
  8. #截取最后一个 / 之前的内容  
  9. C=${C%/*}  
  10.   
  11. #库和二进制放在一起  
  12. export DYLD_INSERT_LIBRARIES=${C:-.}/wq.dylib  
  13. #执行原来APP $@ 别忘了把原来的参数保留  
  14. exec "${C:-.}"/oriPortal "$@"  


结果不尽人意,失败了……

错误信息如下:



在打开某个加密信息时出了错误,大概猜一下应该是类似加密签名校验的步骤,但是我们无法去了解其中详细的操作到底是什么样的,没关系,那么就把原始的可执行文件环境全部给他造出来,因为检验文件属性肯定不会带着路径信息的。

备份一份Portal.app目录Portal_ori.app,修改脚本为:

  1. #!/bin/bash  
  2. C=$0  
  3. C=${C%/*}  
  4. export DYLD_INSERT_LIBRARIES=${C:-.}/wq.dylib  
  5. exec "${C:-.}"/../Portal_ori.app/Portal "$@"  

运行支付宝app验证一下,
好消息是,在iOS6上,成功加载了动态库wq.dylib
坏消息是,在iOS7上,失败了,错误信息如下:



应该是因为iOS7的沙盒机制升了级,把我们这套小把戏拦在门外了……
那又怎么样,面包总会有的~

iOS安全攻与防(总篇) iOS安全攻与防 本地数据攻与防 https Uiwebview 第三方sdk与xcode 反编译与代码混淆 越狱与反调试 扫描工具fortify 常见接口漏洞分析 阅读详情

相关推荐

iOS逆向 - 应用安全攻防(越狱与非越狱)

iOS 逆向篇章目录 : • 1️⃣、RSA加密原理&密码学&HASH • 2️⃣、应用签名原理及重签名 (重签微信应用实战) • 3️⃣、shell 脚本自动重签名与代码注入 • 4️⃣、重签应用调试与代码修改 (Hook) • 5️⃣、Mach-O文件 • 6️⃣、Hook / fishHook 原理与符号表 • 7️⃣、LLDB由浅至深 • 8️⃣、lldb高级篇 Chisel 与 Cycript • 9️⃣、越狱初探 • ????、实战篇-钉钉打卡插件 前言 逆向篇章从前导知识到工具

Appleteachers的博客 1346

iOS动态库注入

本课程主要针对iOS动态库注入技术做了详细讲解和实战演示,分为技术篇和运维篇,最终目标是将动态库注入到目标ipa包中,并且执行动态库中的代码,实现动态库与ipa交互。技术篇 - 主要从基础知识、涉及工具,以及一个完整的手动注入实例流程来讲解,面向技术开发人员; 运维篇 - 通过利用自动注入工具、重签名工具来可视化的注入动态库,面向运维等非技术人员;课程目录课程简介1,课程目标和大纲技术篇2,基础知识 - 动态库3,基础知识 - IPA包4,基础知识 - Mach-O5,基础知识 - 代码注入6,基础知识 - 重签名7,涉及工具 - Xcode/iOSOpenDev/Terminal8,涉及工具 - yololib/MachOView/iFunBox/iReSign9,实例演示 - 创建.dylib动态库10,实例演示 - 创建测试APP11,实例演示 - 手动注入动态库(开发模式)12,实例演示 - 手动注入动态库(重签名模式)运维篇13,运维篇 - 准备工作14,运维篇 - 实战演示15,运维篇 - 技术支持课程总结16,课程总结

iOS攻防-实战(1)-动态注入

前言:之前几篇讲了一些背景知识,这一篇进入正题,来讲一下动态注入的基本理论和流程。我们这里通过动态添加运行库的方式来实现动态注入。 ipa包结构 还记得我们之前介绍Math-O文件时,提到了Load commands嘛?其中有一部分是加载第三方库的: 注意其中的:LC_LOAD_DYLIB(AFNetworking)。那么,能否通过修改Math-O文件来加载我们需要动态注入的库呢?答...

zhoujabcd的博客 1278

没电脑也能当黑客,推荐三款手机可用的黑客软件

三款手机可用的黑客软件

HackKong的博客 6778

IOS应用安全攻防

《IOS应用安全攻防》PDF高清电子书,不过是英文的。

iOS应用安全攻防

iOS 安全 攻防,英语好的直接撸就好了,英语不好的权当学英语了

iOS安全攻防

再网上看到一系列帖子觉得不错,但是看起来bu tai f

yangfu132的专栏 808

高清完整版 IOS应用安全攻防

高清完整版 IOS应用安全攻防

iOS安全攻防—目录

一.工具篇&Cycript 1.常用APP安装以及环境配置 2.集成非越狱调试工具 3.Cycript安装以及使用 4.Shell脚本 二.初识汇编 1.汇编概述 2.总线 3.进制 4.寄存器 三.函数的本质 1.栈 2.bl&ret指令 3.函数的参数和返回值 4.函数的局部变量与嵌套调用 四.还原高级代码&状态寄存器 1.状态寄存器 2.找到内存中不同的...

十二指环的博客 536

Pytorch中CrossEntropyLoss()详解

交叉熵主要是用来判定实际的输出与期望的输出的接近程度。举个例子:在做分类训练的时候,如果一个样本属于第 K 类,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0,即 [0,0,1,0,….0,0] ,这个数组也就是样本的 Label,是神经网络最期望的输出结果。我们用交叉熵损失函数来衡量网络的实际输出与正确标签的差异,利用这种差异经过反向传播去更新网络参数。交叉熵:它主要刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

flyingluohaipeng的博客 3861

2023年全国职业院校技能大赛高职组“区块链技术应用”赛项赛卷(3卷)解析

我们先绘制题组中所有设计图我这边作图用的国内的在线作图工具。

2301_76737000的博客 5418

iOS逆向之代码注入(dylib)

题外话:此教程是一篇严肃的学术探讨类文章,仅仅用于学习研究,也请读者不要用于商业或其他非法途径上,笔者一概不负责哟~~ 准备工作 非越狱的iPhone手机 用PP助手下载: 微信6.6.5(越狱应用) MachOView MachOView下载地址:http://sourceforge.net/projects/machoview/ MachOView源码地址:http...

WinJayQ的专栏 3263

微信聊天记录丢失原因与恢复方案详解

SQLite数据库作为移动应用常见的本地存储方案,其加密机制和存储结构直接影响数据安全性。以微信为例,聊天记录存储在EnMicroMsg.db等SQLite文件中,采用AES加密保护。当手机清理工具误删这些文件时,会导致特定时间段记录丢失。理解数据恢复原理需要掌握文件系统删除机制和闪存特性,其中关键点包括TRIM指令的影响和数据块覆盖风险。通过专业工具如DiskDigger或iMyFone D-Back,配合ADB调试和SQLite数据重组技术,可在黄金时间窗口内恢复记录。日常维护建议结合自动化备份方案和存

weixin_32612263的博客 386

ios动态库注入把越狱手机上自制的动态库安装到普通手机上

文章目录查看依赖库执行命令查看程序依赖的动态库名字用machoview查看安装insert_dylib 查看依赖库 先进入app包所在目录 执行命令查看程序依赖的动态库名字 otool -L 可执行程序名 例如:得到5个动态库 otool -L testCrackPwd testCrackPwd: /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current versi

小手琴师的博客 9443

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1235

如何使用 Conda 安装 Qiskit(详细教程)

本文介绍了使用conda安装Qiskit量子计算工具包的完整流程。首先创建Python 3.10的conda虚拟环境(qiskit_env),然后安装Qiskit核心包及可视化组件(注意Mac用户的安装命令差异)。接着注册IPython内核并测试环境,通过量子电路创建与可视化演示验证安装成功。该教程为量子计算开发提供了简洁的环境配置指南,适合研究者和开发者快速搭建Qiskit开发环境。

猿小白的博客 563

iOS 动态库注入

iOS动态库注入,可注入framework、dylib 这两种动态库(开发者创建的framework本质上还是一个静态库)。注入本质上将动态库注入到可执行的 Mach-O 文件中。 注入静态库前提还是要理解重签名,以及使用脚本进行重签名的操作。然后执行注入流程。 iOS 代码重签名 1、framework 注入 ...

kangpp的博客 1410

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,

KJ.JK 1071

iOS无需越狱实现注入Hook,巨魔TrollFools实现动态库注入

将编译好的动态库dylib、deb、zip等动态库注入到指定App中,实现注入能力这种方式和直接将动态库(.dylib 或 .framework)嵌入到 IPA 包的 Frameworks 目录中,并通过修改 Mach-O 文件或签名工具的自动化流程完成注入‌效果和原理一样,但无需重打包不用关心签名校验限制。

weixin_38367103的博客 5233

034、MLCA 多尺度局部上下文注意力的 YOLOv11 适配:轻量级金字塔式空间上下文聚合

本文介绍了一种将多尺度局部上下文注意力(MLCA)模块集成到YOLOv11模型中的方法,以解决小目标检测中空间信息丢失的问题。MLCA采用金字塔式局部上下文聚合策略,通过不重叠的网格划分实现轻量级空间注意力计算,相比全局注意力机制能更好地保留小目标特征。 作者详细记录了实现过程,包括模块定义、参数调优和训练技巧,特别指出避免使用BN而改用GroupNorm以提升训练稳定性。在VisDrone数据集上的实验表明,MLCA-YOLOv11在参数量和计算量基本不变的情况下,mAP提升2.5%,其中行人检测提升3.

sundong_81的博客 278

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IOS上的几种注入动态库的方式

0x00 准备环境 编译dylib 首先得先写一个测试用的动态库。Xcode 新建 iOS 工程的时候,选择 Framework 工程,默认文件格式为动态库 #import <Foundation/Foundation.h> __attribute__((constructor)) static void EntryPoint() { NSLog(@"inject seuce...

Tesi1a的充电桩 6436

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: IOS常用开源库
下一篇: iOS 开发之 URL Scheme
直隶码农
博客等级 码龄19年 95粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值