首页 > 科技 > Swiftshield:SwiftOBJ-C 代码混淆工具

Swiftshield:SwiftOBJ-C 代码混淆工具

SwiftShield

是一个用于为你的iOS项目对象生成不可逆加密名称的工具,其目的是保护你的iOS apps不被一些逆向工具所破解(如class-dump和Cycript)。

class fjiovh4894bvic: XbuinvcxoDHFh3fjid {
func cxncjnx8fh83FDJSDd() {
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 cxncjnx8fh83FDJSDd() {
let DjivneVjxrbv42jsr = vPAOSNdcbif372hFKF(vnjdDNsbufhdks3hdDs: true)
DjivneVjxrbv42jsr.cxncjnx8fh83FDJSDd(dncjCNCNCKSDhssuhw21w: 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

更多使用方法可以查看官方文档

开源地址:

https://github.com/rockbruno/swiftshield

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/259299.html