Swiftshield:SwiftOBJ-C 编码混淆专用工具

访客4年前黑客工具734

SwiftShield是一个用以给你的iOS项目目标形成不可逆数据加密名字的专用工具,其目地是保护你的iOS apps不被一些反向专用工具所破译(如class-dump和Cycript)。

class fjiovh4894bvic: XbuinvcxoDHFh3fjid{

func cxncjnx8fh83FD *** Dd(){

return vPAOSNdcbif372hFKF()

}

}

全自动模式(只限 Swift)

应用-automatic标识,SwiftShield将应用SourceKit全自动混淆全部项目(包含依靠项)。一定要注意,SwiftShield的全自动模式的范畴与Xcode的该设备重新构建专用工具的范畴立即有关,后面一种不容易重新构建全部內容。尽管文本文档中的特殊状况不容易被混淆,但SwiftShield将对全部能够开展反向的Swift类和方式开展混淆解决。

手动模式(Swift/OBJ-C)

假如你要想彻底混淆全部內容 – 包含typealases和內部属性名字,你也能够应用手动模式。它是运作SwiftShield的非常简单 *** ,但另外也是最用时的。应用时,SwiftShield将依据你挑选的标识对其属性和类开展混淆解决。比如,在手动模式下运作SwiftShield并应用__s标识,编码以下:

class EncryptedVideoPlayer__s: DecryptionProtocol__s{

func start__s(){

let vc__s=ImportantDecryptingController__s(secureMode__s: true)

vc__s.start__s(playAutomatically__s: true)

}

}

混淆后:

class fjiovh4894bvic: XbuinvcxoDHFh3fjid{

func cxncjnx8fh83FD *** Dd(){

let DjivneVjxrbv42jsr=vPAOSNdcbif372hFKF(vnjdDN *** ufhdks3hdDs: true)

DjivneVjxrbv42jsr.cxncjnx8fh83FD *** Dd(dncjCNCNCKSDhssuhw22w: true)

}

}

对数据加密的 Crash logs 开展反混淆解决

取得成功数据加密项目后,SwiftShield将形成一个包括conversionMap.txt文件的輸出文件夹名称,在其中包括对项目所做的全部变更。

//

// SwiftShield

// Conversion Map

// Automatic mode for MyApp 2.0 153, 2018-09-24 10.23.48

//

Data:

ViewController===> YytSIcFnBAqTAyR

AppDelegate===> uJXJkhVbwdQGNhh

SuperImportantClassThatShouldBeHidden===> GDqKGsHjJsWQzdq

你能根据运作下列指令来应用此文档全自动反混淆一切种类的根据文字的crash文件:

swiftshield -deobfuscate CRASH_FILE -deobfuscate-map PATH_TO_CONVERSION_MAP

必备条件

全自动模式

如果app的一个或好几个控制模块/拓展不能满足这种标准,则能够应用-ignore-modules主要参数防止对其开展混淆解决。

1.沒有根据类/属性名字的逻辑性,例如载入MyClass.xib由于String(describing: type(of:self))为’MyClass’。

2.沒有启用Swift方式的Objective-C类(启用Objective-C方式的Swift类是能够的,除非是牵涉到插口)

3.全新的Swift版本和Xcode命令行工具(适用全部版本,但因为SourceKit版本不一样,結果很有可能也会各有不同)

4.保证你的项目不包含SourceKit的bug。尽管这种bug不容易阻拦项目被混淆,但在其中一些很有可能必须在以后开展一些手动恢复。

(在Info.plist中应用NSExtensionPrincipalClass或组合的App Extensions(如Rich Notifications/Watch apps)也会对该类引入开展混淆解决,但会假设你没有将其更改成默认设置的$(PRODUCT_MODULE_NAME).ClassName值。假如您改动这种plist偏向不一样控制模块中的类,则务必在运作此专用工具后手动变更他们。)

手动模式

请保证你的标识不容易被用在这些不可被混淆的內容上,比如硬编码字符串数组。

安裝

警示:SwiftShield会不可逆地遮盖你全部的源代码。因而,提议你只在CI server和release builds上运作它。

从该储存库免费下载全新版本,随后点击这里查询怎么设置SwiftShield。

运作

全自动模式

swiftshield -automatic -project-root /app/MyApp -automatic-project-file /app/MyApp/MyApp.xcworkspace -automatic-project-scheme MyApp-AppStore

必需主要参数:

automatic:开启全自动模式。

project-root:项目的网站根目录。SwiftShield将应用它来检索你的项目文档。

automatic-project-file:你app的main .xcodeproj/.xcworkspace文档。

automatic-project-scheme myScheme:从你的-automatic-project-file搭建的main scheme。

可选主要参数:

ignore-modules:忽视混淆一些控制模块,用分号隔开。假如某一控制模块没法恰当混淆,请应用此选择项。留意,这应该是导进控制模块的准确名字(而不是总体目标名字!)。实例:MyLib,MyAppRichNotifications,MyAppWatch_Extension

show-sourcekit-queries:复印发送至SourceKit的查看。留意,复印的数据信息內容量会十分大,这会造成你的终端设备看起来很错乱,因而仅将其用以错误报告和作用开发设计!

手动模式

swiftshield -project-root /app/MyApp

必需主要参数:

project-root:项目的网站根目录。SwiftShield将应用它来检索你的项目文档,storyboards和源代码。

可选主要参数:

tag:应用自定义标签。默认设置为__s。

二种模式的附加主要参数

verbose:复印详细资料。

obfuscation-character-count:设定混淆名字的字符数。默认设置状况下,为32。留意,因为名字矛盾的概率较高,因而应用较小的标值会造成运作速率减缓。

dry-run:事实上不容易覆盖文件。对调节有效!

奉献

大家十分热烈欢迎对SwiftShield的奉献!现阶段沒有奉献手册,因而你能随意应用“Issues”菜单栏来探讨将来的作用和改善。

相关文章

细读精品黑客帝国(十分钟看完黑客帝国)

细读精品黑客帝国(十分钟看完黑客帝国)

本文目录一览: 1、不得不看的科幻片有哪些? 2、电影史上有哪些伟大的三部曲? 3、有没有一部科幻电影能够超越《星际穿越》,如果有请介绍给我? 不得不看的科幻片有哪些? 有:《盗梦空间》《猩...

《权力的游戏》最终季,各大品牌如何借势造势

《权力的游戏》最终季,各大品牌如何借势造势

这个初夏,《权力的游戏》迎来最终季,是许多剧迷最为等候也是各品牌一气呵成的最佳时期,所以,各品牌使出混身解数推出自家各类联名款借势造势,小到漫画、邮票、小挂件,大到游戏、酒类、潮鞋等,敬请浏览~...

如何查对方的微信聊天记录

. 小儿佝偻病根本原因是体内缺乏维生素D造成的,多发生在儿童2到3岁的儿童身上,对于小儿佝偻病要及时了解其早期症状,注意维生素D的营养摄入,那么,小儿佝偻病的早期症状有哪些呢?接下来友谊长存小编就来...

什么动物吃仙人掌都不觉得扎嘴?5月25日蚂蚁庄园课堂答案

什么动物吃仙人掌都不觉得扎嘴?5月25日蚂蚁庄园课堂答案

什么动物吃仙人掌都不觉得扎嘴?这是蚂蚁庄园5月25号今日庄园小课堂的问题,很多用户还不知道答案,本文小编会为大家详细介绍,感兴趣的小伙伴们,一起和小编来看看吧! 蚂蚁庄园回答知识送饲料活动开始啦...

如何查我老公微信已删好友

前言 搬家是一件麻烦的事情,其中一个麻烦就是宽带要搬迁或者重新安装,在这期间很多设备的上网就很麻烦,其实不止是搬家,在一些展会、仓库、旅行等短时间需要Wi-Fi的场景都会遇到类似的问题。...

发烧吃什么药?解决感冒发烧最好方法

发烧吃什么药?解决感冒发烧最好方法

发烧吃什么药(解决感冒发烧最好方法)感冒发烧的时候人非常的难受,浑身没劲,无精打采。发热严重时,真的就只能躺在床上什么都做不了,那么感冒发烧吃什么药呢?平时要多注意哪些,下面小编将叫给大家感冒发烧的时...