Browse Source

난독화 적용 및 랜덤 호출 추가

서용하 6 years ago
parent
commit
131c62a24d
28 changed files with 1268 additions and 639 deletions
  1. 105 23
      MCPlus.xcodeproj/project.pbxproj
  2. 29 18
      MCPlus/AppDelegate.swift
  3. 0 102
      MCPlus/MCareUtil.swift
  4. 0 175
      MCPlus/McareCrackCheck.swift
  5. 94 0
      MCPlus/Utils/RootingCheck/MCareMessageRequest.swift
  6. 94 0
      MCPlus/Utils/RootingCheck/MCareMessageRequest2.swift
  7. 94 0
      MCPlus/Utils/RootingCheck/MCareMessageRequest3.swift
  8. 94 0
      MCPlus/Utils/RootingCheck/MCareMessageRequest4.swift
  9. 94 0
      MCPlus/Utils/RootingCheck/MCareMessageRequest5.swift
  10. 13 0
      MCPlus/Utils/RootingCheck/MCareMessageRequestProtocol.swift
  11. 112 0
      MCPlus/Utils/RootingCheck/McareCrackCheck.swift
  12. 112 0
      MCPlus/Utils/RootingCheck/McareCrackCheck2.swift
  13. 112 0
      MCPlus/Utils/RootingCheck/McareCrackCheck3.swift
  14. 112 0
      MCPlus/Utils/RootingCheck/McareCrackCheck4.swift
  15. 112 0
      MCPlus/Utils/RootingCheck/McareCrackCheck5.swift
  16. 76 0
      MCPlus/Utils/RootingCheck/Obfuscator.swift
  17. 13 0
      MCPlus/Utils/RootingCheck/TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift
  18. 1 1
      MCPlus/ViewControllers/WebViewController.swift
  19. 0 289
      MCareFramework.framework/Headers/MCareFramework-Swift.h
  20. 0 19
      MCareFramework.framework/Headers/MCareFramework.h
  21. BIN
      MCareFramework.framework/Info.plist
  22. BIN
      MCareFramework.framework/MCareFramework
  23. BIN
      MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm.swiftdoc
  24. BIN
      MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm.swiftmodule
  25. BIN
      MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm64.swiftdoc
  26. BIN
      MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm64.swiftmodule
  27. 0 11
      MCareFramework.framework/Modules/module.modulemap
  28. 1 1
      Podfile.lock

+ 105 - 23
MCPlus.xcodeproj/project.pbxproj

@@ -123,21 +123,12 @@
 		294B2B5F220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294B2B5E220C10B800EABB89 /* PhotoCollectionViewCell.swift */; };
 		294B2B60220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294B2B5E220C10B800EABB89 /* PhotoCollectionViewCell.swift */; };
 		294B2B61220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294B2B5E220C10B800EABB89 /* PhotoCollectionViewCell.swift */; };
-		294CA301225C4C4C00036C7B /* MCareFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; };
-		294CA302225C4C4C00036C7B /* MCareFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		294CA304225C4C7600036C7B /* MCareFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; };
-		294CA305225C4C7600036C7B /* MCareFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		294CA307225C4C7B00036C7B /* MCareFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; };
-		294CA308225C4C7B00036C7B /* MCareFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 294CA300225C4C4C00036C7B /* MCareFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		294CA30B225C4D0500036C7B /* McareCrackCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30A225C4D0500036C7B /* McareCrackCheck.swift */; };
 		294CA30C225C4D0500036C7B /* McareCrackCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30A225C4D0500036C7B /* McareCrackCheck.swift */; };
 		294CA30D225C4D0500036C7B /* McareCrackCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30A225C4D0500036C7B /* McareCrackCheck.swift */; };
 		294CA30F225C4D4200036C7B /* CommonConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30E225C4D4200036C7B /* CommonConstants.swift */; };
 		294CA310225C4D4200036C7B /* CommonConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30E225C4D4200036C7B /* CommonConstants.swift */; };
 		294CA311225C4D4200036C7B /* CommonConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA30E225C4D4200036C7B /* CommonConstants.swift */; };
-		294CA313225C4E3300036C7B /* MCareUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA312225C4E3200036C7B /* MCareUtil.swift */; };
-		294CA314225C4E3300036C7B /* MCareUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA312225C4E3200036C7B /* MCareUtil.swift */; };
-		294CA315225C4E3300036C7B /* MCareUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294CA312225C4E3200036C7B /* MCareUtil.swift */; };
 		294D03A3223F383C00947992 /* ExtensionUIApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294D03A2223F383C00947992 /* ExtensionUIApplication.swift */; };
 		294D03A4223F383C00947992 /* ExtensionUIApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294D03A2223F383C00947992 /* ExtensionUIApplication.swift */; };
 		294D03A5223F383C00947992 /* ExtensionUIApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294D03A2223F383C00947992 /* ExtensionUIApplication.swift */; };
@@ -234,6 +225,42 @@
 		29BD47D62201690200D7716E /* ExtensionDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BD47A22201690100D7716E /* ExtensionDictionary.swift */; };
 		29BD47D72201690200D7716E /* ExtensionDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BD47A22201690100D7716E /* ExtensionDictionary.swift */; };
 		29BD47D82201690200D7716E /* ExtensionDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BD47A22201690100D7716E /* ExtensionDictionary.swift */; };
+		29CF79AF2264186D00C0ACE9 /* Obfuscator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79AE2264186D00C0ACE9 /* Obfuscator.swift */; };
+		29CF79B02264186D00C0ACE9 /* Obfuscator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79AE2264186D00C0ACE9 /* Obfuscator.swift */; };
+		29CF79B12264186D00C0ACE9 /* Obfuscator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79AE2264186D00C0ACE9 /* Obfuscator.swift */; };
+		29CF79B322641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B222641D8700C0ACE9 /* MCareMessageRequest.swift */; };
+		29CF79B422641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B222641D8700C0ACE9 /* MCareMessageRequest.swift */; };
+		29CF79B522641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B222641D8700C0ACE9 /* MCareMessageRequest.swift */; };
+		29CF79BF2264261000C0ACE9 /* McareCrackCheck3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B72264260F00C0ACE9 /* McareCrackCheck3.swift */; };
+		29CF79C02264261000C0ACE9 /* McareCrackCheck3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B72264260F00C0ACE9 /* McareCrackCheck3.swift */; };
+		29CF79C12264261000C0ACE9 /* McareCrackCheck3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B72264260F00C0ACE9 /* McareCrackCheck3.swift */; };
+		29CF79C22264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B82264260F00C0ACE9 /* MCareMessageRequest3.swift */; };
+		29CF79C32264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B82264260F00C0ACE9 /* MCareMessageRequest3.swift */; };
+		29CF79C42264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B82264260F00C0ACE9 /* MCareMessageRequest3.swift */; };
+		29CF79C52264261000C0ACE9 /* McareCrackCheck2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B92264261000C0ACE9 /* McareCrackCheck2.swift */; };
+		29CF79C62264261000C0ACE9 /* McareCrackCheck2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B92264261000C0ACE9 /* McareCrackCheck2.swift */; };
+		29CF79C72264261000C0ACE9 /* McareCrackCheck2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79B92264261000C0ACE9 /* McareCrackCheck2.swift */; };
+		29CF79C82264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BA2264261000C0ACE9 /* MCareMessageRequest4.swift */; };
+		29CF79C92264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BA2264261000C0ACE9 /* MCareMessageRequest4.swift */; };
+		29CF79CA2264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BA2264261000C0ACE9 /* MCareMessageRequest4.swift */; };
+		29CF79CB2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BB2264261000C0ACE9 /* McareCrackCheck5.swift */; };
+		29CF79CC2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BB2264261000C0ACE9 /* McareCrackCheck5.swift */; };
+		29CF79CD2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BB2264261000C0ACE9 /* McareCrackCheck5.swift */; };
+		29CF79CE2264261000C0ACE9 /* McareCrackCheck4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BC2264261000C0ACE9 /* McareCrackCheck4.swift */; };
+		29CF79CF2264261000C0ACE9 /* McareCrackCheck4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BC2264261000C0ACE9 /* McareCrackCheck4.swift */; };
+		29CF79D02264261000C0ACE9 /* McareCrackCheck4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BC2264261000C0ACE9 /* McareCrackCheck4.swift */; };
+		29CF79D12264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BD2264261000C0ACE9 /* MCareMessageRequest5.swift */; };
+		29CF79D22264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BD2264261000C0ACE9 /* MCareMessageRequest5.swift */; };
+		29CF79D32264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BD2264261000C0ACE9 /* MCareMessageRequest5.swift */; };
+		29CF79D42264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BE2264261000C0ACE9 /* MCareMessageRequest2.swift */; };
+		29CF79D52264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BE2264261000C0ACE9 /* MCareMessageRequest2.swift */; };
+		29CF79D62264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79BE2264261000C0ACE9 /* MCareMessageRequest2.swift */; };
+		29CF79D8226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79D7226426C400C0ACE9 /* MCareMessageRequestProtocol.swift */; };
+		29CF79D9226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79D7226426C400C0ACE9 /* MCareMessageRequestProtocol.swift */; };
+		29CF79DA226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79D7226426C400C0ACE9 /* MCareMessageRequestProtocol.swift */; };
+		29CF79DC226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79DB226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift */; };
+		29CF79DD226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79DB226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift */; };
+		29CF79DE226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF79DB226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift */; };
 		29E13DE32202EA220064FECF /* PhotoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E13DE22202EA220064FECF /* PhotoViewController.swift */; };
 		29E13DE42202EA220064FECF /* PhotoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E13DE22202EA220064FECF /* PhotoViewController.swift */; };
 		29E13DE52202EA220064FECF /* PhotoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E13DE22202EA220064FECF /* PhotoViewController.swift */; };
@@ -262,7 +289,6 @@
 			dstPath = "";
 			dstSubfolderSpec = 10;
 			files = (
-				294CA302225C4C4C00036C7B /* MCareFramework.framework in Embed Frameworks */,
 			);
 			name = "Embed Frameworks";
 			runOnlyForDeploymentPostprocessing = 0;
@@ -273,7 +299,6 @@
 			dstPath = "";
 			dstSubfolderSpec = 10;
 			files = (
-				294CA305225C4C7600036C7B /* MCareFramework.framework in Embed Frameworks */,
 			);
 			name = "Embed Frameworks";
 			runOnlyForDeploymentPostprocessing = 0;
@@ -284,7 +309,6 @@
 			dstPath = "";
 			dstSubfolderSpec = 10;
 			files = (
-				294CA308225C4C7B00036C7B /* MCareFramework.framework in Embed Frameworks */,
 			);
 			name = "Embed Frameworks";
 			runOnlyForDeploymentPostprocessing = 0;
@@ -355,10 +379,8 @@
 		294B2B5A220C0DF400EABB89 /* PhotoCollectionViewReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoCollectionViewReusableView.swift; sourceTree = "<group>"; };
 		294B2B5E220C10B800EABB89 /* PhotoCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoCollectionViewCell.swift; sourceTree = "<group>"; };
 		294B7444221A8F9400DEC765 /* disableAttach.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = disableAttach.h; sourceTree = "<group>"; };
-		294CA300225C4C4C00036C7B /* MCareFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MCareFramework.framework; sourceTree = "<group>"; };
 		294CA30A225C4D0500036C7B /* McareCrackCheck.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = McareCrackCheck.swift; sourceTree = "<group>"; };
 		294CA30E225C4D4200036C7B /* CommonConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonConstants.swift; sourceTree = "<group>"; };
-		294CA312225C4E3200036C7B /* MCareUtil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareUtil.swift; sourceTree = "<group>"; };
 		294D03A2223F383C00947992 /* ExtensionUIApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionUIApplication.swift; sourceTree = "<group>"; };
 		2960345C2213A719008AB32E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
 		296034602213D735008AB32E /* ExtensionAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionAppDelegate.swift; sourceTree = "<group>"; };
@@ -395,6 +417,18 @@
 		29BD47A02201690100D7716E /* ExtensionUIViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionUIViewController.swift; sourceTree = "<group>"; };
 		29BD47A12201690100D7716E /* ExtensionCustomStringConvertible.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionCustomStringConvertible.swift; sourceTree = "<group>"; };
 		29BD47A22201690100D7716E /* ExtensionDictionary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionDictionary.swift; sourceTree = "<group>"; };
+		29CF79AE2264186D00C0ACE9 /* Obfuscator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Obfuscator.swift; sourceTree = "<group>"; };
+		29CF79B222641D8700C0ACE9 /* MCareMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareMessageRequest.swift; sourceTree = "<group>"; };
+		29CF79B72264260F00C0ACE9 /* McareCrackCheck3.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = McareCrackCheck3.swift; sourceTree = "<group>"; };
+		29CF79B82264260F00C0ACE9 /* MCareMessageRequest3.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareMessageRequest3.swift; sourceTree = "<group>"; };
+		29CF79B92264261000C0ACE9 /* McareCrackCheck2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = McareCrackCheck2.swift; sourceTree = "<group>"; };
+		29CF79BA2264261000C0ACE9 /* MCareMessageRequest4.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareMessageRequest4.swift; sourceTree = "<group>"; };
+		29CF79BB2264261000C0ACE9 /* McareCrackCheck5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = McareCrackCheck5.swift; sourceTree = "<group>"; };
+		29CF79BC2264261000C0ACE9 /* McareCrackCheck4.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = McareCrackCheck4.swift; sourceTree = "<group>"; };
+		29CF79BD2264261000C0ACE9 /* MCareMessageRequest5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareMessageRequest5.swift; sourceTree = "<group>"; };
+		29CF79BE2264261000C0ACE9 /* MCareMessageRequest2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MCareMessageRequest2.swift; sourceTree = "<group>"; };
+		29CF79D7226426C400C0ACE9 /* MCareMessageRequestProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCareMessageRequestProtocol.swift; sourceTree = "<group>"; };
+		29CF79DB226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift; sourceTree = "<group>"; };
 		29E13DE22202EA220064FECF /* PhotoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoViewController.swift; sourceTree = "<group>"; };
 		29EDBFF822015BD900E8D2F5 /* MCPlus-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MCPlus-Bridging-Header.h"; sourceTree = "<group>"; };
 		29EDBFFB22015BD900E8D2F5 /* PictureViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PictureViewController.swift; sourceTree = "<group>"; };
@@ -422,7 +456,6 @@
 				2934DFBC223B318D00184ACD /* CoreNFC.framework in Frameworks */,
 				126F0F342119709C00AA6C0B /* QuartzCore.framework in Frameworks */,
 				126F0F322119709400AA6C0B /* CoreVideo.framework in Frameworks */,
-				294CA301225C4C4C00036C7B /* MCareFramework.framework in Frameworks */,
 				126F0F302119708B00AA6C0B /* CoreMedia.framework in Frameworks */,
 				126F0F2E2119708200AA6C0B /* AVFoundation.framework in Frameworks */,
 				12298E5C20B67AEF0047B9A1 /* LocalAuthentication.framework in Frameworks */,
@@ -438,7 +471,6 @@
 				2934DFC6223B320400184ACD /* AVFoundation.framework in Frameworks */,
 				2934DFC4223B31EE00184ACD /* CoreMedia.framework in Frameworks */,
 				2934DFC1223B31D200184ACD /* CoreVideo.framework in Frameworks */,
-				294CA304225C4C7600036C7B /* MCareFramework.framework in Frameworks */,
 				2934DFC0223B31CA00184ACD /* QuartzCore.framework in Frameworks */,
 				2934DFBD223B319900184ACD /* CoreNFC.framework in Frameworks */,
 				294B2B4C220BDCF400EABB89 /* libsqlite3.tbd in Frameworks */,
@@ -454,7 +486,6 @@
 				2934DFC7223B320A00184ACD /* AVFoundation.framework in Frameworks */,
 				2934DFC5223B31F600184ACD /* CoreMedia.framework in Frameworks */,
 				2934DFC3223B31E000184ACD /* CoreVideo.framework in Frameworks */,
-				294CA307225C4C7B00036C7B /* MCareFramework.framework in Frameworks */,
 				2934DFC2223B31D800184ACD /* QuartzCore.framework in Frameworks */,
 				2934DFBF223B31BB00184ACD /* libsqlite3.tbd in Frameworks */,
 				293A3ED022004B6A0099E986 /* CoreNFC.framework in Frameworks */,
@@ -497,7 +528,6 @@
 		122634831DF7EDC300AC54FD = {
 			isa = PBXGroup;
 			children = (
-				294CA300225C4C4C00036C7B /* MCareFramework.framework */,
 				297F1F8422012D5000F69EA3 /* MCPlus.entitlements */,
 				297F1F8522012E0600F69EA3 /* MCPlus_dev.entitlements */,
 				293A3ECE220048D20099E986 /* MCPlus_lemon.entitlements */,
@@ -532,12 +562,10 @@
 				122634AC1DF7FE6700AC54FD /* Network */,
 				1226348F1DF7EDC300AC54FD /* Supporting Files */,
 				122E98351DFE6193009FB76E /* Utils */,
-				294CA312225C4E3200036C7B /* MCareUtil.swift */,
 				122E98391DFE8E1A009FB76E /* ViewControllers */,
 				1226349E1DF7EDC300AC54FD /* Assets.xcassets */,
 				126F40351E1F369C002E691B /* Images.xcassets */,
 				2960345C2213A719008AB32E /* AppDelegate.swift */,
-				294CA30A225C4D0500036C7B /* McareCrackCheck.swift */,
 				122634A01DF7EDC300AC54FD /* LaunchScreen.storyboard */,
 				122634981DF7EDC300AC54FD /* Main.storyboard */,
 				1226349B1DF7EDC300AC54FD /* MCPlus.xcdatamodeld */,
@@ -577,6 +605,7 @@
 		122E98351DFE6193009FB76E /* Utils */ = {
 			isa = PBXGroup;
 			children = (
+				29CF79B6226422D000C0ACE9 /* RootingCheck */,
 				2910EDF522167D5900302D0B /* CallbackUtil */,
 				2910EDF422167D4900302D0B /* ParseHelper */,
 				294B2B30220BDCCD00EABB89 /* SqliteWrapper */,
@@ -745,6 +774,26 @@
 			path = SwiftExtension;
 			sourceTree = "<group>";
 		};
+		29CF79B6226422D000C0ACE9 /* RootingCheck */ = {
+			isa = PBXGroup;
+			children = (
+				29CF79AE2264186D00C0ACE9 /* Obfuscator.swift */,
+				294CA30A225C4D0500036C7B /* McareCrackCheck.swift */,
+				29CF79B222641D8700C0ACE9 /* MCareMessageRequest.swift */,
+				29CF79B92264261000C0ACE9 /* McareCrackCheck2.swift */,
+				29CF79B72264260F00C0ACE9 /* McareCrackCheck3.swift */,
+				29CF79BC2264261000C0ACE9 /* McareCrackCheck4.swift */,
+				29CF79BB2264261000C0ACE9 /* McareCrackCheck5.swift */,
+				29CF79BE2264261000C0ACE9 /* MCareMessageRequest2.swift */,
+				29CF79B82264260F00C0ACE9 /* MCareMessageRequest3.swift */,
+				29CF79BA2264261000C0ACE9 /* MCareMessageRequest4.swift */,
+				29CF79BD2264261000C0ACE9 /* MCareMessageRequest5.swift */,
+				29CF79D7226426C400C0ACE9 /* MCareMessageRequestProtocol.swift */,
+				29CF79DB226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift */,
+			);
+			path = RootingCheck;
+			sourceTree = "<group>";
+		};
 		9DE10C03D883040B67D7BEFF /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -1242,6 +1291,7 @@
 				29BD47C72201690200D7716E /* ExtensionData.swift in Sources */,
 				294B2B3C220BDCCD00EABB89 /* FMDatabaseQueue.m in Sources */,
 				29BD47BE2201690100D7716E /* ExtensionUINavigationController.swift in Sources */,
+				29CF79C52264261000C0ACE9 /* McareCrackCheck2.swift in Sources */,
 				29BD47BB2201690100D7716E /* ExtensionAVPlayer.swift in Sources */,
 				2910EDFF221693E300302D0B /* ExtraWebViewController.swift in Sources */,
 				29BD47B82201690100D7716E /* ExtensionOptional.swift in Sources */,
@@ -1249,12 +1299,16 @@
 				29213687224082F5001AF1FE /* mockScreenLockViewController.swift in Sources */,
 				296034732213FC3F008AB32E /* MCarePlusConstants.swift in Sources */,
 				294B2B48220BDCCD00EABB89 /* FMResultSet.m in Sources */,
+				29CF79AF2264186D00C0ACE9 /* Obfuscator.swift in Sources */,
 				294CA30F225C4D4200036C7B /* CommonConstants.swift in Sources */,
 				294CA30B225C4D0500036C7B /* McareCrackCheck.swift in Sources */,
 				29BD47C12201690100D7716E /* ExtensionDispatchQueue.swift in Sources */,
+				29CF79BF2264261000C0ACE9 /* McareCrackCheck3.swift in Sources */,
+				29CF79CB2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */,
 				29BD47D02201690200D7716E /* ExtensionUIViewController.swift in Sources */,
-				294CA313225C4E3300036C7B /* MCareUtil.swift in Sources */,
+				29CF79CE2264261000C0ACE9 /* McareCrackCheck4.swift in Sources */,
 				296506982214EAC200FF4000 /* PACS.swift in Sources */,
+				29CF79C82264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */,
 				294B2B57220BE2BB00EABB89 /* SqlClient.swift in Sources */,
 				293E54802202D68200BFDB82 /* CustomCameraViewController.swift in Sources */,
 				29BD47CA2201690200D7716E /* ExtensionUIScrollView.swift in Sources */,
@@ -1266,9 +1320,13 @@
 				29BD47A62201690100D7716E /* ExtensionUIImageView.swift in Sources */,
 				294B2B5F220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */,
 				29E13DE32202EA220064FECF /* PhotoViewController.swift in Sources */,
+				29CF79D8226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */,
 				29BD47D62201690200D7716E /* ExtensionDictionary.swift in Sources */,
 				122E98381DFE61EF009FB76E /* ParseHelper.m in Sources */,
+				29CF79D12264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */,
+				29CF79D42264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */,
 				294B2B4F220BDD3F00EABB89 /* Photo.swift in Sources */,
+				29CF79DC226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */,
 				294B2B3F220BDCCD00EABB89 /* FMDatabaseAdditions.m in Sources */,
 				296034652213E98E008AB32E /* APIClient.swift in Sources */,
 				29BD47B22201690100D7716E /* ExtensionString.swift in Sources */,
@@ -1278,10 +1336,12 @@
 				299A75D1223F49E000DDA1B9 /* StoryBoardableWKWebView.swift in Sources */,
 				29BD47A92201690100D7716E /* ExtensionArray.swift in Sources */,
 				296506B1221568E800FF4000 /* WebViewController.swift in Sources */,
+				29CF79C22264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */,
 				294B2B29220BCEE500EABB89 /* PhotoCollectionViewAdapter.swift in Sources */,
 				29BD47C42201690100D7716E /* ExtensionDate.swift in Sources */,
 				296506AC221563BB00FF4000 /* LockOptionCell.swift in Sources */,
 				29BD47CD2201690200D7716E /* ExtensionUIImage.swift in Sources */,
+				29CF79B322641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */,
 				294B2B53220BDDBC00EABB89 /* User.swift in Sources */,
 				294D03A3223F383C00947992 /* ExtensionUIApplication.swift in Sources */,
 				2960345D2213A719008AB32E /* AppDelegate.swift in Sources */,
@@ -1309,22 +1369,31 @@
 				29BD47BF2201690100D7716E /* ExtensionUINavigationController.swift in Sources */,
 				29BD47BC2201690100D7716E /* ExtensionAVPlayer.swift in Sources */,
 				2910EE00221693E300302D0B /* ExtraWebViewController.swift in Sources */,
+				29CF79C62264261000C0ACE9 /* McareCrackCheck2.swift in Sources */,
 				29BD47B92201690100D7716E /* ExtensionOptional.swift in Sources */,
 				2910EDF822167DFC00302D0B /* BarcodeViewController.swift in Sources */,
 				294B2B49220BDCCD00EABB89 /* FMResultSet.m in Sources */,
 				29AB5ECD2238B15A00F8B219 /* MCarePlusConstants-dev.swift in Sources */,
+				29CF79C02264261000C0ACE9 /* McareCrackCheck3.swift in Sources */,
+				29CF79DD226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */,
+				29CF79D52264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */,
 				29BD47C22201690100D7716E /* ExtensionDispatchQueue.swift in Sources */,
 				29BD47D12201690200D7716E /* ExtensionUIViewController.swift in Sources */,
 				294B2B58220BE2BB00EABB89 /* SqlClient.swift in Sources */,
+				29CF79B422641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */,
+				29CF79CF2264261000C0ACE9 /* McareCrackCheck4.swift in Sources */,
+				29CF79D22264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */,
 				296506992214EAC200FF4000 /* PACS.swift in Sources */,
 				293E54812202D68500BFDB82 /* CustomCameraViewController.swift in Sources */,
 				29BD47CB2201690200D7716E /* ExtensionUIScrollView.swift in Sources */,
 				290A0CEF2216461100BEC6C0 /* ExtensionCollection.swift in Sources */,
 				296506A12215088E00FF4000 /* LockScreenDAO.swift in Sources */,
+				29CF79B02264186D00C0ACE9 /* Obfuscator.swift in Sources */,
 				294CA30C225C4D0500036C7B /* McareCrackCheck.swift in Sources */,
 				294B2B43220BDCCD00EABB89 /* FMDatabase.m in Sources */,
 				29BD47AD2201690100D7716E /* ExtensionUiView.swift in Sources */,
 				29BD47B62201690100D7716E /* ExtensionUIColor.swift in Sources */,
+				29CF79C92264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */,
 				294B2B60220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */,
 				29E13DE42202EA220064FECF /* PhotoViewController.swift in Sources */,
 				29BD47A72201690100D7716E /* ExtensionUIImageView.swift in Sources */,
@@ -1335,6 +1404,7 @@
 				296034662213E98E008AB32E /* APIClient.swift in Sources */,
 				29BD47B32201690100D7716E /* ExtensionString.swift in Sources */,
 				294CA310225C4D4200036C7B /* CommonConstants.swift in Sources */,
+				29CF79C32264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */,
 				2994612B220C17FB00CF3B54 /* PhotoDetailViewController.swift in Sources */,
 				129D1CB621CB62AD00A9D764 /* CallbackUtil.m in Sources */,
 				296034702213FAE7008AB32E /* MCarePlusConstantsProtocol.swift in Sources */,
@@ -1349,14 +1419,15 @@
 				294D03A4223F383C00947992 /* ExtensionUIApplication.swift in Sources */,
 				2960345E2213A719008AB32E /* AppDelegate.swift in Sources */,
 				296506A92215431D00FF4000 /* LockOptionViewViewController.swift in Sources */,
+				29CF79CC2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */,
 				2910EDFC2216908100302D0B /* Test2ViewController.swift in Sources */,
 				296034622213D735008AB32E /* ExtensionAppDelegate.swift in Sources */,
 				294B2B46220BDCCD00EABB89 /* FMDatabasePool.m in Sources */,
 				294B2B5C220C0DF400EABB89 /* PhotoCollectionViewReusableView.swift in Sources */,
-				294CA314225C4E3300036C7B /* MCareUtil.swift in Sources */,
 				29BD47D42201690200D7716E /* ExtensionCustomStringConvertible.swift in Sources */,
 				29BD47A42201690100D7716E /* ExtensionNotification.swift in Sources */,
 				29EDBFFD22015BD900E8D2F5 /* PictureViewController.swift in Sources */,
+				29CF79D9226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */,
 				125B308B1EF0C40000A1808D /* UIColor+Expanded.m in Sources */,
 				2960346A2213F2EE008AB32E /* Constants.swift in Sources */,
 				12418E811E54118E00F73F12 /* MCPlus.xcdatamodeld in Sources */,
@@ -1373,22 +1444,31 @@
 				29BD47C02201690100D7716E /* ExtensionUINavigationController.swift in Sources */,
 				29BD47BD2201690100D7716E /* ExtensionAVPlayer.swift in Sources */,
 				2910EE01221693E300302D0B /* ExtraWebViewController.swift in Sources */,
+				29CF79C72264261000C0ACE9 /* McareCrackCheck2.swift in Sources */,
 				29BD47BA2201690100D7716E /* ExtensionOptional.swift in Sources */,
 				2910EDF922167DFC00302D0B /* BarcodeViewController.swift in Sources */,
 				294B2B4A220BDCCD00EABB89 /* FMResultSet.m in Sources */,
 				29BD47C32201690100D7716E /* ExtensionDispatchQueue.swift in Sources */,
+				29CF79C12264261000C0ACE9 /* McareCrackCheck3.swift in Sources */,
+				29CF79DE226427F400C0ACE9 /* TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift in Sources */,
+				29CF79D62264261000C0ACE9 /* MCareMessageRequest2.swift in Sources */,
 				29BD47D22201690200D7716E /* ExtensionUIViewController.swift in Sources */,
 				294B2B59220BE2BB00EABB89 /* SqlClient.swift in Sources */,
 				2965069A2214EAC200FF4000 /* PACS.swift in Sources */,
+				29CF79B522641D8700C0ACE9 /* MCareMessageRequest.swift in Sources */,
+				29CF79D02264261000C0ACE9 /* McareCrackCheck4.swift in Sources */,
+				29CF79D32264261000C0ACE9 /* MCareMessageRequest5.swift in Sources */,
 				293E54822202D68500BFDB82 /* CustomCameraViewController.swift in Sources */,
 				29BD47CC2201690200D7716E /* ExtensionUIScrollView.swift in Sources */,
 				29BD47AE2201690100D7716E /* ExtensionUiView.swift in Sources */,
 				290A0CF02216461100BEC6C0 /* ExtensionCollection.swift in Sources */,
 				296506A22215088E00FF4000 /* LockScreenDAO.swift in Sources */,
+				29CF79B12264186D00C0ACE9 /* Obfuscator.swift in Sources */,
 				294CA30D225C4D0500036C7B /* McareCrackCheck.swift in Sources */,
 				294B2B44220BDCCD00EABB89 /* FMDatabase.m in Sources */,
 				29BD47B72201690100D7716E /* ExtensionUIColor.swift in Sources */,
 				29BD47A82201690100D7716E /* ExtensionUIImageView.swift in Sources */,
+				29CF79CA2264261000C0ACE9 /* MCareMessageRequest4.swift in Sources */,
 				294B2B61220C10B800EABB89 /* PhotoCollectionViewCell.swift in Sources */,
 				29E13DE52202EA220064FECF /* PhotoViewController.swift in Sources */,
 				129D1CC421CB7AF800A9D764 /* ParseHelper.m in Sources */,
@@ -1399,6 +1479,7 @@
 				29BD47B42201690100D7716E /* ExtensionString.swift in Sources */,
 				29AB5ECE2238B15E00F8B219 /* MCarePlusConstants-inHouse.swift in Sources */,
 				294CA311225C4D4200036C7B /* CommonConstants.swift in Sources */,
+				29CF79C42264261000C0ACE9 /* MCareMessageRequest3.swift in Sources */,
 				2994612C220C17FB00CF3B54 /* PhotoDetailViewController.swift in Sources */,
 				129D1CCA21CB7AF800A9D764 /* CallbackUtil.m in Sources */,
 				296034712213FAE7008AB32E /* MCarePlusConstantsProtocol.swift in Sources */,
@@ -1413,14 +1494,15 @@
 				294D03A5223F383C00947992 /* ExtensionUIApplication.swift in Sources */,
 				2960345F2213A719008AB32E /* AppDelegate.swift in Sources */,
 				296506AA2215431D00FF4000 /* LockOptionViewViewController.swift in Sources */,
+				29CF79CD2264261000C0ACE9 /* McareCrackCheck5.swift in Sources */,
 				2910EDFD2216908100302D0B /* Test2ViewController.swift in Sources */,
 				296034632213D735008AB32E /* ExtensionAppDelegate.swift in Sources */,
 				294B2B47220BDCCD00EABB89 /* FMDatabasePool.m in Sources */,
 				294B2B5D220C0DF400EABB89 /* PhotoCollectionViewReusableView.swift in Sources */,
-				294CA315225C4E3300036C7B /* MCareUtil.swift in Sources */,
 				29BD47D52201690200D7716E /* ExtensionCustomStringConvertible.swift in Sources */,
 				29BD47A52201690100D7716E /* ExtensionNotification.swift in Sources */,
 				29EDBFFE22015BD900E8D2F5 /* PictureViewController.swift in Sources */,
+				29CF79DA226426C400C0ACE9 /* MCareMessageRequestProtocol.swift in Sources */,
 				129D1CCC21CB7AF800A9D764 /* UIColor+Expanded.m in Sources */,
 				2960346B2213F2EE008AB32E /* Constants.swift in Sources */,
 				129D1CCF21CB7AF800A9D764 /* MCPlus.xcdatamodeld in Sources */,

+ 29 - 18
MCPlus/AppDelegate.swift

@@ -13,11 +13,11 @@ import CoreNFC
 import ReplayKit
 import Fabric
 import Crashlytics
-import MCareFramework
 
 @UIApplicationMain
 class AppDelegate: UIResponder, UIApplicationDelegate {
     var window: UIWindow?
+    fileprivate var obf:Obfuscator = Obfuscator(withSalt: ["mcareplus" as AnyObject])
     
     @available(iOS 10, *)
     var persistentContainer:NSPersistentContainer{
@@ -101,14 +101,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     
     func applicationDidBecomeActive(_ application: UIApplication) {
         
-        //화면캡처 가능여부
-//        if RPScreenRecorder.shared().isAvailable{
-//            //스크린샷 방지 프로파일 설치 유도
-//            self.visibleViewController?.showAlert("스크린샷 잠금 프로파일이 설치되어 있지 않습니다.", "", "확인", nil, { (action) in
-//                exit(0)
-//            })
-//        }
-        
         self.versionCheck()
         
         //화면잠금 모드로 고고씽
@@ -225,17 +217,36 @@ extension AppDelegate{
 
     //MARK: = RootingCheck
     func checkiOSRooting() {
+        var rootingCheck:MCareMessageRequestProtocol!
+        var crackCehck:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol!
         
-        let rootingCheck:MCareRootingCheck = MCareRootingCheck.init()
-        let crackCehck:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA.init()
+        let number = Int.random(in: 1...5)
+        switch number {
+        case 1:
+            rootingCheck = MCareMessageRequest5()
+            crackCehck = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA1()
+        case 2:
+            rootingCheck = MCareMessageRequest4()
+            crackCehck = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA2()
+        case 3:
+            rootingCheck = MCareMessageRequest3()
+            crackCehck = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA3()
+        case 4:
+            rootingCheck = MCareMessageRequest2()
+            crackCehck = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA4()
+        case 5:
+            rootingCheck = MCareMessageRequest1()
+            crackCehck = TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA5()
+        default:
+            break
+        }
         
         //폰이 루팅 되어 있는지 체크한다.
-        if rootingCheck.isIOSRooting() {
-            let rootingMsg:String = NSLocalizedString("RootingWarnningMessage", comment: "루팅폰은 지원하지 않습니다.")
+        if rootingCheck.isMsgRequest() {
+            let rootingMsg:String = NSLocalizedString("RootingWarnningMessage", comment: obf.reveal(key:[176, 206, 203, 140, 254, 224, 157, 227, 197, 159, 192, 219, 77, 143, 198, 242, 137, 235, 252, 152, 230, 197, 183, 202, 227, 65, 158, 240, 250, 128, 255, 198, 182, 208, 229, 136, 234, 214, 75]))
             let rootingTitle:String = NSLocalizedString("AlertTitleWarnning", comment: "경고")
             
-            MCareUtil.shared.showCustomAlert(title: rootingTitle, message: rootingMsg, firstBtnTitle: NSLocalizedString("AlertClose", comment: "닫기"), secondBtnTitle: nil, titleIcon: MCarePlusConstants.MCARE_ALERT_TITLE_ICON, firstBtnAction: nil, secondBtnAction: nil)
-            
+            self.visibleViewController?.showAlert(rootingTitle, rootingMsg, "닫기")
             
             DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
                 exit(0)
@@ -245,12 +256,12 @@ extension AppDelegate{
         let crackResult:String = crackCehck.RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc()
         
         //크랙 여부를 체크한다.
-        if !crackResult.isEqualToString(find: CommonConstants.CRACK_CODE_1001) {
-            var crackMsg:String = NSLocalizedString("CrackWarnningMessage", comment: "앱이 크랙되어 실행할수 없습니다.")
+        if !(crackResult == CommonConstants.CRACK_CODE_1001) {
+            var crackMsg:String = NSLocalizedString("CrackWarnningMessage", comment: obf.reveal(key:[183, 248, 210, 141, 239, 209, 80, 129, 244, 223, 182, 197, 244, 136, 241, 234, 137, 230, 216, 85, 159, 214, 255, 128, 245, 232, 159, 240, 208, 128, 253, 235, 125, 183, 250, 229, 141, 248, 208, 155, 231, 253, 152, 214, 255, 67]))
             crackMsg = crackMsg.appending("\n").appending(crackResult)
             let crackTitle:String = NSLocalizedString("AlertTitleWarnning", comment: "경고")
             
-            MCareUtil.shared.showCustomAlert(title: crackTitle, message: crackMsg, firstBtnTitle: NSLocalizedString("AlertClose", comment: "닫기"), secondBtnTitle: nil, titleIcon: MCarePlusConstants.MCARE_ALERT_TITLE_ICON, firstBtnAction: nil, secondBtnAction: nil)
+            self.visibleViewController?.showAlert(crackTitle, crackMsg, "닫기")
             
             DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
                 exit(0)

+ 0 - 102
MCPlus/MCareUtil.swift

@@ -1,102 +0,0 @@
-//
-//  MCareUtil.swift
-//  mcare-demo-InHouse
-//
-//  Created by SungWon Lee on 27/10/2018.
-//  Copyright © 2018 LemonHealthcare. All rights reserved.
-//
-
-import Foundation
-import MCareFramework
-
-class MCareUtil {
-    static let shared = MCareUtil()
-    
-    private init() {}
-    
-    // 커스텀 알림창을 띄워준다.(중복해서 띄워주기 싫은 알림창은 Tag를 지정)
-    func showCustomAlert(viewTag: Int = 0, title: String?, message: String, firstBtnTitle: String, secondBtnTitle: String?, titleIcon: String?, firstBtnAction: (() -> Void)?, secondBtnAction: (() -> Void)?) {
-        DispatchQueue.main.async {
-            // viewTag가 0이 아니고 뷰가 떠있으면 다시 띄워주지 않음
-            if viewTag != 0 && self.isViewWithTag(tag: viewTag) {
-                return
-            }
-            
-            var alertTitle: String? = title
-            if alertTitle == nil {
-                alertTitle = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
-            }
-            let alertView: MCareCustomAlerview = MCareCustomAlerview(viewTag: viewTag, title: alertTitle, message: message, firstBtnTitle: firstBtnTitle, secondBtnTitle: secondBtnTitle, titleIcon: titleIcon, firstBtnAction: { () -> Void in
-                // firstbutton click handler
-                if let _firstButtonAction = firstBtnAction {
-                    _firstButtonAction()
-                }
-                
-            }, secondBtnAction: { () -> Void in
-                // handler
-                if let _secondButtonAction = secondBtnAction {
-                    _secondButtonAction()
-                }
-            })
-            alertView.show()
-        }
-    }
-    
-    // 뷰 태크로 해당 뷰가 뷰 히어라키에 존재하는지 찾는다.
-    func isViewWithTag(tag: Int) -> Bool {
-    
-        guard let topView = UIApplication.shared.keyWindow?.subviews[0] else {
-            return false
-        }
-        
-        var result: Bool = false
-        for item in topView.subviews {
-            if item.tag == tag {
-                result = true
-                break
-            }
-        }
-        
-        return result
-    }
-    
-    //MARK: =최상위 ViewController 반환
-    func topViewController() -> UIViewController? {
-        
-        let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
-        
-        guard var vc = appDelegate.window?.rootViewController else { return nil }
-        
-        while let presentedViewController = vc.presentedViewController {
-            vc = presentedViewController
-        }
-        
-        return vc
-    }
-    
-    //MARK: =앱을 종료 처리
-    func exitApplication(alertMessage: String?) {
-        var alertMsg:String
-        if let _alertMessage = alertMessage {
-            alertMsg = _alertMessage + "\n" + NSLocalizedString("MCareExitMSG", comment: "앱이 종료됩니다.")
-        }
-        else {
-            alertMsg = NSLocalizedString("MCareExitMSG", comment: "앱이 종료됩니다.")
-        }
-        
-        let alertBtnTitle = NSLocalizedString("AlertOK", comment: "확인")
-        
-        showCustomAlert(title: nil, message: alertMsg, firstBtnTitle: alertBtnTitle, secondBtnTitle: nil, titleIcon: MCarePlusConstants.MCARE_ALERT_TITLE_ICON, firstBtnAction: { () -> Void in
-            DispatchQueue.main.async {
-                exit(0)
-            }
-        }, secondBtnAction: nil)
-    }
-    
-}
-
-extension Optional where Wrapped == String {
-    var isNilOrEmpty: Bool {
-        return self?.trimmingCharacters(in: .whitespaces).isEmpty ?? true
-    }
-}

+ 0 - 175
MCPlus/McareCrackCheck.swift

@@ -1,175 +0,0 @@
-//
-//  McareCrackCheck.swift
-//  MCareSwift
-//
-//  Created by heesungkim on 2017. 2. 14..
-//  Copyright © 2017년 idatabank. All rights reserved.
-//
-
-import Foundation
-import MCareFramework
-
-class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA {
-    
-    private let bundlePath:String = Bundle.main.bundlePath
-    private var mcareLog:MCareLogger?
-    
-    public init(){
-        mcareLog = MCareLogger.sharedInstance()
-    }
-    
-    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
-        
-        var isCrack = false
-        var result:String = ""
-        
-        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
-            isCrack = true
-            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1002)
-        }
-        
-        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
-            isCrack = true
-            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1003)
-        }
-        
-        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
-            isCrack = true
-            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1004)
-        }
-        
-        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
-            isCrack = true
-            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1005)
-        }
-        
-        //        if self.checkInfoFileDate() {
-        //            isCrack = true
-        //            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1006)
-        //        }
-        //
-        //        if self.checkAppNameDate() {
-        //            isCrack = true
-        //            result = result.appending(", ").appending(McareConstants.CRACK_CODE_1007)
-        //        }
-        
-        if isCrack {
-            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
-        }
-        else {
-            result = result.appending(McareConstants.CRACK_CODE_1001)
-        }
-        
-        return result
-    }
-    
-    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
-        let path:String = self.bundlePath.appending("/Info.plist")
-        
-        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
-        let fileManager:FileManager = FileManager.default
-        var fileAttr:NSDictionary!
-        
-        do {
-            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
-        } catch {
-            mcareLog?.error(output:"")
-        }
-        
-        if fileAttr != nil {
-            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
-            let cSID:String = cSIDArr.joined()
-            
-            if fileInfo.value(forKey: cSID) != nil {
-                return true
-            }
-        }
-        
-        return false
-    }
-    
-    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
-        
-        let root:Int = Int(getpid())
-        
-        if root <= 10 {
-            return true
-        }
-        
-        return false
-    }
-    
-    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
-        
-        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
-        
-        if !fileExists {
-            return true
-        }
-        
-        return false
-    }
-    
-    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
-        
-        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
-        
-        if !fileExists {
-            return true
-        }
-        
-        return false
-    }
-    
-    //    func checkInfoFileDate() -> Bool {
-    //
-    //        let infoPath:String = self.bundlePath.appending("/Info.plist")
-    //        var infoModifiedDate:Date? = nil
-    //        var pkgModifiedDate:Date? = nil
-    //        do {
-    //            infoModifiedDate = try FileManager.default.attributesOfItem(atPath: infoPath)[FileAttributeKey.modificationDate] as? Date
-    //        } catch {
-    //            mcareLog?.error(output: "infoModifiedDate Error")
-    //        }
-    //
-    //        do {
-    //            pkgModifiedDate = try FileManager.default.attributesOfItem(atPath: (Bundle.main.resourcePath?.appending("/PkgInfo"))!)[FileAttributeKey.modificationDate] as? Date
-    //        } catch {
-    //            mcareLog?.error(output: "pkgModifiedDate Error")
-    //        }
-    //
-    //        if fabs(infoModifiedDate!.timeIntervalSinceReferenceDate - pkgModifiedDate!.timeIntervalSinceReferenceDate) > 600 {
-    //            return true
-    //        }
-    //
-    //        return true
-    //    }
-    //
-    //    func checkAppNameDate() -> Bool {
-    //        let infoPath:String = self.bundlePath.appending("/mcare-pnuh")
-    //        mcareLog?.error(output: infoPath)
-    //        var infoModifiedDate:Date? = nil
-    //        var pkgModifiedDate:Date? = nil
-    //
-    //        do {
-    //            infoModifiedDate = try FileManager.default.attributesOfItem(atPath: infoPath)[FileAttributeKey.modificationDate] as? Date
-    //        } catch {
-    //            mcareLog?.error(output: "infoModifiedDate Error")
-    //            return false
-    //        }
-    //
-    //        do {
-    //            pkgModifiedDate = try FileManager.default.attributesOfItem(atPath: (Bundle.main.resourcePath?.appending("/PkgInfo"))!)[FileAttributeKey.modificationDate] as? Date
-    //        } catch {
-    //             mcareLog?.error(output: "pkgModifiedDate Error")
-    //            return false
-    //        }
-    //
-    //        if fabs(infoModifiedDate!.timeIntervalSinceReferenceDate - pkgModifiedDate!.timeIntervalSinceReferenceDate) > 600 {
-    //            return true
-    //        }
-    //
-    //        return true
-    //    }
-    
-}

+ 94 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequest.swift

@@ -0,0 +1,94 @@
+//
+//  MCareMessageRequest.swift
+//  MCareFramework
+//
+//  Created by kangsh on 2018. 12. 04..
+//  Copyright © 2018년 idatabank. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+public class MCareMessageRequest1: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
+    }
+}

+ 94 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequest2.swift

@@ -0,0 +1,94 @@
+//
+//  MCareMessageRequest.swift
+//  MCareFramework
+//
+//  Created by kangsh on 2018. 12. 04..
+//  Copyright © 2018년 idatabank. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+public class MCareMessageRequest2: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
+    }
+}

+ 94 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequest3.swift

@@ -0,0 +1,94 @@
+//
+//  MCareMessageRequest.swift
+//  MCareFramework
+//
+//  Created by kangsh on 2018. 12. 04..
+//  Copyright © 2018년 idatabank. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+public class MCareMessageRequest3: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
+    }
+}

+ 94 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequest4.swift

@@ -0,0 +1,94 @@
+//
+//  MCareMessageRequest.swift
+//  MCareFramework
+//
+//  Created by kangsh on 2018. 12. 04..
+//  Copyright © 2018년 idatabank. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+public class MCareMessageRequest4: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
+    }
+}

+ 94 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequest5.swift

@@ -0,0 +1,94 @@
+//
+//  MCareMessageRequest.swift
+//  MCareFramework
+//
+//  Created by kangsh on 2018. 12. 04..
+//  Copyright © 2018년 idatabank. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+public class MCareMessageRequest5: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
+    }
+}

+ 13 - 0
MCPlus/Utils/RootingCheck/MCareMessageRequestProtocol.swift

@@ -0,0 +1,13 @@
+//
+//  MCareMessageRequestProtocol.swift
+//  MCPlus
+//
+//  Created by seo ha on 15/04/2019.
+//  Copyright © 2019 KangSH. All rights reserved.
+//
+
+import Foundation
+
+protocol MCareMessageRequestProtocol {
+    func isMsgRequest() -> Bool
+}

+ 112 - 0
MCPlus/Utils/RootingCheck/McareCrackCheck.swift

@@ -0,0 +1,112 @@
+//
+//  McareCrackCheck.swift
+//  MCareSwift
+//
+//  Created by heesungkim on 2017. 2. 14..
+//  Copyright © 2017년 idatabank. All rights reserved.
+//
+
+import Foundation
+
+class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA1:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    
+    private let bundlePath:String = Bundle.main.bundlePath
+    
+    public init(){
+        
+    }
+    
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
+        
+        var isCrack = false
+        var result:String = ""
+        
+        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1002)
+        }
+        
+        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1003)
+        }
+        
+        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1004)
+        }
+        
+        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1005)
+        }
+        
+        if isCrack {
+            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
+        }
+        else {
+            result = result.appending(CommonConstants.CRACK_CODE_1001)
+        }
+        
+        return result
+    }
+    
+    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
+        let path:String = self.bundlePath.appending("/Info.plist")
+        
+        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
+        let fileManager:FileManager = FileManager.default
+        var fileAttr:NSDictionary!
+        
+        do {
+            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
+        } catch {
+            
+        }
+        
+        if fileAttr != nil {
+            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
+            let cSID:String = cSIDArr.joined()
+            
+            if fileInfo.value(forKey: cSID) != nil {
+                return true
+            }
+        }
+        
+        return false
+    }
+    
+    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
+        
+        let root:Int = Int(getpid())
+        
+        if root <= 10 {
+            return true
+        }
+        
+        return false
+    }
+    
+    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+}

+ 112 - 0
MCPlus/Utils/RootingCheck/McareCrackCheck2.swift

@@ -0,0 +1,112 @@
+//
+//  McareCrackCheck.swift
+//  MCareSwift
+//
+//  Created by heesungkim on 2017. 2. 14..
+//  Copyright © 2017년 idatabank. All rights reserved.
+//
+
+import Foundation
+
+class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA2:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    
+    private let bundlePath:String = Bundle.main.bundlePath
+    
+    public init(){
+        
+    }
+    
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
+        
+        var isCrack = false
+        var result:String = ""
+        
+        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1002)
+        }
+        
+        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1003)
+        }
+        
+        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1004)
+        }
+        
+        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1005)
+        }
+        
+        if isCrack {
+            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
+        }
+        else {
+            result = result.appending(CommonConstants.CRACK_CODE_1001)
+        }
+        
+        return result
+    }
+    
+    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
+        let path:String = self.bundlePath.appending("/Info.plist")
+        
+        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
+        let fileManager:FileManager = FileManager.default
+        var fileAttr:NSDictionary!
+        
+        do {
+            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
+        } catch {
+            
+        }
+        
+        if fileAttr != nil {
+            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
+            let cSID:String = cSIDArr.joined()
+            
+            if fileInfo.value(forKey: cSID) != nil {
+                return true
+            }
+        }
+        
+        return false
+    }
+    
+    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
+        
+        let root:Int = Int(getpid())
+        
+        if root <= 10 {
+            return true
+        }
+        
+        return false
+    }
+    
+    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+}

+ 112 - 0
MCPlus/Utils/RootingCheck/McareCrackCheck3.swift

@@ -0,0 +1,112 @@
+//
+//  McareCrackCheck.swift
+//  MCareSwift
+//
+//  Created by heesungkim on 2017. 2. 14..
+//  Copyright © 2017년 idatabank. All rights reserved.
+//
+
+import Foundation
+
+class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA3:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    
+    private let bundlePath:String = Bundle.main.bundlePath
+    
+    public init(){
+        
+    }
+    
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
+        
+        var isCrack = false
+        var result:String = ""
+        
+        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1002)
+        }
+        
+        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1003)
+        }
+        
+        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1004)
+        }
+        
+        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1005)
+        }
+        
+        if isCrack {
+            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
+        }
+        else {
+            result = result.appending(CommonConstants.CRACK_CODE_1001)
+        }
+        
+        return result
+    }
+    
+    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
+        let path:String = self.bundlePath.appending("/Info.plist")
+        
+        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
+        let fileManager:FileManager = FileManager.default
+        var fileAttr:NSDictionary!
+        
+        do {
+            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
+        } catch {
+            
+        }
+        
+        if fileAttr != nil {
+            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
+            let cSID:String = cSIDArr.joined()
+            
+            if fileInfo.value(forKey: cSID) != nil {
+                return true
+            }
+        }
+        
+        return false
+    }
+    
+    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
+        
+        let root:Int = Int(getpid())
+        
+        if root <= 10 {
+            return true
+        }
+        
+        return false
+    }
+    
+    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+}

+ 112 - 0
MCPlus/Utils/RootingCheck/McareCrackCheck4.swift

@@ -0,0 +1,112 @@
+//
+//  McareCrackCheck.swift
+//  MCareSwift
+//
+//  Created by heesungkim on 2017. 2. 14..
+//  Copyright © 2017년 idatabank. All rights reserved.
+//
+
+import Foundation
+
+class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA4:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    
+    private let bundlePath:String = Bundle.main.bundlePath
+    
+    public init(){
+        
+    }
+    
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
+        
+        var isCrack = false
+        var result:String = ""
+        
+        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1002)
+        }
+        
+        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1003)
+        }
+        
+        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1004)
+        }
+        
+        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1005)
+        }
+        
+        if isCrack {
+            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
+        }
+        else {
+            result = result.appending(CommonConstants.CRACK_CODE_1001)
+        }
+        
+        return result
+    }
+    
+    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
+        let path:String = self.bundlePath.appending("/Info.plist")
+        
+        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
+        let fileManager:FileManager = FileManager.default
+        var fileAttr:NSDictionary!
+        
+        do {
+            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
+        } catch {
+            
+        }
+        
+        if fileAttr != nil {
+            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
+            let cSID:String = cSIDArr.joined()
+            
+            if fileInfo.value(forKey: cSID) != nil {
+                return true
+            }
+        }
+        
+        return false
+    }
+    
+    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
+        
+        let root:Int = Int(getpid())
+        
+        if root <= 10 {
+            return true
+        }
+        
+        return false
+    }
+    
+    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+}

+ 112 - 0
MCPlus/Utils/RootingCheck/McareCrackCheck5.swift

@@ -0,0 +1,112 @@
+//
+//  McareCrackCheck.swift
+//  MCareSwift
+//
+//  Created by heesungkim on 2017. 2. 14..
+//  Copyright © 2017년 idatabank. All rights reserved.
+//
+
+import Foundation
+
+class TGfgWLPFSsedkMjVFwzECGIJlWLmXNHA5:TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    
+    private let bundlePath:String = Bundle.main.bundlePath
+    
+    public init(){
+        
+    }
+    
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String {
+        
+        var isCrack = false
+        var result:String = ""
+        
+        if self.xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1002)
+        }
+        
+        if self.emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1003)
+        }
+        
+        if self.oeylBwEWeIBxFIgKTodTecITfvuGKssm() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1004)
+        }
+        
+        if self.EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() {
+            isCrack = true
+            result = result.appending(", ").appending(CommonConstants.CRACK_CODE_1005)
+        }
+        
+        if isCrack {
+            result = result.substring(from: result.index(result.startIndex, offsetBy: 2))
+        }
+        else {
+            result = result.appending(CommonConstants.CRACK_CODE_1001)
+        }
+        
+        return result
+    }
+    
+    func xFpMfiaKAJMDOeAxjLRgTogsUThgmSuV() -> Bool {
+        let path:String = self.bundlePath.appending("/Info.plist")
+        
+        let fileInfo:NSDictionary = Bundle.main.infoDictionary! as NSDictionary
+        let fileManager:FileManager = FileManager.default
+        var fileAttr:NSDictionary!
+        
+        do {
+            fileAttr = try fileManager.attributesOfItem(atPath: path) as NSDictionary
+        } catch {
+            
+        }
+        
+        if fileAttr != nil {
+            let cSIDArr = ["Si", "gne", "rIde", "ntity"]
+            let cSID:String = cSIDArr.joined()
+            
+            if fileInfo.value(forKey: cSID) != nil {
+                return true
+            }
+        }
+        
+        return false
+    }
+    
+    func emnbnWQtsROzpyBctpbxmXnFWVnYxWjK() -> Bool {
+        
+        let root:Int = Int(getpid())
+        
+        if root <= 10 {
+            return true
+        }
+        
+        return false
+    }
+    
+    func oeylBwEWeIBxFIgKTodTecITfvuGKssm() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+    func EzfgObvemSSLKMuULiAFTLaLdNXhXTGf() -> Bool {
+        
+        let fileExists:Bool = FileManager.default.fileExists(atPath: bundlePath.appending("/_CodeSignature/CodeResources"))
+        
+        if !fileExists {
+            return true
+        }
+        
+        return false
+    }
+    
+}

+ 76 - 0
MCPlus/Utils/RootingCheck/Obfuscator.swift

@@ -0,0 +1,76 @@
+//
+//  Obfuscator.swift
+//
+//  Created by Dejan Atanasov on 2017-05-31.
+//
+
+import Foundation
+
+class Obfuscator: NSObject{
+    
+    // MARK: - Variables
+    
+    /// The salt used to obfuscate and reveal the string.
+    private var salt: String = ""
+    
+    
+    // MARK: - Initialization
+    
+    init(withSalt salt: [AnyObject]) {
+        self.salt = salt.description
+    }
+    
+    
+    // MARK: - Instance Methods
+    
+    /**
+     This method obfuscates the string passed in using the salt
+     that was used when the Obfuscator was initialized.
+     
+     - parameter string: the string to obfuscate
+     
+     - returns: the obfuscated string in a byte array
+     */
+    func bytesByObfuscatingString(string: String) -> [UInt8] {
+        let text = [UInt8](string.utf8)
+        let cipher = [UInt8](self.salt.utf8)
+        let length = cipher.count
+        
+        var encrypted = [UInt8]()
+        
+        for t in text.enumerated() {
+            encrypted.append(t.element ^ cipher[t.offset % length])
+        }
+        
+        #if DEVELOPMENT
+        print("Salt used: \(self.salt)\n")
+        print("Swift Code:\n************")
+        print("// Original \"\(string)\"")
+        print("let key: [UInt8] = \(encrypted)\n")
+        #endif
+    
+        return encrypted
+    }
+    
+    /**
+     This method reveals the original string from the obfuscated
+     byte array passed in. The salt must be the same as the one
+     used to encrypt it in the first place.
+     
+     - parameter key: the byte array to reveal
+     
+     - returns: the original string
+     */
+    func reveal(key: [UInt8]) -> String {
+        let cipher = [UInt8](self.salt.utf8)
+        let length = cipher.count
+        
+        var decrypted = [UInt8]()
+        
+        for k in key.enumerated() {
+            decrypted.append(k.element ^ cipher[k.offset % length])
+        }
+        
+        return String(bytes: decrypted, encoding: .utf8)!
+    }
+}

+ 13 - 0
MCPlus/Utils/RootingCheck/TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift

@@ -0,0 +1,13 @@
+//
+//  TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol.swift
+//  MCPlus
+//
+//  Created by seo ha on 15/04/2019.
+//  Copyright © 2019 KangSH. All rights reserved.
+//
+
+import Foundation
+
+protocol TGfgWLPFSsedkMjVFwzECGIJlWLmXNHAProtocol {
+    func RrSysWIEJNXJSjLdLYdkUhuSZCTsCzYc() -> String
+}

+ 1 - 1
MCPlus/ViewControllers/WebViewController.swift

@@ -489,7 +489,7 @@ extension WebViewController{
         guard let url = URL(string: strUrl) else {
             return
         }
-        self.webView.load(url)
+        self.webView.load(URLRequest(url: url))
     }
 }
 

+ 0 - 289
MCareFramework.framework/Headers/MCareFramework-Swift.h

@@ -1,289 +0,0 @@
-// Generated by Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wgcc-compat"
-
-#if !defined(__has_include)
-# define __has_include(x) 0
-#endif
-#if !defined(__has_attribute)
-# define __has_attribute(x) 0
-#endif
-#if !defined(__has_feature)
-# define __has_feature(x) 0
-#endif
-#if !defined(__has_warning)
-# define __has_warning(x) 0
-#endif
-
-#if __has_include(<swift/objc-prologue.h>)
-# include <swift/objc-prologue.h>
-#endif
-
-#pragma clang diagnostic ignored "-Wauto-import"
-#include <objc/NSObject.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-
-#if !defined(SWIFT_TYPEDEFS)
-# define SWIFT_TYPEDEFS 1
-# if __has_include(<uchar.h>)
-#  include <uchar.h>
-# elif !defined(__cplusplus)
-typedef uint_least16_t char16_t;
-typedef uint_least32_t char32_t;
-# endif
-typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
-typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
-typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
-typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
-typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
-typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
-typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
-typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
-typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
-typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
-typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
-typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
-#endif
-
-#if !defined(SWIFT_PASTE)
-# define SWIFT_PASTE_HELPER(x, y) x##y
-# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
-#endif
-#if !defined(SWIFT_METATYPE)
-# define SWIFT_METATYPE(X) Class
-#endif
-#if !defined(SWIFT_CLASS_PROPERTY)
-# if __has_feature(objc_class_property)
-#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
-# else
-#  define SWIFT_CLASS_PROPERTY(...)
-# endif
-#endif
-
-#if __has_attribute(objc_runtime_name)
-# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
-#else
-# define SWIFT_RUNTIME_NAME(X)
-#endif
-#if __has_attribute(swift_name)
-# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
-#else
-# define SWIFT_COMPILE_NAME(X)
-#endif
-#if __has_attribute(objc_method_family)
-# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
-#else
-# define SWIFT_METHOD_FAMILY(X)
-#endif
-#if __has_attribute(noescape)
-# define SWIFT_NOESCAPE __attribute__((noescape))
-#else
-# define SWIFT_NOESCAPE
-#endif
-#if __has_attribute(warn_unused_result)
-# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
-#else
-# define SWIFT_WARN_UNUSED_RESULT
-#endif
-#if __has_attribute(noreturn)
-# define SWIFT_NORETURN __attribute__((noreturn))
-#else
-# define SWIFT_NORETURN
-#endif
-#if !defined(SWIFT_CLASS_EXTRA)
-# define SWIFT_CLASS_EXTRA
-#endif
-#if !defined(SWIFT_PROTOCOL_EXTRA)
-# define SWIFT_PROTOCOL_EXTRA
-#endif
-#if !defined(SWIFT_ENUM_EXTRA)
-# define SWIFT_ENUM_EXTRA
-#endif
-#if !defined(SWIFT_CLASS)
-# if __has_attribute(objc_subclassing_restricted)
-#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
-#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
-# else
-#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
-#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
-# endif
-#endif
-
-#if !defined(SWIFT_PROTOCOL)
-# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
-# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
-#endif
-
-#if !defined(SWIFT_EXTENSION)
-# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
-#endif
-
-#if !defined(OBJC_DESIGNATED_INITIALIZER)
-# if __has_attribute(objc_designated_initializer)
-#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
-# else
-#  define OBJC_DESIGNATED_INITIALIZER
-# endif
-#endif
-#if !defined(SWIFT_ENUM_ATTR)
-# if defined(__has_attribute) && __has_attribute(enum_extensibility)
-#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
-# else
-#  define SWIFT_ENUM_ATTR(_extensibility)
-# endif
-#endif
-#if !defined(SWIFT_ENUM)
-# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
-# if __has_feature(generalized_swift_name)
-#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
-# else
-#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
-# endif
-#endif
-#if !defined(SWIFT_UNAVAILABLE)
-# define SWIFT_UNAVAILABLE __attribute__((unavailable))
-#endif
-#if !defined(SWIFT_UNAVAILABLE_MSG)
-# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
-#endif
-#if !defined(SWIFT_AVAILABILITY)
-# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
-#endif
-#if !defined(SWIFT_DEPRECATED)
-# define SWIFT_DEPRECATED __attribute__((deprecated))
-#endif
-#if !defined(SWIFT_DEPRECATED_MSG)
-# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
-#endif
-#if __has_feature(attribute_diagnose_if_objc)
-# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
-#else
-# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
-#endif
-#if __has_feature(modules)
-@import CoreGraphics;
-@import ObjectiveC;
-@import UIKit;
-#endif
-
-#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
-#pragma clang diagnostic ignored "-Wduplicate-method-arg"
-#if __has_warning("-Wpragma-clang-attribute")
-# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
-#endif
-#pragma clang diagnostic ignored "-Wunknown-pragmas"
-#pragma clang diagnostic ignored "-Wnullability"
-
-#if __has_attribute(external_source_symbol)
-# pragma push_macro("any")
-# undef any
-# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="MCareFramework",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
-# pragma pop_macro("any")
-#endif
-
-@class NSCoder;
-
-SWIFT_CLASS("_TtC14MCareFramework19MCareCustomAlerview")
-@interface MCareCustomAlerview : UIView
-- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
-- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
-@end
-
-
-SWIFT_CLASS("_TtC14MCareFramework16MessageProcessor")
-@interface MessageProcessor : NSObject
-- (nonnull instancetype)init SWIFT_UNAVAILABLE;
-+ (nonnull instancetype)new SWIFT_DEPRECATED_MSG("-init is unavailable");
-@end
-
-
-
-
-SWIFT_PROTOCOL("_TtP14MCareFramework17mcareHttpDelegate_")
-@protocol mcareHttpDelegate
-- (void)httpResponseWithReqType:(NSString * _Nullable)reqType response:(id _Nullable)response;
-@end
-
-@class NSArray;
-
-SWIFT_PROTOCOL("_TtP14MCareFramework15messageDelegate_")
-@protocol messageDelegate
-@optional
-- (void)sendDeviceTokenWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)showBrowsingUrlWithStrUrl:(NSString * _Nonnull)strUrl;
-- (void)showPopupUrlWithStrUrl:(NSString * _Nonnull)strUrl strMethod:(NSString * _Nullable)strMethod strParameters:(NSString * _Nullable)strParameters;
-- (void)showPopupBrowsingUrlWithStrUrl:(NSString * _Nonnull)strUrl strMethod:(NSString * _Nonnull)strMethod strParameters:(NSString * _Nonnull)strParameters;
-- (void)closePopupWithCallbackFn:(NSString * _Nonnull)callbackFn params:(NSDictionary<NSString *, id> * _Nonnull)params;
-- (void)executeScreenRotateWithOrientation:(NSString * _Nonnull)orientation;
-- (void)showSystemBrowsingWithUrlWithStrUrl:(NSString * _Nonnull)strUrl;
-- (void)showOpenMapWithMapInfoDic:(NSDictionary<NSString *, id> * _Nonnull)mapInfoDic;
-- (void)sendIsInHospitalWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendCurrentAreaWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendRecentMessageWithCallBackFn:(NSString * _Nonnull)callBackFn pId:(NSString * _Nonnull)pId;
-- (void)addReservationDatetimeWithDateTime:(NSString * _Nonnull)dateTime deptName:(NSString * _Nonnull)deptName doctorName:(NSString * _Nonnull)doctorName hospitalName:(NSString * _Nonnull)hospitalName;
-- (void)addIcalWithTitle:(NSString * _Nonnull)title note:(NSString * _Nonnull)note dtStart:(NSString * _Nonnull)dtStart dtEnd:(NSString * _Nonnull)dtEnd location:(NSString * _Nonnull)location;
-- (void)sendExecuteDBWithCallBackFn:(NSString * _Nonnull)callBackFn actionName:(NSString * _Nonnull)actionName actionValue:(NSDictionary<NSString *, id> * _Nonnull)actionValue;
-- (void)closePopupReturnUrlWithStrUrl:(NSString * _Nonnull)strUrl;
-- (void)sendMCareVersionInfoWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendMCareVersionInfo2WithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendRecentDomainWithCallBackFn:(NSString * _Nonnull)callBackFn domainName:(NSString * _Nonnull)domainName;
-- (void)managementPaymentWithPaymentType:(NSString * _Nonnull)paymentType actionName:(NSString * _Nonnull)actionName actionValue:(NSDictionary<NSString *, id> * _Nonnull)actionValue;
-- (void)sendRequestPaymentWithCallBackFn:(NSString * _Nonnull)callBackFn paymentType:(NSString * _Nonnull)paymentType actionValue:(NSDictionary<NSString *, id> * _Nonnull)actionValue;
-- (void)requestSpeakOutWithSpeakMessage:(NSString * _Nonnull)speakMessage;
-- (void)exitMcare;
-- (void)textDataShareWithTextData:(NSString * _Nonnull)textData;
-- (void)requestAppCheckWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target;
-- (void)requestAppInstallWithTarget:(NSString * _Nonnull)target;
-- (void)sendAppActionWithCallBackFn:(NSString * _Nullable)callBackFn actionName:(NSString * _Nonnull)actionName actionValue:(NSDictionary<NSString *, id> * _Nonnull)actionValue;
-- (void)sendReauthWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target externalId:(NSString * _Nonnull)externalId;
-- (void)sendShadowWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target externalId:(NSString * _Nonnull)externalId;
-- (void)fidoLoginWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target;
-- (void)snsLoginWithCallBackFn:(NSString * _Nonnull)callBackFn snsType:(NSString * _Nonnull)snsType;
-- (void)kakaoSignup;
-- (void)snsLogoutWithCallBackFn:(NSString * _Nonnull)callBackFn snsType:(NSString * _Nonnull)snsType;
-- (void)snsDisconnectWithCallBackFn:(NSString * _Nonnull)callBackFn snsType:(NSString * _Nonnull)snsType;
-- (void)fidoAuthWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target externalId:(NSString * _Nonnull)externalId;
-- (void)sendAlarmScheduleWithCallBackFn:(NSString * _Nonnull)callBackFn pId:(NSString * _Nonnull)pId cipherKey:(NSString * _Nonnull)cipherKey;
-- (void)addAlarmScheduleWithCallBackFn:(NSString * _Nonnull)callBackFn startDate:(NSString * _Nonnull)startDate endDate:(NSString * _Nonnull)endDate count:(NSInteger)count actionValues:(NSArray * _Nonnull)actionValues pId:(NSString * _Nonnull)pId cipherKey:(NSString * _Nonnull)cipherKey;
-- (void)invalidFunctionWithFunctionType:(NSString * _Nonnull)functionType callBack:(NSString * _Nullable)callBack;
-- (void)logoutWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)parkingWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)requestOpenAppWithTarget:(NSString * _Nonnull)target callBackArgs:(NSDictionary<NSString *, id> * _Nonnull)callBackArgs;
-- (void)sendInfomationWithInfoDic:(NSDictionary<NSString *, id> * _Nonnull)infoDic;
-- (void)showHtmlPopupWithHtmlString:(NSString * _Nonnull)htmlString;
-- (void)sendWifiStateWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)prescriptionWithInfoDic:(NSDictionary<NSString *, id> * _Nonnull)infoDic;
-- (void)healthScreeningWithInfoDic:(NSDictionary<NSString *, id> * _Nonnull)infoDic;
-- (void)sendBrightnessWithBrightness:(NSString * _Nonnull)brightness restore:(BOOL)restore;
-- (void)openSettingsWithCallBackFn:(NSString * _Nullable)callBackFn;
-- (void)clovaSpeechSynthesisWithText:(NSString * _Nonnull)text speaker:(NSString * _Nonnull)speaker speed:(NSInteger)speed stop:(NSString * _Nonnull)stop;
-- (void)clovaSpeechRecognitionResultWithSuccess:(BOOL)success message:(NSString * _Nonnull)message;
-- (void)showChatbotButtonWithEnable:(BOOL)enable;
-- (void)sendNXNFidoWithCallBackFn:(NSString * _Nonnull)callBackFn target:(NSString * _Nonnull)target type:(NSString * _Nonnull)type fidoId:(NSString * _Nonnull)fidoId;
-- (void)sendAvailableBioTypesWithFidoId:(NSString * _Nonnull)fidoId callBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendAvailableBioCertWithType:(NSString * _Nonnull)type callBackFn:(NSString * _Nonnull)callBackFn;
-- (void)changeBioTypesWithFidoId:(NSString * _Nonnull)fidoId enable:(NSString * _Nonnull)enable disable:(NSString * _Nonnull)disable callBackFn:(NSString * _Nonnull)callBackFn;
-- (void)sendAuthenticatorsWithFidoId:(NSString * _Nonnull)fidoId callBackFn:(NSString * _Nonnull)callBackFn;
-- (void)checkFidoLoginWithCallBackFn:(NSString * _Nonnull)callBackFn;
-- (void)storeHospitalCdWithHospitalCd:(NSString * _Nonnull)hospitalCd;
-- (void)removeHospitalCd;
-@end
-
-@class NSDictionary;
-
-SWIFT_PROTOCOL("_TtP14MCareFramework15paymentDelegate_")
-@protocol paymentDelegate
-@optional
-- (void)managementPaymentCardWithPaymentType:(NSString * _Nonnull)paymentType actionName:(NSString * _Nonnull)actionName actionValue:(NSDictionary * _Nonnull)actionValue;
-- (void)requestPaymentCertWithCallBackFn:(NSString * _Nonnull)callBackFn paymentType:(NSString * _Nonnull)paymentType actionName:(NSString * _Nonnull)actionName actionValue:(NSDictionary * _Nonnull)actionValue;
-- (void)requestPaymentWithCallBackFn:(NSString * _Nonnull)callBackFn paymentType:(NSString * _Nonnull)paymentType actionValue:(NSDictionary * _Nonnull)actionValue;
-- (void)cancelPaymentWithPaymentType:(NSString * _Nonnull)paymentType actionValue:(NSDictionary * _Nonnull)actionValue;
-- (void)invalidPaymentActionWithPaymentType:(NSString * _Nullable)paymentType callBackFn:(NSString * _Nullable)callBackFn;
-@end
-
-#if __has_attribute(external_source_symbol)
-# pragma clang attribute pop
-#endif
-#pragma clang diagnostic pop

+ 0 - 19
MCareFramework.framework/Headers/MCareFramework.h

@@ -1,19 +0,0 @@
-//
-//  MCareFramework.h
-//  MCareFramework
-//
-//  Created by heesungkim on 2016. 11. 15..
-//  Copyright © 2016년 idatabank. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-//! Project version number for MCareFramework.
-FOUNDATION_EXPORT double MCareFrameworkVersionNumber;
-
-//! Project version string for MCareFramework.
-FOUNDATION_EXPORT const unsigned char MCareFrameworkVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import <MCareFramework/PublicHeader.h>
-
-

BIN
MCareFramework.framework/Info.plist


BIN
MCareFramework.framework/MCareFramework


BIN
MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm.swiftdoc


BIN
MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm.swiftmodule


BIN
MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm64.swiftdoc


BIN
MCareFramework.framework/Modules/MCareFramework.swiftmodule/arm64.swiftmodule


+ 0 - 11
MCareFramework.framework/Modules/module.modulemap

@@ -1,11 +0,0 @@
-framework module MCareFramework {
-  umbrella header "MCareFramework.h"
-
-  export *
-  module * { export * }
-}
-
-module MCareFramework.Swift {
-    header "MCareFramework-Swift.h"
-    requires objc
-}

+ 1 - 1
Podfile.lock

@@ -41,6 +41,6 @@ SPEC CHECKSUMS:
   RNCryptor: c93d19029dcf7ff160aca0f24d6c9e7b0d82f664
   ZBarSDK: 4c1b5daeb7d6cc67dc9355e690af0230a661f6ec
 
-PODFILE CHECKSUM: a8df8bc351551d3753a8f7aa5d35ec6ce4bbf24c
+PODFILE CHECKSUM: e932a3340baa611fbd9383ed461401c5871edecd
 
 COCOAPODS: 1.6.1