多种方式进行 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 分钟 · 诚哥博客