ãããŠå人çã«ã¯ããããã®ãã¯ããŒã³ããå åŽããèŠãã®ãé¢çœããªã£ãŠããŸããã ãªãããããã¹ãŠå¿ èŠãªã®ããç§ã¯ã©ã®ãããªçµè«ã«è³ã£ãã®ã-roem.ruã§ããã«ã€ããŠè©±ããŸããã ãç¹°ãè¿ãå¿ èŠã¯ãããŸããã Habréã§ã¯ãPrismaã®äŸã䜿çšããŠãiOSçšã¢ããªã±ãŒã·ã§ã³ã®è©³çŽ°ãªåæææ³ãå ±æããããšæããŸãã
ç§ãã¡ã¯äœãããªããã°ãªããŸãããïŒ ãŸããiOSçšã®ã¢ããªã±ãŒã·ã§ã³ãããããããäœã§æ§æãããããããã©ã®ãããªæ å ±ãæœåºã§ããããåŠã³ãŸãã 次ã«ãäœæè ãå®éã«ãããæãã§ããªãå Žåã§ããã¯ã©ã€ã¢ã³ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã£ãã¯ãã¹ãããã£ã³ã°ããæ¹æ³ã説æããŸãã å®éãæ°ããããšã¯ãäŒãããŸããããããŠããŠã¯æãã€ããŸããã§ãããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®æåãªãã¯ããã¯ãšã¹ãã«ã®åãªããã¯ã¿ãŒã§ãã ããããããã¯é¢çœãã§ãããã è¿œãããã
iOSã¢ããªã±ãŒã·ã§ã³ãIPAãã¡ã€ã«
iOSã¢ããªã±ãŒã·ã§ã³ã¯.ipaãã¡ã€ã«ã§ãã å®éãããã¯zipã¢ãŒã«ã€ãã§ãããã©ã®ã¢ãŒã«ã€ããŒã§ãéãããšãã§ããŸãïŒã¯ããããã§ããmobilzã¯ã¢ããªã±ãŒã·ã§ã³ã®ç Žå£æ¹æ³ãæããããšãçŽæããŸããããå®éã«ã¯ã¢ãŒã«ã€ããŒã®äœ¿çšæ¹æ³ã瀺ããŸãïŒã .ipaãã¡ã€ã«èªäœã¯ãiTunesã䜿çšããŠååŸããã®ãæãç°¡åã§ãããããã°ã©ã ãã»ã¯ã·ã§ã³ã«ã¯ãiPhoneã®AppStoreã«äŒŒããAppStoreãã¿ãããããŸãã ãããã£ãŠãã¢ã«ãŠã³ãïŒAppleIDïŒãå¿ èŠã§ãã iTunesã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒããããšããã®ãã£ã¬ã¯ããªã«ç§»åã§ããŸãã
ããã«ãç§ãèšã£ãããã«ã.ipaãã¡ã€ã«ã¯ã¢ãŒã«ã€ãã«ãã£ãŠéãããŸãã å éšã«ã¯ãç¹ã«Payloadãã£ã¬ã¯ããªãšiTunesMetadata.plistãã¡ã€ã«ããããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ããã€ããŒãããŸãã¯.appæ¡åŒµåã®ãã£ã¬ã¯ããªã«ãããMacOSã¯ãããèµ·åããããšããŸãããã³ã³ãã³ããéãã ãã§ååã§ãã iTunesMetadataã«ã¯ãAppStoreããã®ã¡ã¿æ å ±ãå«ãŸããŠããŸãã ã©ã®ã¢ã«ãŠã³ããã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããããã¢ããªã±ãŒã·ã§ã³ã®ã©ã®ã»ã¯ã·ã§ã³ã«ããããªã©ã ãªã©ãåæã«ã¯èå³æ·±ããã®ã¯äœããããŸãããçŽæ¥.appã«ç§»åããŸãã ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãPrisma 2.3-Payload / Prisma.appã§ããã«åæããŸãã
ç°ãªããããžã§ã¯ãã§ã¯ãç°ãªãæ§é ãèŠãããšãã§ããŸãããInfo.plistïŒPayload / Prisma.app / Info.plistïŒã¯åžžã«ååšããŸãã ãããã¯ãå®è¡ããæå°ããŒãžã§ã³ããµããŒããããåããiPadãµããŒããªã©ãã¢ããªã±ãŒã·ã§ã³ã®åºæ¬èšå®ã§ãã ããã§ã¯ãã£ãšé¢çœãã§ãã
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>UIRequiredDeviceCapabilities</key> <array> <string>armv7</string> </array> <key>DTCompiler</key> <string>com.apple.compilers.llvm.clang.1_0</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>DTPlatformVersion</key> <string>9.3</string> <key>DTSDKName</key> <string>iphoneos9.3</string> <key>CFBundleName</key> <string>prisma</string> <key>UIViewControllerBasedStatusBarAppearance</key> <true/> <key>CFBundleIcons</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon29x29</string> <string>AppIcon40x40</string> <string>AppIcon60x60</string> </array> </dict> </dict> <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>LSRequiresIPhoneOS</key> <true/> <key>CFBundleDisplayName</key> <string>Prisma</string> <key>LSApplicationQueriesSchemes</key> <array> <string>instagram</string> <string>fb</string> <string>fbauth2</string> <string>fbshareextension</string> <string>fbapi</string> <string>fb-profile-expression-platform</string> <string>vk</string> <string>vk-share</string> <string>vkauthorize</string> </array> <key>DTSDKBuild</key> <string>13E230</string> <key>CFBundleShortVersionString</key> <string>2.3</string> <key>CFBundleSupportedPlatforms</key> <array> <string>iPhoneOS</string> </array> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array> <key>Pushwoosh_APPID</key> <string>46F12-BE2E4</string> <key>BuildMachineOSBuild</key> <string>15G31</string> <key>DTPlatformBuild</key> <string>13E230</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>MinimumOSVersion</key> <string>8.0</string> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>DTXcodeBuild</key> <string>7D1014</string> <key>CFBundleVersion</key> <string>40</string> <key>UIStatusBarHidden</key> <true/> <key>FacebookAppID</key> <string>582433738573752</string> <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIDeviceFamily</key> <array> <integer>1</integer> </array> <key>Fabric</key> <dict> <key>Kits</key> <array> <dict> <key>KitName</key> <string>Crashlytics</string> <key>KitInfo</key> <dict/> </dict> </array> <key>APIKey</key> <string>8e17945e7d29d1c775f321348caef29075f5ab9a</string> </dict> <key>FacebookDisplayName</key> <string>Prisma.AI</string> <key>CFBundleIdentifier</key> <string>com.prisma-ai.app</string> <key>DTXcode</key> <string>0731</string> <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>vk.com</key> <dict> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> <key>cdninstagram.com</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict> <key>CFBundleExecutable</key> <string>prisma</string> <key>CFBundleSignature</key> <string>????</string> <key>DTPlatformName</key> <string>iphoneos</string> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb582433738573752</string> </array> </dict> <dict> <key>CFBundleURLSchemes</key> <array> <string>vk5530956</string> </array> </dict> <dict> <key>CFBundleURLSchemes</key> <array> <string>prisma</string> </array> </dict> </array> </dict> </plist>
ããŒã®è©³çŽ°ã«ã€ããŠã¯ã å ¬åŒããã¥ã¡ã³ããåç §ããŠãã ããããã ãããããã®äžéšã«ã®ã¿é¢å¿ããããŸãã
ãŸãããµãŒãããŒãã£è£œåïŒcrashlyticsãªã©ïŒã®APIããŒãvk / facebookã®ã°ã«ãŒã/ããŒãžèå¥åãååŸã§ããŸãã 第äºã«ãã¢ããªã±ãŒã·ã§ã³ãè¡ã詳现ãªURLèšå®ã確å®ã«ç¥ãããšãã§ããŸãïŒ
LSApplicationQueriesSchemes
<key>LSApplicationQueriesSchemes</key> <array> <string>instagram</string> <string>fb</string> <string>fbauth2</string> <string>fbshareextension</string> <string>fbapi</string> <string>fb-profile-expression-platform</string> <string>vk</string> <string>vk-share</string> <string>vkauthorize</string> </array>
ã¢ããªã±ãŒã·ã§ã³ã¯ãInstagramãFacebookãVKontakteã§åäœããããšãæãã§ããããšãããããŸãã ãã¡ããããã®æ å ±ã¯æ±ºããŠã¢ããªã±ãŒã·ã§ã³ããç Žå£ãããã®ã«åœ¹ç«ã¡ãŸããããè¿œå æ å ±ãæäŸããŸãã
NSAppTransportSecurity
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>vk.com</key> <dict> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> <key>cdninstagram.com</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict>
ééã£ãŠããªããã°ããã©ã°ã¯iOSã®9çªç®ã®ããŒãžã§ã³ããçŸããŸããã ã¢ããªã±ãŒã·ã§ã³ãhttpãããã³ã«ãçªç Žããå Žæã瀺ããŸãïŒhttpsã¯ã©ã®ãã¡ã€ã³ã§ãå©çšå¯èœã§ãïŒã ã€ãŸã NSAppTransportSecurityãèšå®ãããŠããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãã¹ãŠã®èŠæã§httpã«ã¢ã¯ã»ã¹ã§ããŸããã
ããŒã¯å šäœãšããŠãæ å ±ãé€ããŠç¹å¥ãªãã®ã¯äœãäžããŸããã ããããç©ç©ã®éé¶ã ã¢ããªã±ãŒã·ã§ã³ãvk.comããã³cdninstagram.comã®httpãçªç ŽããããšèããŠããŸãã ããã£ã
CFBundleURLTypes
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb582433738573752</string> </array> </dict> <dict> <key>CFBundleURLSchemes</key> <array> <string>vk5530956</string> </array> </dict> <dict> <key>CFBundleURLSchemes</key> <array> <string>prisma</string> </array> </dict> </array>
ããããæã圹ã«ç«ããªãããŒã ç¹°ãè¿ããŸããã圌ã¯ç¹ã«æçšãªãã®ã¯äœãæäŸããŠããŸãããããã®ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã«ç»é²ãããŠããURLã«ã€ããŠè©±ããŠããŸãã ããšãã°ãã¢ãã€ã«ãµãã¡ãªã§fb582433738573752ãšå ¥åããå ŽåïŒ//ã¢ããªã±ãŒã·ã§ã³ã«è»¢éãããŸãïŒã€ã³ã¹ããŒã«ãããŠããå Žåã¯ãã¡ããïŒã ç¹°ãè¿ããŸããããã®æ å ±ã¯æ¡ä»¶ä»ãã§åœ¹ã«ç«ããªããšåé¡ããããšãã§ããŸãã ããããæšæºçãªãœãŒã·ã£ã«ãããã¯ãŒã¯ã®URLã«å ããŠããapp-adminãããapp-devããªã©ã®URLãèŠã€ããã¢ããªã±ãŒã·ã§ã³ã«äœåºŠãééããŸããã é衚瀺ã®ã¢ããªã±ãŒã·ã§ã³èšå®ãååŸã§ããããã«åãæ¿ãããšãã ããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãèšäºãå ¬éããããã¡ã€ã³ããŒãžã«æŒã蟌ãã ããåé€ãããã䞊ã¹æ¿ãããããããšãã§ãã1ã€ã®åºçç©ãžã®ç·šéã¢ã¯ã»ã¹ããããŸããã
次ã«ãFrameworksãã£ã¬ã¯ããªã«æ³šç®ããŸãïŒ Payload / Prisma.app / Frameworks
ãã®äžã«ã¯ã䜿çšãããŠããå€éšãã¬ãŒã ã¯ãŒã¯ãšSDKã«ã€ããŠã®ããã«æçšãªæ å ±ããããŸãã
åãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠä»¥äžã§è©³ãã説æããŸãããããšãã°ãããããèå³æ·±ãæ å ±ãåŒãåºãããšãã§ããŸãã ä»ã®ãã¬ãŒã ã¯ãŒã¯ã®äžã§ããã¢ãã¡ãŒã·ã§ã³GIFã§åäœããFLAnimatedImageããããŸã-çµè«ã¯ãPrismaããŸã ãããªã§ãããšããããšãæãã瀺åããŠããŸãã
ãŸããã¡ã¿ãã¡ã€ã«ã§ã¯ãå€ãã®å Žåãéçºè ãå¿ãããŽããèŠã€ããããšãã§ããŸãã å€ãã®å ŽåãREADME.mdã.gitignoreãã©ã€ã»ã³ã¹ãªã©ããããŸãã ç¹°ãè¿ããŸãããPrismaã¯è¯ãäŸã§ãã ããŒãžã§ã³2.3ãããéçºè ã«ãã£ãŠå¿ããããå人ã®1人ã®åçãããã«çŸããŸããã äžçªäžã«éãã人ã¯ãã³ã¡ã³ãã§äººã®ååãæçš¿ããªãã§ãã ããã圌ã¯æ¬åœã«å°ããŸããã
ãŸããUSERTrustRSAAddTrustCA.cerãèŠã€ããŸãã-ãã§ã«èå³æ·±ããã®ã§ãã ããããã¹ã¯ãŒãã§ä¿è·ããã蚌ææžã§ããããšãç解ããŠããéããã¢ããã°ã®ãã«ãŒããã©ãŒã¹ã¯å©çãäžããŸããã§ããã
ãã€ããªã«ã¯ãé ãããplistãçŽæ¥å«ãŸããŠããããšãå€ããèå³æ·±ãå ŽåããããŸãã ãŸããã¢ããªã±ãŒã·ã§ã³ãwebviewãã¯ãããžãŒïŒCordovaãªã©ïŒã«åºã¥ããŠæ§ç¯ãããŠããå Žåãcord.conf.xmlãšå®éã«ã¯ã¢ããªã±ãŒã·ã§ã³ãœãŒã¹ãèŠã€ãããŸãã ããšãã°ããŠãŒã¶ãŒã«è¿œå ã®ãããªã¬ãã¹ã³ã®æ¯æããæäŸããSworkitã¢ããªã±ãŒã·ã§ã³ã¯ã䟿å©ãª.mp4圢åŒã§æ¢ã«ãœãŒã¹ã«å«ãŸããŠããŸãã ããªããããã䟿å©ã«ãããå Žå-æ¯æãã äžäŸ¿ã§ãããç¡æã§ã-Habréã®ãã®èšäºãèªãã§ãã ããã
ãããããããã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžããååŸã§ããäž»ãªãã®ã§ãã ãã£ãšæ£ç¢ºã«èšãã°ãç§ãåŸãäž»ãªãã®ã çããã¯è³¢ããããã«äŸ¿å©ãªãã®ãèŠã€ãããšç¢ºä¿¡ããŠããŸããã³ã¡ã³ããæžããŠãã ããããããèšäºã«è¿œå ããŸãã ããããåã³ããã¹ãŠãåã ã§ãã äžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããœãŒã¹ã³ãŒãå šäœãå«ããå€ããèŠã€ããããšãã§ããŸãã
ããŠãã¢ããªã±ãŒã·ã§ã³èªäœã«ã€ããŠããå°ãã ããªãºã ïŒ2.3ïŒ17.6Mb ãã€ãã£ãã¹ãŠã£ããããã·ã¢èªãšè±èªã®ãµããŒãã ãã¬ãŒã ã¯ãŒã¯
Alamofire.framework-HTTPã¯ã©ã€ã¢ã³ã
AlamofireImage.framework
AlamofireNetworkActivityIndiââcator.framework
Bolts.framework-éçºè åãã®è£å©ããŒã«ããã
FBSDKCoreKit.framework-facebook
FBSDKShareKit.framework-facebook
FLAnimatedImage.framework-ãããªãæäœããããã®ã©ã€ãã©ãª
KeychainAccess.framework-èš±å¯ã©ãããŒã æãé »ç¹ã«touchidã§åäœããããã«äœ¿çš
Obfuscator.framework-é£èªåããŒã«ãããã§ã¯ã説æããå¿ èŠã¯ãªããšæã
PINCache.framework-ããŸããŸãªã¹ã¬ããã§ã®äœæ¥ããµããŒãããã©ãŒãžãªããžã§ã¯ãã®ããŒ/å€ã¹ãã¬ãŒãžã
PINRemoteImage.framework-Picacheã¢ãžã¥ãŒã«
pop.framework-ã¢ãã¡ãŒã·ã§ã³ãæäœããããã®ã©ã€ãã©ãªã UIã¢ãã¡ãŒã·ã§ã³ã«æããã䜿çšãããŸãã
RHBOrientationObjC.framework-å é床èšãããæ£ç¢ºã«ã¯ãããã€ã¹ã®åããæäœããŸãã
SDWebImage.framework-å¥ã®http_client /ç»åã®ãã£ãã·ã¥
SwiftyJSON.framework-JSONã䜿çšãã䟿å©ãªäœæ¥
Swinject.framework-DIéçºãã¿ãŒã³
VK_ios_sdk.framework-vk.com
æåŸã«äœããããŸããïŒ ã¢ããªã±ãŒã·ã§ã³ã«é¢ããå€ãã®æ å ±ãåéããã¢ããªã±ãŒã·ã§ã³ã«äœãæåŸ ãã¹ãããç解ããŠããŸãã 蚌ææžãèŠã€ããŠä¿åããŸããã ãããªãããã«ç§ãã¡ãåŸ ã£ãŠããããšãç¥ããããªãºãã®åµèšè ã®å人ã®ã¯ãŒã«ãªåçãèŠã€ããŸããã å ã«é²ã¿ãŸãã
Sniffem HTTP
ããã§ã®ããªãºãã¯ããã®èšäºã®è¯ãäŸã§ããããšãå€æããŸããã åãArtistoãšVinciãçŽ ã®httpã䜿çšããããããã¹ãããã£ã³ã°ããã®ã«å°é£ããªãå ŽåãPrismaã¯èšŒææžèªèšŒã䜿çšããŠhttpsã䜿çšããŸãã ãããŠãããããã¿ã³ããªã³ãšã®ãã³ã¹ãå§ãŸããŸãã ããããé çªã«èŠãŠã¿ãŸãããã
1.æåã«ãhttpïŒsïŒãããã·ãå¿ èŠã§ãã ç§ã¯Charlesã䜿çšããŠããŸãããããã¯éåžžã«ã·ã³ãã«ã§æ©èœçã§ãã
2. iOSããã€ã¹ãå¿ èŠã§ãã ãšãã¥ã¬ãŒã¿ãŒã¯æ©èœããŸããã
3.ããã€ã¹éã«1ã€ã®ãããã¯ãŒã¯ãå¿ èŠã§ãã æãç°¡åãªã®ã¯Wi-Fiã§ãã
ã¿ãŒããã«ã§ãããã·ãèµ·åãããšåæã«ãhttpsãããã·ããªã³ã«ããŸãã ããã€ã¹ã§ã¯ãããããWi-Fiãããã¯ãŒã¯èšå®ã§ãæã§ãããã·ãèšå®ããŸãïŒç«¯æ«ãšããŒãã®IPïŒïŒ
ããã«ãã»ãšãã©ã®å ŽåãiOSã§èšŒææžãã¹ãªããããã ãã§ååã§ãã ãããè¡ãæ¹æ³ã¯ãåãCharles Webãµã€ãã«è©³ããèšèŒãããŠããŸãã ããããPrismaã®å Žåãããã¯ããŸããããŸããã§ãã-éçºè ã¯äžå®å®ã§ã¯ãªãã蚌ææžã®ä¿¡é Œæ§ããã§ãã¯ããŸãã ããããããã¯ããã€ã¹ã«ãã£ãŠè¡ãããç§ãã¡ããŸã unningã§ãã ãã ããiOSãçæ£æ§ã®èšŒææžãæ€èšŒããªãããã«ããã«ã¯ããžã§ã€ã«ãã¬ã€ã¯ãå¿ èŠã§ãã
è¡çºã¯ãããŒãžã§ã³iOS 9.3.3ãããåã«è¡ãããšãã§ããŸããããã®åŸãç¬èªã®å±éºãšãªã¹ã¯ã䌎ããŸãããªãã·ã§ã³ãšããŠã ããŒããªãœãŒã¹ã䜿çšããã³ã¡ã³ãã泚ææ·±ãèªãã§ãã ããã ç¹ã«ãäžéšã®ããžã§ã€ã«ãã¬ã€ã¯ã¿ã€ãããœãããŠã§ã¢ã¯ãAppleIDãšãã¹ã¯ãŒããèŠæ±ããå Žåãããããªã³ã¯ãããã«ãŒãããããŒã¿ãšãéãæ¶å€±ããå¯èœæ§ããããŸãã ããããã¹ãŠã®åŸ®åŠãªç¹ã«ã€ããŠè©³ãã説æããŸãã
ã©ããã£ãŠãã£ããã¯èª¬æããŸãã ããã¯è§£é€ã¯ãããã€ã¹ã®ããŒãžã§ã³ãšiOSã«ãã£ãŠå€§ããç°ãªããŸãã ãã®å Žåã«å¿ èŠãªå¯äžã®çç±ã¯ã httpsïŒ//github.com/nabla-c0d3/ssl-kill-switch2/releases-ssl killã¹ã€ããã®ææ°ããŒãžã§ã³ã§ãã Cydiaã䜿çšããŠïŒåã³ããã¹ãŠã®æ å ±ããããã¯ãŒã¯äžã§èŠã€ããããšãã§ããŸãïŒãiFileãªã©ã®ãã¡ã€ã«ãã¥ãŒã¢ãŒãé 眮ããŸãã ãããŠãææ°ã®ssl killã¹ã€ãããªãªãŒã¹ã®.debãã¡ã€ã«ã«å ¥åããŸãã é»è©±ãåèµ·åããåŸãssl killã¹ã€ãããå®è¡ããŸãã ãã¹ãŠã®æäœã®åŸããªãã«ããããšãå¿ããªãããšãéèŠã§ãã ããããªããšãããã€ã¹ãSSLãèªèšŒããªããªãããããªã¹ã¯ããããŸãã
ãããã·ããªã³ã«ãªãã蚌ææžã®æ€èšŒããªãã«ãªããã¢ããªã±ãŒã·ã§ã³ã確èªããããã«é転ããŸããã æåã®èµ·å-ã芧ã®ãšãããã¢ããªã±ãŒã·ã§ã³ã¯æåã«èšå®ãåéããŸãã ã©ãããå ¥æã§ããŸããïŒ Twitches https://cdn.neuralprisma.com/config.jsonãšéåžžã®GETãæšæºèšå®ããããŸãããé¢çœããªãã§ãã ããããapi3.neuralprisma.com/styles POSTãäœã§ãžã£ãŒã¯ããŸã
{ "codes": ["public"] }
åºåã¯ãã£ã«ã¿ãŒã®ãªã¹ãã§ãã ãã§ã«ãã£ãšé¢çœããé å["public"]ã§éãã ã ããã«ãéçºè ãããæ°èŠããªã©ã®äœãã代çšããããšããŠãç§ã¯å©çãåŸãŸããã§ããããããããããªãã®äžäººãæåããã§ãããã ããã«ã¯Postmanã䜿çšããããšããå§ãããŸãã
ã§ã¯ãå ã«é²ã¿ãŸãããã åçãã¢ããããŒããããšãã®æ¬¡ã®ãªã¯ãšã¹ãã¯ãURL api3.neuralprisma.com/upload/imageã«å床POSTãããŸã
ãããŠããã€ããªmd5ã®base64ãå«ãprisma-image-signããããŒãèŠããŸã§ãç§ã®äººçã¯ãã¹ãŠé 調ã§ããã 人çã¯èŠçã§ãã ç§ã¯ä»ããªãºã ã®ãã©ãã£ãã¯ããã£ããããã¢ããªã±ãŒã·ã§ã³ãšåãããšãè¡ãããšãåŠã³ãŸãããhttp ...ã ãã§ã¯ã©ãã·ã¥ãããšããç§ã®å€¢ã ããã¯ã©ãããæå³ã§ããïŒ ãããã£ãŠãéçºè ã¯ç§ã®ãããªäººã ããä¿è·ãããŠããŸãã httpçµç±ã§ç»åãéä¿¡ããããšã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ããœã«ãã䜿çšããŠããã·ã¥ãèšç®ãããã®ããã·ã¥ãããããŒã«è¿œå ããŸãã ããã·ã¥ã®çææ¹æ³ãç¥ã£ãŠããã®ã¯ã¢ããªã±ãŒã·ã§ã³ãšãµãŒããŒã®ã¿ã§ãã åçã¯ãµãŒããŒã«éä¿¡ããããµãŒããŒã¯åãã¢ã«ãŽãªãºã ã䜿çšããŠåçããããã·ã¥ãçæããããã·ã¥ãç°ãªãå Žåã¯ãã§ãã¯ãããªã¯ãšã¹ããåœé ãããŸãã ã¢ã»ã³ãã©ãåŸæã§ããã°ããããåé¿ããæ¹æ³ããããŸãã ãã®ããããŒãçæãããšãããããã¯ã«é¢ãããã€ããªã®æ殺+åæã«ãããã¢ã«ãŽãªãºã ãåŸãããŸãã ããããmd5ïŒæå°ïŒ+ base64ãããããšãèãããšãããã«ã¯å€ãã®æéãããããŸãã ãŸããObfuscator.frameworkãã¬ãŒã ã¯ãŒã¯ã®ååšã«ãã£ãŠãã¹ãŠãè€éã«ãªãããšãå¿ããªãã§ãã ããã äžè¬ã«ãç§ãæžããããã«ã人çã¯èŠçã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®ä»¥éã®äœæ¥ã¯ãã¹ãŠéåžžã«ç°¡åã§ãã åçããµãŒããŒã«éä¿¡ãããç¹å®ã®ç»ååãè¿ãããŸãã ã¹ã¿ã€ã«ãéžæãããšããªã¯ãšã¹ãã¯ãã®ã¢ããªã±ãŒã·ã§ã³å+ã¹ã¿ã€ã«åã§éä¿¡ãããåºåã¯å©çã«ãªããŸãã ããããåå©ã¯ãšãŠãè¿ãã£ãã
ããŠãããŠã絶æãããå¥ã®åæ§ã®Vinciã¢ããªã±ãŒã·ã§ã³ã®äŸã䜿çšããŠAPIãã€ã³ã¿ãŒã»ããããå¯èœæ§ãèããŠã¿ãŸãããã æ¢ã«è¿°ã¹ãããã«ããã¹ãŠãããã«ãã裞ã®httpã§è¡ããããããããã€ã¹ãæªããå¿ èŠãããããŸããã ãããã·ãµãŒããŒãç»é²ããã ãã§ãã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠã©ãã«è¡ããã確èªã§ããŸãã ãã¹ãŠã®ãªã¯ãšã¹ãã¯ããã§ã«æžããPostmanã§ãšãã¥ã¬ãŒããããããµãŒããŒèšèªã§å®è£ ã§ããŸãã
ãã¹ãŠãéåžžã«ç°¡åã§ãã æåã®ãªã¯ãšã¹ãã§èµ·åãããšãVinci ã¯äœ¿çšå¯èœãªã¹ã¿ã€ã«ãåéã ãããã€ã¹ãç»é²ããŸãããæ°ã«ããŸããã 次ã«ãåçãã¢ããããŒãããåçã®ããã·ã¥ãååŸããããã«ãPOSTãªã¯ãšã¹ããéä¿¡ããåçãšãšãã«åçãããªããŒãããŸãã
ããã«ãã芧ã®
2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO
ãURL http://vinci.camera/process/2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO/21ã«ã¢ã¯ã»ã¹ããŠå®æããç»åãååŸããŸããããã§ã
2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO
ã¯21ã§ããã«ã¡ã©/ãªã¹ã
以äžã§ãã ããã§ãä»æ¥äœãåŠã³ãŸãããïŒ APIå šäœã蚌ææžèªèšŒã§httpsã䜿çšããŠããå Žåã§ããã¢ããªã±ãŒã·ã§ã³èªäœã®ã¡ã¿ãã¡ã€ã«ã«åŸã£ãŠã¢ããªã±ãŒã·ã§ã³ã«é¢ããæ å ±ãåéããæ¹æ³ãšãã¢ããªã±ãŒã·ã§ã³ãã©ãã£ãã¯ãã¹ãããã£ã³ã°ããæ¹æ³ãåŠã³ãŸããã APIããæ å ±ãåéããæ¹æ³ãåŠã³ãŸããïŒäœãã©ãã§ããªãããŸãããã€ãã®ãè¡ãæ¢ãŸããã瀺ããŸããã
ã·ã ã«ã€ããŠã¯ãã¢ããªã±ãŒã·ã§ã³ã®é åçãªåæããæ°ãæ£ããããšã¯ãããŸããã誰ããäœãé¢çœããã®ãèŠã€ããããã³ã¡ã³ããæšãŠãŠãäžç·ã«ç¬ã£ãŠãã ããã
ãšããã§ãèå³æ·±ãäºå®ã åãSQLinjã ãŠã§ãäžã§ãããã«äŒãããšã¯ãã§ã«å°é£ã§ãããéçºè ã¯æ³šå°ã®å±éºæ§ãç解ããŠããŸãã ããããããã§ã¯ãWebããã§ã¯ãªãã¢ãã€ã«éçºã«é »ç¹ã«ã¢ã¯ã»ã¹ããã¢ãã€ã«éçºè ãããŸãïŒWebããã§ã-ãAPIãç¥ã£ãŠããã®ã¯ã¢ããªã±ãŒã·ã§ã³ã ãã§ãïŒããªã©ã®APIãä¿¡é ŒããŠããŸãïŒããªã¢ãŒããŠãŒã¶ãŒã«ããããŒã¿ããŒã¹ãžã®ãã«ã¢ã¯ã»ã¹ãåŸ ã¡ãŸãã