差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
公開:20180811_tibame_ios_app資訊安全 [2018/08/11 14:47] kent |
公開:20180811_tibame_ios_app資訊安全 [2018/12/15 10:46] (目前版本) kent |
||
---|---|---|---|
行 15: | 行 15: | ||
[[https://docs.google.com/spreadsheets/d/1lWJeJszvQkPqZ3tLY9-ZEjtqrANw1lCOOZnjU5mfhlc/edit?usp=sharing|UDID登記表]] | [[https://docs.google.com/spreadsheets/d/1lWJeJszvQkPqZ3tLY9-ZEjtqrANw1lCOOZnjU5mfhlc/edit?usp=sharing|UDID登記表]] | ||
- | ==== Data+RNCrypt.swift (0811 1450) ==== | + | ==== DataProtection練習憑證 ==== |
+ | 僅支援有登記UDID的裝置. | ||
+ | [[https://www.dropbox.com/s/q2lovjevtarpf3k/DataProtectionDemo%E6%86%91%E8%AD%89.zip?dl=0|憑證下載]] | ||
<file> | <file> | ||
- | // | + | Bundle ID: com.kent.dataprotectiondemo |
- | // Data+RNCryptor.swift | + | P12密碼: 1qaz2wsx |
- | // HelloMySecureApp | + | </file> |
- | // | + | |
- | // Created by Kent Liu on 2018/8/11. | + | |
- | // Copyright © 2018年 SoftArts Inc. All rights reserved. | + | |
- | // | + | |
+ | ==== 假 Pinning Hash ==== | ||
+ | <file> | ||
+ | "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", | ||
+ | "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=" | ||
+ | </file> | ||
+ | |||
+ | ==== main.swift 預設內容 ==== | ||
+ | <file> | ||
import Foundation | import Foundation | ||
- | import RNCryptor | + | import UIKit |
+ | |||
+ | autoreleasepool { | ||
+ | UIApplicationMain( | ||
+ | CommandLine.argc, | ||
+ | UnsafeMutableRawPointer(CommandLine.unsafeArgv) | ||
+ | .bindMemory( | ||
+ | to: UnsafeMutablePointer<Int8>.self, | ||
+ | capacity: Int(CommandLine.argc)), | ||
+ | nil, | ||
+ | NSStringFromClass(AppDelegate.self) //Or your class name | ||
+ | ) | ||
- | extension Data { | ||
- | | ||
- | | ||
- | | ||
- | func decrypt(key: String) -> Data? { | ||
- | | ||
- | // Convert base64 encoded data to original data | ||
- | guard let encryptedData = Data(base64Encoded: self) else { | ||
- | print("Fail to convert base64 to data.") | ||
- | return nil | ||
- | } | ||
- | | ||
- | guard let decryptedData = try? RNCryptor.decrypt(data: encryptedData, withPassword: key) else { | ||
- | assertionFailure("Fail to decrypt.") | ||
- | return nil | ||
- | } | ||
- | return decryptedData | ||
- | } | ||
- | | ||
- | func decryptToString(key: String) -> String? { | ||
- | guard let data = decrypt(key: key) else { | ||
- | return nil | ||
- | } | ||
- | guard let string = String(data: data, encoding: .utf8) else { | ||
- | print("Fail to convert data to string.") | ||
- | return nil | ||
- | } | ||
- | return string | ||
- | } | ||
} | } | ||
</file> | </file> | ||
+ | ==== Objective-C 混淆方式參考 ==== | ||
+ | [[https://github.com/kaich/codeobscure|codeobscure]] | ||
+ | [[https://github.com/kongcup/ZMConfuse|ZMConfuse]] |