多种方式进行 Objective-C 或 C++项目字符串预编译加密防逆向

在 Objectice-C 或 C++ 项目中,使用字符串预编译加密可以有效防止代码被逆向工程。使用 js 加密生成 16 进行数组拷贝到项目中是一种解决方法,还可以使用开源宏定义域编译或者使用开源项目插件来防止逆向。这些方法可以有效防止程序中的敏感代码被逆向工程,并保护代码的可维护性和安全性。obfuscator-llvm、STCObfuscator、Obfuscator-iOS 等。 1.使用 js 加密生成 16 进行数组拷贝到项目 调用解密 AES 加密等加密 JS 生成加密字符串数据可以使用常见的加密算法,例如 AES、DES、RSA 等。以下是使用 AES 算法生成加密字符串数据的示例代码: // 密钥 const key = "0123456789abcdef0123456789abcdef"; // 原始数据 const data = "hello world"; // 加密 const aesEncrypt = (data, key) => { const cipher = crypto.createCipheriv("aes-256-cbc", key, key.slice(0, 16)); let encrypted = cipher.update(data, "utf8", "hex"); encrypted += cipher.final("hex"); return encrypted; }; const encrypted = aesEncrypt(data, key); console.log(encrypted); // 3f6dd8b6a402bda28077c0bf // 将16进制字符串转为16进制数组 const hexToArray = hex => { const array = new Uint8Array(hex.length / 2); for (let i = 0; i < hex.length; i += 2) { array[i / 2] = parseInt(hex.substr(i, 2), 16); } return array; }; const encryptedArray = hexToArray(encrypted); console.log(encryptedArray); // [63, 109, 216, 182, 164, 2, 189, 162, 128, 119, 192, 191] Objective-C++解密函数可以使用相应的解密算法进行解密,例如以下是使用 AES 算法进行解密的示例代码: ...

2024年8月7日 · 7 分钟 · 诚哥博客

使用Objective-C绘制基本图形的两种方式

Objective-C 是一门面向对象的编程语言,广泛应用于 iOS 和 macOS 应用程序的开发。除了常规的编程功能之外,Objective-C 还提供了绘制图形的 API,可以用来绘制线条、矩形、文字等基本图形。在这篇文章中,我们将讨论两种绘图方式:使用 CAShapeLayer 绘制和使用 CGContextRef 绘制。 本文将介绍使用 Objective-C 绘制基本图形的两种方式:使用 CAShapeLayer 和 CGContextRef,分别讨论它们的优缺点、性能等方面。通过示例代码,展示了如何使用这两种方式分别绘制矩形、圆形等基本图形,并指出了适用场景。 两种绘图方式 使用 CAShapeLayer 绘制 CAShapeLayer 是 Core Animation 框架提供的一种绘图方式,可以用来绘制各种形状。它的优点是可以通过设置路径来实现复杂的图形效果,同时还支持填充和描边等样式设置。以下是使用 CAShapeLayer 绘制一个矩形的示例代码: CAShapeLayer *rectangleLayer = [CAShapeLayer layer]; CGRect rect = CGRectMake(50, 50, 100, 100); UIBezierPath *path = [UIBezierPath bezierPathWithRect:rect]; rectangleLayer.path = path.CGPath; rectangleLayer.fillColor = [UIColor clearColor].CGColor; rectangleLayer.strokeColor = [UIColor redColor].CGColor; [self.view.layer addSublayer:rectangleLayer]; 使用 CGContextRef 绘制 CGContextRef 是 Core Graphics 框架提供的一种绘图方式,可以用来绘制各种形状和文字。它的优点是可以直接在 UIView 上绘制图形,适合于一些简单的绘图需求。以下是使用 CGContextRef 绘制一个矩形的示例代码: CGRect rect = CGRectMake(50, 50, 100, 100); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextAddRect(context, rect); CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); CGContextDrawPath(context, kCGPathFillStroke); 性能、优缺点对比 使用 CAShapeLayer 绘制图形的优点是可以通过设置路径来实现复杂的图形效果,同时还支持填充和描边等样式设置。缺点是相对于 CGContextRef 绘制,CAShapeLayer 的性能会有所下降,适合于需要频繁更新的动态图形。而使用 CGContextRef 绘制图形的优点是绘制速度较快,适合于需要快速绘制一些简单的图形。缺点是不支持复杂的路径设置,同时也无法方便地实现填充和描边等效果。 简单用法 以下是使用 CAShapeLayer 绘制一个圆形和使用 CGContextRef 绘制一个矩形的示例代码: ...

2023年3月8日 · 2 分钟 · 诚哥博客

IOS系统中SpringBoard的Window窗口类合集以及用途

IOS 系统中的 SpringBoard 窗口类合集是用于构建 iOS 应用体验的一组可以使用的 UI 类。它们可以用来建立整个应用程序的框架,或用于显示特定功能的对话框。SpringBoard 类包括 alert、action sheet、page control、tab bar 等。这些类帮助创建具有一致的界面的应用,从而提高使用体验。 类型以及简介 这些是 iOS 系统中的窗口类,用于显示不同的用户界面和内容。以下是每个窗口在应用程序运行时的用途: SBAlertItemWindow:用于显示系统或应用程序的警报和提示信息。 SBRecordingIndicatorWindow:在应用程序或系统正在录制屏幕时显示录制指示器。 SSScreenshotsWindow:在应用程序或系统截取屏幕截图时显示。 SBBannerWindow:用于显示通知横幅。 SBControlCenterWindow:用于显示控制中心。 UITextEffectsWindow:用于显示文本输入相关的内容,例如键盘和文本选择菜单。 SBSecureMainScreenActiveInterfaceOrientationWindow:在设备锁屏时显示。 SBCoverSheetWindow:用于显示封面视图。 _SBWallpaperWindow:用于显示设备桌面壁纸。 SBFloatingDockWindow:用于显示浮动底部栏。 _UIScenePresenter:用于管理应用程序场景的视图层次结构。 SBMedusaHostedKeyboardWindowLevelAssertion:用于在 iPad 上管理多任务处理和键盘的显示。 SBMainSwitcherWindow:用于显示应用程序切换器。 SBMainDisplaySceneLayoutWindow:用于显示主显示屏幕的场景布局。 SBRootSceneWindow:用于显示应用程序的根场景。 SBWindow:用于显示应用程序的主要窗口。 SBHomeScreenWindow:用于显示主屏幕的图标和文件夹。 应用程序打开时 在应用程序打开时,通常会显示 SBWindow 和 SBRootSceneWindow,以及与应用程序本身相关的其他窗口,例如键盘和警报视图。其余的窗口可能在应用程序运行时根据需要显示。

2023年2月23日 · 1 分钟 · 诚哥博客

利用 CrossOver 在 Mac 上运行 Windows 版的 IDA Pro

IDA Pro 是一款强大的静态分析软件,可执行基本分析、撰写代码、查找漏洞和构建安全工具。要在 Mac 上使用 IDA Pro,我们可以使用 CrossOver 运行 Windows 版本的 IDA Pro,CrossOver 是一款运行 Windows 程序的另一个跨平台应用,可让用户使用 Mac 上的 IDA Pro Windows 版而无需理会两个系统之间的差异。本文提供了一个详细的步骤,指导用户如何在 Mac 上使用 IDA Pro Windows 版,包括从安装 CrossOver 到启动 IDA Pro 的完整步骤,方便用户将 IDA Pro Windows 版的强大功能用在 Mac 上。 安装 CrossOver 官网下载即可,安装过程很简单,不再赘述。软件提供免费试用 yong 14 天的试用,如果你想要继续使用,需要购买 CrossOver 的许可证。当然也可以使用破解版,但是不保证能够正常使用。也能破解下试用时间: [postsbox post_id=“1031”] 安装包准备 准备一个安装包,这里我使用的是 IDA Pro 7.5 [postsbox post_id=“1051”] 准备一个 Python3.7 安装包 Python3.7 下载地址: https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe 创建 CrossOver 容器 这里创建 Windows 7 64-bit 或者 Windows 10 64-bit,我这里创建的是 Windows 10 64-bit ...

2023年2月20日 · 1 分钟 · 诚哥博客

越狱插件 Xcode MonkeyDev 开发环境搭建

MonkeyDev 是一款为 iOS 应用开发者提供的开发辅助工具,可以在 Mac 电脑上集成 Xcode 和 MonkeyDev 插件,帮助开发者更方便地进行 iOS 应用的开发和调试。MonkeyDev 提供了一些非常实用的功能,例如应用注入、自动重签名、动态调试等,可以大大提高 iOS 应用开发的效率。 MonkeyDev 介绍 MonkeyDev 的主要功能包括: 应用注入 使用 MonkeyDev,开发者可以在不修改应用源代码的情况下,将自己编写的代码注入到已安装的应用中。这样就可以在不重新安装应用的情况下,对应用进行功能扩展和修改。此功能类似于 Android 平台上的 Xposed 框架。 自动重签名 使用 MonkeyDev,开发者可以自动为应用进行重签名,避免了在每次修改应用后需要重新签名的麻烦。开发者只需在 MonkeyDev 中配置好证书和描述文件,即可自动为应用进行签名。 动态调试 使用 MonkeyDev,开发者可以在应用运行时动态修改代码并实时调试,这极大地提高了开发效率。开发者可以通过 MonkeyDev 中提供的“frida”调试工具进行调试。 除了以上主要功能之外,MonkeyDev 还提供了一些其他的辅助功能,例如自动生成头文件、快速定位函数、代码跳转等,帮助开发者更方便地进行 iOS 应用开发。 总之,MonkeyDev 是一款非常实用的 iOS 应用开发辅助工具,可以大大提高开发效率。如果您是 iOS 应用开发者,建议您尝试使用 MonkeyDev 来优化自己的开发流程。话不多说看如何搭建吧 官方教程 不想看我啰嗦的可以直接看官方教程: https://github.com/AloneMonkey/MonkeyDev/wiki/安装 环境要求 使用工具前确保如下几点: 安装最新的 theos sudo git clone --recursive https://github.com/theos/theos.git /opt/theos ...

2023年2月15日 · 1 分钟 · 诚哥博客