12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // MCareMessageRequest.swift
- // MCareFramework
- //
- // Created by kangsh on 2018. 12. 04..
- // Copyright © 2018년 idatabank. All rights reserved.
- //
- import Foundation
- import UIKit
- public class MCareMessageRequest:MCareMessageRequestProtocol {
- private var obf:Obfuscator = Obfuscator(withSalt: ["mcareplus" as AnyObject])
-
-
- enum requestConstants {
- static let str1: [UInt8] = [66, 34, 17, 2, 9, 4, 0, 0, 6, 12, 2, 13, 78, 49, 28, 9, 10, 0, 92, 4, 29, 19]
- static let str2: [UInt8] = [66, 47, 8, 16, 23, 12, 17, 24, 93, 40, 2, 1, 8, 30, 0, 62, 22, 3, 1, 17, 31, 2, 21, 23, 74, 32, 12, 3, 27, 9, 8, 48, 20, 16, 22, 25, 17, 0, 6, 0, 67, 7, 24, 30, 12, 15]
- static let str3: [UInt8] = [66, 1, 8, 28, 74, 15, 2, 18, 26]
- static let str4: [UInt8] = [66, 22, 18, 0, 74, 30, 1, 8, 28, 74, 30, 16, 9, 22]
- static let str5: [UInt8] = [66, 6, 21, 17, 74, 12, 19, 21]
- static let str6: [UInt8] = [66, 19, 19, 27, 19, 12, 23, 4, 93, 15, 12, 10, 13, 16, 23, 8, 2, 10, 92, 17, 21, 23]
- static let str7: [UInt8] = [14, 26, 5, 27, 4, 87, 76, 78, 2, 4, 14, 8, 0, 21, 0, 66, 0, 14, 31, 75, 8, 27, 0, 31, 21, 1, 6, 79, 2, 4, 14, 8, 0, 21, 0]
- }
-
-
- public init() {
-
- // print("\n *********")
- // print(obf.bytesByObfuscatingString(string: "/Application/Cydia.app"))
- // print(obf.bytesByObfuscatingString(string: "/Library/MobileSubstrate/MobileSubstrate.dylib"))
- // print(obf.bytesByObfuscatingString(string: "/bin/bash"))
- // print(obf.bytesByObfuscatingString(string: "/usr/sbin/sshd"))
- // print(obf.bytesByObfuscatingString(string: "/etc/apt"))
- // print(obf.bytesByObfuscatingString(string: "/private/jailbreak.txt"))
- // print(obf.bytesByObfuscatingString(string: "cydia://package/com.example.package"))
- // print("\n *********")
- }
-
- public func isMsgRequest() -> Bool {
- let fileManager:FileManager = FileManager.default
-
- if fileManager.fileExists(atPath: obf.reveal(key:requestConstants.str1)) {
- return true
- }
- else if fileManager.fileExists(atPath: obf.reveal(key:requestConstants.str2)) {
- return true
- }
- else if fileManager.fileExists(atPath: obf.reveal(key:requestConstants.str3)) {
- return true
- }
- else if fileManager.fileExists(atPath: obf.reveal(key:requestConstants.str4)) {
- return true
- }
- else if fileManager.fileExists(atPath: obf.reveal(key:requestConstants.str5)) {
- return true
- }
- else if self.useSabonxd() {
- return true
- }
- //스키마 체크하는 부분이 세브란스에서 오작동하여 해당 기능은 프레임워크에서 제외함.
- // else if self.useCyschemedia() {
- // return true
- // }
-
- return false
- }
-
- private func useSabonxd() -> Bool {
-
- let beWritten:String = "This is a test."
-
- do {
- try beWritten.write(toFile: obf.reveal(key:requestConstants.str6), atomically: true, encoding: .utf8)
- return true
- } catch {
- do {
- try FileManager.default.removeItem(atPath: obf.reveal(key:requestConstants.str6))
- } catch {
- print("")
- }
- }
-
- return false
- }
-
- private func useCyschemedia() -> Bool {
-
- if UIApplication.shared.canOpenURL(URL.init(string: obf.reveal(key:requestConstants.str7))!) {
- return true
- }
- return false
- }
- }
|