iOS安全保护:静态混淆、动态保护、代码混淆:(静态库混淆:混淆带有bitcode的静态、采用LLVM针对源代码混淆)

关注 #公众号:iOS逆向
文章目录
  • 文章目录

iOS安全保护:静态混淆、动态保护、代码混淆:(静态库混淆:混淆带有bitcode的静态、采用LLVM针对源代码混淆)

原创

#公众号:iOS逆向 2021-07-19 15:34:20 ©著作权

文章标签 iOS逆向 iOS安全 iOS iOS混淆 代码 文章分类 网络安全

©著作权归作者所有:来自51CTO博客作者#公众号:iOS逆向的原创作品,请联系作者获取转载授权,否则将追究法律责任

文章目录

  • 引言
  • I 、混淆带有bitcode sectname 的静态库
  • II 、 马甲包混淆方案
    • 2.1、混淆方案一
      • 2.1.1 使用
      • 2.1.2 content/Intergrating-with-Xcode
      • 2.1.3 wiki
      • 2.1.4 Known Issues
      • 2.1.5 demo
    • 2.2、混淆方案二: 混淆方法名,类名
      • 2.2.1 原版
    • 2.3 注意
  • III 、验证混淆效果
    • 3.1 hopper
    • 3.2 class-dump
    • 3.3 otool -tv
    • 3.4 cycript 分析
  • 赞
  • 收藏
  • 评论
  • 分享
  • 举报

上一篇:iOS全埋点AutoTrack:【AppEnd事件全埋点的实现步骤】(监听 `UIApplicationDidEnterBackgroundNotification `通知, 触发$AppEnd事件)

下一篇:iOS调试:【Chisel is a collection of LLDB commands to assist debugging iOS apps.】

提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
全部评论 () 最热 最新
相关文章
  • JS代码混淆研究

    对混淆和反混淆逻辑模糊的同学有福了,本帖用最小示例带您手动反混淆JS代码。原始代码:function get_copyright(){ var domain = "jshaman."; var from_year = 2017; var copyright = "(c)" +

    JS代码混淆 代码混淆 JS 混淆 反混淆
  • 初试js反混淆

    一、目标​最近js玩的花样越来越多了,本来简洁方便的一门开发语言,现在混淆的一塌糊涂。今天我们就介绍几种常见的反混淆方案。混淆的本质就是等价替换,把 a = 12 ,替换成 a = 100 - 8 + 5 - 15 - 70。 把 "push" 替换成 "\u0070\u0075\u0073\u0068", 基本上就让你调试起来很难受了。反混淆就是一

    javascript 语法树 字符串
  • 如何进行 iOS App 混淆加固?IPA 加壳与资源保护实战流程

    在日常iOS开发中,应用打包完成后,如何对成品IPA文件进行安全加固,一直是很多团队关注的重点。尤其是当源码无法提供、或交付时间紧张的情况下,直接对IPA文件进行处理成为一种可行且高效的方案。以下是一套我们在实际项目中使用过的IPA级别混淆与资源保护流程,每一步都使用了不同工具协同完成,通过工具组合来覆盖各个安全角度。实战流程总览静态扫描 → 类与符号提取 → 代码混淆与重命名 → 资源文

    iOS开发 网络抓包 iOS开发助手 网络协议 移动开发
  • ios 静态库 如何代码混淆

    # iOS静态库代码混淆方案在开发iOS应用时,使用静态库可以帮助我们共享代码和功能。然而,静态库的代码易于反编译,给代码的安全性带来了隐患。为了保护敏感逻辑和实现细节,我们需要采取代码混淆技术。本文将介绍如何对iOS静态库进行代码混淆,并给出相应的代码示例。## 1. 什么是代码混淆?代码混淆是将源代码转换为难以理解的形式的过程。通过这种方式,攻击者在获取到代码后,无法轻易地还原出源

    代码混淆 静态库 iOS
  • android 代码混淆 静态变量

    # Android代码混淆静态变量在Android开发中,为了保护源代码的安全性,我们经常会进行代码混淆。代码混淆是一种通过对代码进行变换和重命名的技术,使得反编译代码变得困难,从而提高源代码的安全性。在代码混淆中,静态变量是一种常见的目标,因为它们经常包含关键信息,比如API密钥和认证令牌。本文将介绍如何在Android开发中使用代码混淆来保护静态变量,并提供一些示例代码。## 为什么要

    静态变量 API 代码混淆
  • js代码保护-混淆js代码

    可以使用加密工具 VirboxProtector 对js代码做加密保护。最近尝试了一个加固厂商(VirboxProtector )的js代码保护,加密前后效果很明显。加密前js代码:/* 标签切换 */ /* tabclass : 标签切换的总容器的class tab_title : 标签容器的class tab_body : 标签内容容器的cl

    js加密 h5加固
  • 代码保护之道——混淆的艺术

    主要涉及黑产现状、通用防御架构、流程和混淆理论。黑产现状、盈利手段黑产的现状及常用的盈利手段是什么?这里

    控制流 风控 代码混淆
  • ios 静态库 混淆

    简介什么是库?库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现比如SDWebImage、AFNetworking 闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库静态库和动态库的存在形式静态库:.a.framework动态库:.dylib.framework&

    ios 静态库 混淆 移动开发 动态库 静态库 .a文件
  • iosclang代码混淆 llvm 代码混淆

    O-MVLL项目的介绍、安装和使用 O-MVLL介绍O-MVLL的开发灵感来自于另一个著名的基于LLVM的代码混淆项目ollvm,并在其基础上做了创新和改进。O-MVLL的混淆逻辑实现方式也是通过LLVM Pass,支持也仅会支持ARM64架构,根据作者所说,这是由于当初的设计选择。此外,作者还使用了pybind11,用户可以使用python脚本来对O-MV

    iosclang代码混淆 docker 字符串 代码混淆
  • android混淆静态变量未混淆

           静态变量大家再熟悉不过了,本来没什么好重复的。事情起因是这样的,最近测试那边反应正在做的一个产品总是莫名其妙的显示不出某些数据,甚至闪退崩溃,仔细查了几遍发现没什么问题,最后百般周折发现在那部测试机上运行的时候才会出现这中问题。于是各种log,各种断点调试,最后发现都是报的java.lang.NullPointerException,发现是静态

    android混淆静态变量未混淆 移动开发 java 运维 静态变量
  • java 混淆 源代码 代码混淆原理

     使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么需要js混淆在web系统发展早期,js在web系统中承担的职责并不多,只是简单的提交表单,js文件非常简单,也不需要任何的保护。随着js文件体积的增大,为了缩小js体积,加快http传输速度,开

    java 混淆 源代码 运维 c/c++ 前端 ViewUI
  • JavaScript源代码的混淆 javascript 混淆

    js混淆之webpack-obfuscator混淆是什么混淆是故意制造混淆代码的行为,即让人难以理解的源代码,类似于加密,但计算机能够识别理解代码并且执行它。混淆可以用来隐藏来自外部世界的业务逻辑,也可以实现压缩。简单的原理:使用工具对JS进行一下AST(抽象语法树)分析、修改,再重新根据AST生成JS。混淆的使用场景1、第三方公司使用公司软件,使用这个插件可以保护源码,它会在源码中加入废代码段,

    JavaScript源代码的混淆 webpack javascript npm 字符串
  • MPAndroidChart 混淆 混淆 代码

    关于ProGuardProGuard是一款开源的代码混淆工具,不仅能够混淆代码,而且可以进行代码的压缩和优化等,这里只关注其混淆的功能。代码混淆的原理就是,删除无用代码,使用难懂的类名,方法名,和变量名,来防止逆向工程.如何判断代码的有用还是无用呢,这里涉及到一个entry point的概念,entry point就是不会被ProGuard处理的方法,程序从这里开始遍历。搜索那些类和类的成员在被使

    MPAndroidChart 混淆 混淆 jar java 配置文件
  • android混淆静态方法

    #下面代码中的路径配置,你要修改成与你相对应的路径#引入依赖包rt.jar(jdk路径)(注意:如在makeJar的时候提示指定了两次,可以将其注释掉)#-libraryjars 'C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar'#引入依赖包android.jar(android SDK路径)(注意:如在makeJar的时候提示指定了两

    android混淆静态方法 android jar java
  • python源代码加密混淆 python 混淆代码

    Python代码由于是解释性语言,常规的操作很容易被恢复出来原始的python代码。所以我们要通过解释器实际执行代码时候的操作,从C语言、IR、汇编的层面去对python代码进行防逆向保护。环境:OS :Windows 10 1709Python:Python 3.8.6Cython:Cython version 0.29.22Visual Studio: VS2019理论来说,肯定保护所有的程序

    python源代码加密混淆 python LLVM 控制流
  • javascript 代码混淆 js源代码混淆包括

    像软件加密与解密一样,javascript的混淆与解混淆同属于同一个范畴。道高一尺,魔高一丈。没有永恒的黑,也没有永恒的白。一切都是资本市场驱动行为,现在都流行你能为人解决什么问题,这个概念。那么市场究竟能容纳多少个能解决这种问题的利益者。JS没有秘密。其实本人不赞成javascript进行hash混淆处理,一拖慢运行时速度,二体积大。JS代码前端可获取,天

    javascript 代码混淆 加密解密 混淆代码 javascript 2d
  • java源代码代码混淆 java代码混淆加密

            由于JAVA是一种解释型的语言,很容易被反编译,也许现在很多公司的产品在出厂之前都会加上License验证的步骤,那么License验证真的安全吗?License验证只能防君子,不能防小人。        那么怎么样使你的JAVA程序更安全呢?利用数字摘要技术+代码混淆。    &n

    java源代码代码混淆 JAVA软件加密 数字摘要 代码混淆 java
  • ios如何代码混淆 代码混淆的作用

    应用混淆(ProGuard)ProGuard是一个免费的JAVA类文件压缩,优化,混淆器。它探测并删除没有使用的类,字段,方法和属性,它删除没有用的说明并使用字节码得到最大优化,它使用无意义的名字重命名类,字段和方法。我们先来介绍下ProGuard我们为啥要使用ProGuard?优化应用:创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用;防止反向:创建的程序和程序库很难使用反向工程

    ios如何代码混淆 android java 安卓 jar
  • ios混淆代码的制作 混淆代码还原

    上周直播讲解了第16题混淆js的还原,本文再做个补充,方便星友们学习AST插件的编写技巧。一.实战网址二.加密参数分析抓包,分析接口数据:点击去,即可发现加密参数 m 及 t 赋值的地方:在 r.m = n[e(528)](btoa, p_s) 这行代码打上断点,再次请求,断住后,控制台输入 btoa并回车,双击下面的代码,来到这里:代码往上翻,把整个 732 相关的代码抠下来,并保存到

    ios混淆代码的制作 js javascript java python
  • IOS 代码混淆 ios代码混淆工具开源

    最新更新记录V2.0.3(2022年12月11日)更新内容:1、新增导入映射列表的逻辑;2、优化修复其他混淆逻辑;主要功能ZFJObsLib是专业的iOS源码混淆工具,具体功能有方法混淆、属性混淆、类名混淆、关键字混淆、添加垃圾代码、自动创建垃圾类、删除注释、修改资源文件Hash值、加密字符串、翻新资源名、模拟人工混淆、混淆文件名、混淆文件目录、混淆词库、混淆日志、映射列表、敏感词过滤、图片压缩

    IOS 代码混淆 ios 代码混淆 iOS代码混淆 iOS源码混淆
  • 115V交流电源:飞机地面静变电源的由来

    飞机起动用的115V交流静变电源是一种将地面市电转换为航空标准电源的设备,其核心功能是将380V/50Hz工业电或220V市电转换为115V/200V、400Hz的三相交流中频电源,以满足飞机地面维护、发动机启动等需求‌。‌变频技术‌:通过IGBT(绝缘栅双极型晶体管)和SPWM(空间矢量脉宽调制)技术,将50Hz/60Hz低频电逆变为400Hz中频电,输出波形失真度(THD)可控制在≤2%以内‌。‌多电压适配‌:通过变流器可将115V交流转换为28V/270V直流,满足不同子系统需求‌。

    #115V交流电源 #115V电源 #静变电源 #115V静变电源 应用场景
  • testchip和testkey哪个更值得买

    test 命令的格式非常简单test condition condition 是test命令要测试的一系列参数和值。当用在if-then 语句中时,test 命令看起来是这样的if test conditionthencommandsf i如果不写test  命令的condition 部分,它会以非零的退出状态码退出,并执行else 语句块 bash she

    字符串比较 测试方法 状态码
  • TRON的rpc网络

    RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络;1. RPN的意义RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Search,是比较传

    TRON的rpc网络 卷积 特征向量 全连接
  • android责任链模式实际项目使用

    使很多对象都有处理请求的机会,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止责任链模式主要包括以下几个角色1、处理者:处理者是一个接口,负责规定具体处理者处理用户请求的方法以及具体处理者设置后继处理对象的方法2、具体处理者:具体处理者是实现处理接口的类的实例,具体处理者通过调用处理接口规定的方法处理用户的请求,既在接到用户的请求后

    android责任链模式实际项目使用 #java #search #list #class
  • java jgit 使用示例

    G1垃圾回收器的工作原理G1 垃圾回收器特点G1 垃圾回收器是可以同时回收新生代和老年代对象的,不需要两个垃圾回收器配合起来运作。它最大一个特点就是把 JAVA 堆内存分为多个大小相等 Region。 G1 也会有新生代和老年代的概念,但是只不过是逻辑上的概念。G1 可以让我们设置一个垃圾回收的预期停顿时间。也就是说我们可以指定:希望G1进行垃圾回收的时候,可以保证,在1小时内由G1垃圾回收导致的

    java jgit 使用示例 G1 老年代 垃圾回收
#公众号:iOS逆向
    关注
    分类列表
    • # iOS基础1篇
    • # iOS进阶51篇
    • # iOS开发基础1篇
    精品课程领资料
    免费资料>
    2025软考
    系统架构设计师 系统规划与管理师 软件设计师 系统集成项目管理工程师
    信创认证
    系统架构师 信创集成项目管理师 信创规划管理师 系统开发工程师
    厂商认证
    CKA/CKS架构师 红帽认证工程师 Oracle-OCP认证 Oracle-OCM认证
    IT技术
    数据库高级工程师 AIGC大模型实战 Linux云计算架构师 Python全栈开发
    华为认证
    数通HCIP认证 云计算HCIE认证 华为存储HCIE认证 HCIP安全认证
    近期文章
    • 1.2025年10月文章一览
    • 2.智驾“请抬脚”提示感悟 - 当工程师思维遇见用户思维
    • 3.win虚拟机安装
    • 4.Java 实现高效 MP3 音频合并:摆脱 FFmpeg 的纯本地方案
    • 5.比付费版还爽,全系列支持
    新人福利
    文章目录
    • 文章目录
    • 意见
      反馈
    • 训练营训练营

    举报文章

    请选择举报类型

    内容侵权 涉嫌营销 内容抄袭 违法信息 其他

    具体原因

    包含不真实信息 涉及个人隐私

    原文链接(必填)

    补充说明

    0/200

    上传截图

    格式支持JPEG/PNG/JPG,图片不超过1.9M

    已经收到您得举报信息,我们会尽快审核
    • 赞
    • 收藏
    • 评论
    • 分享
    如有误判或任何疑问,可联系 「小助手微信:cto51cto」申诉及反馈。
    我知道了
    51CTO首页
    AI.x社区
    博客
    学堂
    精品班
    软考社区
    免费课
    企业培训
    鸿蒙开发者社区
    信创认证
    公众号矩阵
    移动端
    视频课 免费课 排行榜 短视频 直播课 软考学堂
    全部课程 软考 信创认证 华为认证 厂商认证 IT技术 PMP项目管理 免费题库
    在线学习
    文章 资源 问答 课堂 专栏 直播
    51CTO
    鸿蒙开发者社区
    51CTO技术栈
    51CTO官微
    51CTO学堂
    51CTO博客
    CTO训练营
    鸿蒙开发者社区订阅号
    51CTO软考
    51CTO学堂APP
    51CTO学堂企业版APP
    鸿蒙开发者社区视频号
    51CTO软考题库
    51CTO博客

    51CTO博客

    • 首页
    • 关注
    • 排行榜
    • 精品课程升职加薪
    • 免费资料领资料
    • 软考题库软考题库
      软考题库
      科目全、试题精、讲解专业,扫码免费刷
    • 搜索历史 清空
      热门搜索
      查看【 】的结果
    • 写文章
    • 创作中心
    • 登录注册
    51CTO博客

    Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号

    关于我们
    官方博客 全部文章 热门标签 班级博客
    了解我们 网站地图 意见反馈
    友情链接
    鸿蒙开发者社区 51CTO学堂
    51CTO 软考资讯