IoT时代LLVM编译器防护技术.pptx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

IoT时代LLVM编译器防护技术技术创新,变革未来

目录01万物互联,代码安全先行02传统代码保护、LLVM安全编译器03混淆、块调度、代码虚拟化

万物互联,安全先行物理安全防止丢失或者被盗业务安全防止用户隐私数据泄漏系统安全防止底层漏洞被恶意利用

策略安全

万物互联,代码安全先行防逆向打配合提高门槛争取时间防止核心算法被重构提升策略安全的强度提高破解成本,将逆向菜鸟拒之门外加大破解难度,延长破解时间,为运营争取更多的有利窗口期

物联网时代即将开启AndroidThings让您可以为各种消费者,零售和工业应用程序构建智能互联设备。AliOSThings面向IoT领域的轻量级物联网嵌入式操作系统,可广泛应用在智能家居、智慧城市、新出行等领域。DuerOS可以广泛支持手机、电视、音箱、汽车、机器人等多种硬件设备IoT.MI小米IoT开发者平台面向智能家居、智能家电、健康可穿戴、出行车载等领域

芯片体系越来越多互联网Windows/MacOS/Linuxx86x86-64移动互联网iOS/Androidx86armarm64物联网Android/AliOSThingsx86x86-64armarm64mipsmips64stm32avrbpfhexagonlanainvptxriscvsparcsystemzcsky

运行内存越来越少互联网Windows/MacOS/Linux256KB-1GB移动互联网iOS/Android512MB-8GB物联网Android/AliOSThings2GB-16GB

物联网操作系统运行环境跑在种类繁多的芯片架构上受限于功耗硬件性能低下运行在内存一般偏小的环境

概念科普黑盒代码加密处理的对象是最终的软件执行体,比如Windows的EXE、Android的SO以及DEX白盒代码加密处理的对象是源代码,比如C/C++/Objective-C/Swift这类语言的源代码文件

黑盒代码加密的应用比如适用于Windows、Linux、Android的UPX壳比如利用x86指令集的可变长特性增加误导反汇编程序的垃圾指令比如Windows非常著名的VMProtect比如Android的DEX整体加解密、类抽取ACBD加壳加花指令加虚拟机劫持运行时

黑盒代码加密的局限可移植性差兼容性差很难对多端且同源的代码做一致性的保护芯片架构不兼容、内存需求显著增加,很难适应新的像IoT这样的平台对于像Android这类高碎片化的平台,干预运行时意味着兼容性极差对于像iOS这类完全封闭的平台,干预运行时意味着方案没法工作

LLVM编译器登场前端源代码LLVM是模块化、可复用的编译器工具链集合,最初是伊利诺伊大学的一个研究项目,其目标是提供一种现代的,基于SSA的编译策略,能够支持任意编程语言的静态和动态编译。IR处理LLVM-IR后端LLVM-MIR目标文件Object

LLVM-IR函数模块IR指令基本块LLVM提供了完整的IR文件操作API,可以对IR文件的模块、函数、基本块、IR指令做任意修改。||架构信息全局数据函数申明函数实现编译元数据||函数申明变量申明代码块||IR指令序列||算术指令逻辑指令控制指令......

挖掘LLVM-IR的潜能架构无关可以适应任意芯片架构方案丰富可以满足任意要求的安全级别函数粒度可以适应低内存运行环境

初级防护原始流程图混淆流程图

高级防护原始流程图块调度流程图

代码虚拟化KIWIVMKiwiVM代码虚拟化编译器基于LLVM编译器中间层实现,通过设计独有保密的虚拟CPU指令,将原始CPU指令进行加密转换为只能由KiwiVM解释执行的虚拟指令,能够完全隐藏函数代码逻辑,让代码无法被逆向工程。虚拟CPU执行函数保护粒度全平台全架构100%兼容性

KIWIVM转换过程LLVM-BC源文件ClangKiwiVM源文件KiwiVM的中心思想是利用LLVM-BC编码成自定义虚拟CPU的指令集和元数据,包括指令集数据、重定位数据、函数调用签名数据等。||CC++ObjC||BC函数列表||功能等价的C||生成最终的Obj文件

KIWIVM转换样例

旗舰防护原始流程图虚拟机流程图

差异对比混淆块调度代码虚拟化

几维安全编译器产品简介级别功能平台混淆编译器初级代码膨胀乱序执行iOS、Android、IoT块调度编译器高级逻辑断链函数调用隐藏iOS、Android、IoT虚拟化编译器旗舰级逻辑隐藏虚拟CPU执行iOS、Android、IoT

文档评论(0)

姚启明 + 关注
实名认证
内容提供者

80后

1亿VIP精品文档

相关文档