差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
公開:20180811_tibame_ios_app資訊安全 [2018/08/12 09:14] kent |
公開:20180811_tibame_ios_app資訊安全 [2018/12/15 10:46] (目前版本) kent |
||
---|---|---|---|
行 14: | 行 14: | ||
==== UDID登記表 ==== | ==== UDID登記表 ==== | ||
[[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) ==== | ||
- | <file> | ||
- | // | ||
- | // Data+RNCryptor.swift | ||
- | // HelloMySecureApp | ||
- | // | ||
- | // Created by Kent Liu on 2018/8/11. | ||
- | // Copyright © 2018年 SoftArts Inc. All rights reserved. | ||
- | // | ||
- | |||
- | import Foundation | ||
- | import RNCryptor | ||
- | |||
- | 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> | ||
==== DataProtection練習憑證 ==== | ==== DataProtection練習憑證 ==== | ||
行 68: | 行 23: | ||
</file> | </file> | ||
+ | ==== 假 Pinning Hash ==== | ||
+ | <file> | ||
+ | "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", | ||
+ | "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=" | ||
+ | </file> | ||
+ | |||
+ | ==== main.swift 預設內容 ==== | ||
+ | <file> | ||
+ | import Foundation | ||
+ | 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 | ||
+ | ) | ||
+ | |||
+ | } | ||
+ | </file> | ||
+ | ==== Objective-C 混淆方式參考 ==== | ||
+ | [[https://github.com/kaich/codeobscure|codeobscure]] | ||
+ | [[https://github.com/kongcup/ZMConfuse|ZMConfuse]] |