macSubstrate:一款针对macOS的代码注入和打桩测试工具

本文主要是介绍macSubstrate:一款针对macOS的代码注入和打桩测试工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于macSubstrate

macSubstrate是一款针对macOS的代码注入和打桩测试工具,该工具可以在macOS操作系统上实现进程间代码注入测试,其功能类似于iOS上的Cydia Substrate。

在该工具的帮助下,广大研究人员可以轻松将自己的安全测试插件(.bundle或.framework)注入到macOS应用程序(包括沙盒应用程序)中,以在程序运行时对其进行安全测试或其他调整。

功能特性

1、我们只需要获取并创建针对目标应用程序的插件即可;

2、不会影响目标应用程序的原始状态或代码实现;

3、目标应用程序更新后不影响macSubstrate工作;

4、可以轻松安装或卸载插件;

5、每当目标应用程序重新启动时自动加载插件;

6、提供了GUI应用程序,可以通过图形化界面简化代码和插件注入操作;

准备工作

1、禁用SIP

工具下载

广大研究人员可以直接访问该项目的【Releases页面】下载预编译的最新版本macSubstrate应用程序,然后直接拖动到/Applications目录中,直接启动:

如果系统弹窗申请授权的话,请给应用程序提供必要的权限。

接下来,通过导入和拖拽的方式将插件安装到macSubstrate中:

现在,我们就可以直接启动目标应用程序了。当macSubstrate完成插件安装之后,需要一点时间才可以生效。但是,如果你想要插件能够在目标应用程序重启或macOS重启时立刻运行生效,你需要保持macSubstrate的运行,并允许在操作系统登录时自动运行。

如果你不想再使用某一个插件了,你也可以直接卸载它:

插件开发

macSubstrate支持.bundle或.framework形式的插件,因此我们需要创建一个有效的.bundle或.framework文件来开发插件。文件中最重要的是要将macSubstratePlugin键添加到info.plist中,该键要求包含下列值:

TargetAppBundleID

目标应用程序的CFBundleIdentifier,指定要注入的是哪一个应用程序

Description

插件概述

AuthorName

插件开发者

AuthorEmail

插件开发者电子邮箱

项目提供了demo.bundle和 demo.framework作为示例插件可供大家参考使用。

Xcode模板

macSubstrate还提供了Xcode Templates来帮助我们轻松创建插件:

ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin

启动Xcode后,就会生成两个新的插件模板了。

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

macSubstrate:【GitHub传送门】

参考资料

Configuring System Integrity Protection

OS X El Capitan v10.11

这篇关于macSubstrate:一款针对macOS的代码注入和打桩测试工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926692

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性: