是一個用於為你的iOS項目對象生成不可逆加密名稱的工具,其目的是保護你的iOS apps不被一些逆向工具所破解(如class-dump和Cycript)。
class fjiovh4894bvic: XbuinvcxoDHFh3fjid {
func cxncjnx8fh83FDJSDd() {
return vPAOSNdcbif372hFKF()
}
}
使用-automatic標籤,SwiftShield將使用SourceKit自動混淆整個項目(包括依賴項)。請注意,SwiftShield的自動模式的範圍與Xcode的本機重構工具的範圍直接相關,後者不會重構所有內容。雖然文檔中的特定情況不會被混淆,但SwiftShield將對所有可以進行逆向的Swift類和方法進行混淆處理。
如果你想要完全混淆所有內容 – 包括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)
}
}
成功加密項目後,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
更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。