广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Swift实现代码混淆详解
  • 694
分享到

Swift实现代码混淆详解

2024-04-02 19:04:59 694人浏览 独家记忆
摘要

目录1. 新建相关文件2. 导入文件至项目3. 修改项目配置3.1 修改TARGETS配置3.2 修改指令文件3.2.1 打开confuse.sh文件,复制并粘贴一下文本3.2.2

1. 新建相关文件

新建文件confuse.shfunc.list

创建文件方式如下:


$ cd ~/Desktop/ceshi
$ touch confuse.sh
$ touch func.list

最终结果如下:


2. 导入文件至项目

将创建的confuse.sh文件以及func.list文件导入项目
最终结果如下

3. 修改项目配置

3.1 修改TARGETS配置

如果没有RunScript。请点击红框内+进行新增

RunScript内输入的文本


$PROJECT_DIR/confuse.sh

3.2 修改指令文件

3.2.1 打开confuse.sh文件,复制并粘贴一下文本


#!/usr/bin/env bash

TABLENAME=symbols
SYMBOL_DB_FILE="symbols"
STRING_SYMBOL_FILE="func.list"
HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.h"
export LC_CTYPE=C

#维护数据库方便日后作排重
createTable()
{
    echo "create table $TABLENAME(src text, des text);" | sqlite3 $SYMBOL_DB_FILE
}

insertValue()
{
    echo "insert into $TABLENAME values('$1' ,'$2');" | sqlite3 $SYMBOL_DB_FILE
}

query()
{
    echo "select * from $TABLENAME where src='$1';" | sqlite3 $SYMBOL_DB_FILE
}

ramdomString()
{
    openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16
}

rm -f $SYMBOL_DB_FILE
rm -f $HEAD_FILE
createTable

touch $HEAD_FILE
echo '#ifndef Demo_codeObfuscation_h
#define Demo_codeObfuscation_h' >> $HEAD_FILE
echo "//confuse string at `date`" >> $HEAD_FILE
cat "$STRING_SYMBOL_FILE" | while read -ra line; do
    if [[ ! -z "$line" ]]; then
        ramdom=`ramdomString`
        echo $line $ramdom
        insertValue $line $ramdom
        echo "#define $line $ramdom" >> $HEAD_FILE
    fi
done
echo "#endif" >> $HEAD_FILE

sqlite3 $SYMBOL_DB_FILE .dump

3.2.2 修改指令文件权限


$ cd ~/Desktop/ceshi
$ chmod 755 confuse.sh

3.3 修改需要混淆的方法名文件

打开func.list文件,在文件内输入需要进行方法名混淆的方法名

示例如下:


imageCompress
blurImage
viewDidLoad

3.4 修改pch文件配置

1、如果没有PrefixHeader.pch这种文件,则需要新建一个
2、打开PrefixHeader.pch文件


#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
#import "CodeObfuscation.h"

#endif 

4. 运行效果

运行com+B

希望本文所述对大家的Swift开发学习有所帮助。

--结束END--

本文标题: Swift实现代码混淆详解

本文链接: https://www.lsjlt.com/news/158519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Swift实现代码混淆详解
    目录1. 新建相关文件2. 导入文件至项目3. 修改项目配置3.1 修改TARGETS配置3.2 修改指令文件3.2.1 打开confuse.sh文件,复制并粘贴一下文本3.2.2 ...
    99+
    2022-11-12
  • Android 混淆代码详解及实例
    为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-proj...
    99+
    2022-06-06
    Android
  • android app进行代码混淆实例详解
    接到一个新的任务,对现有项目进行代码混淆。之前对混淆有过一些了解,但是不够详细和完整,知道有些东西混淆起来还是比较棘手的。不过幸好目前的项目不是太复杂(针对混淆这块来说),提前...
    99+
    2022-06-06
    代码混淆 app Android
  • golang代码混淆加密怎么实现
    在 Go 语言中,代码混淆和加密是通过不同的技术实现的。代码混淆是通过对代码进行变换和重组,使得代码难以被理解和分析。加密是通过对代...
    99+
    2023-10-27
    golang
  • Android使用插件实现代码混淆
    目录1.下载AndroidProPlugin插件并安装重启 2.Android Studio安装插件3.成功安装AndroidProguardPlugin插件后我们在打包的...
    99+
    2022-11-12
  • C#dll代码混淆加密的实现
    目录一、需求二、用法1.新建C#项目2.开始加密3.常见的错误4.添加加密规则5.导出加密dll6.调用加密dll一、需求 C# 项目生成 dll,在反编译工具下,好比皇帝的新装,d...
    99+
    2023-02-06
    C# dll代码混淆加密 c# dll 混淆加密
  • Swift AsyncSequence — 代码实例详解
    文章目录 前言什么是 AsyncSequence创建 AsyncSequence异步序列的迭代结论 前言 AsyncSequence 是并发性框架和 SE-298 提案的一部分。它的名字意味着它是一个提供异步、顺序和迭代访问...
    99+
    2023-08-16
    swift 开发语言 ios 原力计划
  • Swift 中的 async/await ——代码实例详解
    前言 async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift 中的并发性意味着允许多段代码同时运行。这是一个非常简化的描述,但它应该让你知道 Swift 中的并发性对你的应用程序...
    99+
    2023-08-17
    swift ios 开发语言
  • Android 混合动画详解及实现代码
    Android 混合动画 在Android开发,我们会经常使用到动画,但是简单的一种动画(如旋转、缩放、渐变、位移等)有时候并不能满足我们项目的要求,这时候就需要运用到混合动画...
    99+
    2022-06-06
    动画 Android
  • matplotlib画混淆矩阵与正确率曲线的实例代码
    混淆矩阵     混淆矩阵(Confusion Matrix)是机器学习中用来总结分类模型预测结果的一个分析表,是模式识别领域中的一种常用的...
    99+
    2022-11-12
  • 如何在vue项目中通过配置 webpack-obfuscator实现代码加密混淆
    如何在vue项目中通过配置 webpack-obfuscator实现代码加密混淆?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。安装npm install ...
    99+
    2023-06-06
  • Swift代码自定义UIView实现示例
    Swift自定义View和OC自定义View的原理都是一样的,重写init()方法或initWithFrame()方法,下面简单说说如何自定义swift UIView 主要是重写in...
    99+
    2022-11-12
  • 使用 Swift Package 插件生成代码的示例详解
    目录前言是什么让我再次关注到它?实施细节让我们写一些代码吧编写可执行文件创建该插件让我们看下结果前言 不久前,我正在工作中开发一项新服务,该服务由 Swift Package 组成,...
    99+
    2022-11-13
    Swift Package 插件生成代码 Swift Package 插件
  • Android TelephonyManager详解及实现代码
    JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能。先来看看本文程序运行的效果图:   本文程序演示了以下功...
    99+
    2022-06-06
    Android
  • GoLangchannel底层代码实现详解
    目录1.channel 简介2.channel 内部结构3.创建channel4.发送数据5.接收数据6.关闭channel7.总结1.channel 简介 Go语言有个很出名的话是...
    99+
    2022-11-11
  • C++代码实现链队列详解
    目录主要功能:完整代码展示:总结主要功能: 初始化、入队、出队、取队头元素、销毁队列、输出队列 完整代码展示: #include <iostream> using n...
    99+
    2022-11-12
  • java 实现汉诺塔详解及实现代码
    java 实现汉诺塔详解及实现代码汉诺塔问题:有三根柱子A,B,C,其中A上面有n个圆盘,从上至下圆盘逐渐增大,每次只能移动一个圆盘,并且规定大的圆盘不能叠放在小的圆盘上面,现在想要把A上面的n个圆盘全部都移动到C上面,输出移动的总步数以及...
    99+
    2023-05-31
    java 汉诺塔 ava
  • Java实现四则混合运算代码示例
    使用栈来实现,可以处理运算优先级。使用自然四则运算表达式即可,如:4+(3*(3-1)+2)/2。无需把表达式先转换为逆波兰等形式。package com.joshua.cal; import java.util.Collections; ...
    99+
    2023-05-31
    java 四则运算 ava
  • 详解spring封装hbase的代码实现
    前面我们讲了spring封装MongoDB的代码实现,这里我们讲一下spring封装Hbase的代码实现。hbase的简介:此处大概说一下,不是我们要讨论的重点。HBase是一个分布式的、面向列的开源数据库,HBase在Hadoop之上提供...
    99+
    2023-05-31
    spring hbase sprin
  • Python实现调度算法代码详解
    调度算法 操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源...
    99+
    2022-06-04
    算法 详解 代码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作