iOS逆向实践-反编译已安装APP头文件+Reveal查看界面

前言

在做这个实践之前,我一直认为反编译是一件很困难很无聊的一件事。直到自己亲自动手实践了一下,发现整个过程其实没有那么难(当然,仅仅是针对逆向了一个安装包的过程来说,完整的逆向过程还是有不少东西要学的)。今天就把自己动手实现的整个反编译过程记录一下。

准备工作

  1. 一部越狱的手机(越狱工作十分简单,使用pp助手即可完成);
  2. 安装包逆向解析工具:dumpdecrypted class-dump ,主要用于解析应用头文件并生成可阅读的OC代码
  3. 使用Reveal查看APP UI

一. 反编译目标APP头文件

1. 将手机越狱,并在越狱工具Cydia内搜索openssh、Cydia Substrate、Cycript
openssh.png
Cydia Substrate.png
Cycript.png

2. 安装dumpdecrypted和class-dump

//以下命令在终端完成
cd /Users/jacky/Downloads/dumpdecrypted-master
make
`xcrun --sdk iphoneos --find gcc` -Os  -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c

3.获取要反编译的APP文件目录

通过Mac终端控制手机,注意OpenSSH的默认密码是alpine,这里需要注意的是我们的电脑和手机必须在同一个WiFi的连接下,查看手机wifi的ip地址
ip地址

在终端执行命令

ssh root@192.168.0.102
root@192.168.0.102's password: //这里输入alpine

接下来保持你要反编译的app在前台运行,同时在刚刚与手机建立连接的终端输入ps -e并回车,这里我们以腾讯新闻客户端为例,手机仅仅保持腾讯客户端前台运行,在终端输入命令后打印如下:

PID TTY           TIME CMD
    1 ??         1:41.19 /sbin/launchd
  227 ??         1:12.00 /usr/sbin/syslogd
  229 ??         0:07.19 /usr/sbin/WirelessRadioManagerd
  233 ??         0:00.59 /usr/sbin/wirelessproxd
  239 ??         0:01.87 /System/Library/PrivateFrameworks/TCC.framework/tccd
  242 ??         0:17.33 /usr/libexec/fseventsd
  245 ??         0:23.28 /usr/libexec/installd
  246 ??         0:00.00 (MSUnrestrictProc)
  248 ??         0:00.57 /System/Library/PrivateFrameworks/MobileInstallation.framework/XPCServices/com.apple.MobileInstallationHelperService.xpc/
  251 ??         0:07.27 /System/Library/PrivateFrameworks/IAP.framework/Support/iaptransportd
  254 ??         0:52.72 /System/Library/PrivateFrameworks/iTunesStore.framework/Support/itunesstored
  259 ??         0:11.17 /System/Library/PrivateFrameworks/IMCore.framework/imagent.app/imagent
  261 ??         1:11.99 /usr/libexec/configd
  263 ??         0:03.92 /usr/sbin/distnoted daemon
  265 ??         0:14.64 /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted
  267 ??        72:19.69 /usr/libexec/backboardd
  269 ??         0:00.35 /usr/libexec/nfcd
  271 ??         0:27.58 /usr/libexec/assertiond
  273 ??         0:34.17 /System/Library/PrivateFrameworks/ApplePushService.framework/apsd
  275 ??         0:04.54 /usr/sbin/fairplayd.H2
  277 ??         0:27.67 /usr/sbin/mDNSResponder
  279 ??         1:07.36 /usr/sbin/notifyd
  281 ??         1:14.47 /usr/sbin/wifid
  287 ??         9:12.79 /System/Library/CoreServices/SpringBoard.app/SpringBoard
  289 ??         0:00.26 /System/Library/PrivateFrameworks/GenerationalStorage.framework/revisiond
  293 ??        52:45.76 /usr/sbin/mediaserverd
  295 ??         0:06.61 /usr/libexec/sharingd
  297 ??         0:12.68 /System/Library/PrivateFrameworks/IDS.framework/identityservicesd.app/identityservicesd
  299 ??         0:23.42 /System/Library/CoreServices/powerd.bundle/powerd
  310 ??         0:03.73 /System/Library/Frameworks/AssetsLibrary.framework/Support/assetsd
  321 ??         1:11.29 /usr/sbin/cfprefsd daemon
  324 ??         0:07.68 /System/Library/PrivateFrameworks/MobileContainerManager.framework/Support/containermanagerd
  327 ??         0:00.96 /usr/libexec/diagnosticd
  333 ??         0:55.72 /usr/libexec/networkd
  336 ??         0:06.62 /usr/sbin/BTServer
  338 ??         0:34.36 /usr/libexec/routined
  342 ??         0:14.35 /usr/libexec/nsurlstoraged
  344 ??         0:05.26 /usr/libexec/nanoregistryd
  347 ??         0:00.01 /usr/libexec/rocketd
  350 ??         0:15.57 /System/Library/Frameworks/Accounts.framework/accountsd
  357 ??         0:43.51 /usr/libexec/hangtracerd
  359 ??         0:00.07 /usr/libexec/MobileGestaltHelper
  365 ??         0:00.18 /usr/libexec/networkd_privileged
  369 ??         0:00.05 /usr/libexec/nanoregistrylaunchd
  372 ??         0:01.71 /System/Library/PrivateFrameworks/FoundationODR.framework/ondemandd.bundle/ondemandd
  375 ??         0:04.66 /usr/libexec/lsd
  377 ??         0:00.04 /System/Library/PrivateFrameworks/TouchRemote.framework/Support/touchsetupd
  379 ??         2:23.77 /usr/libexec/nsurlsessiond
  381 ??         0:14.87 /usr/libexec/timed
  383 ??         0:03.85 /usr/libexec/nehelper
  397 ??         5:59.90 /usr/libexec/UserEventAgent (System)
  402 ??         0:00.06 /usr/libexec/misd
  406 ??         0:00.01 /usr/libexec/pfd -d
  409 ??         0:01.10 /usr/libexec/lockbot
  414 ??         0:40.08 /usr/libexec/pphelper/PPHelperLaunchd
  416 ??         0:00.09 /usr/libexec/misagent
  421 ??         0:04.58 /System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AccessibilityUI.framework/XPCServices/com.apple.acce
  424 ??        25:36.62 /usr/libexec/locationd
  427 ??         0:01.25 /usr/libexec/mobileassetd
  430 ??         0:00.09 /usr/libexec/mobileactivationd
  433 ??         0:15.84 /System/Library/PrivateFrameworks/GeoServices.framework/geod
  436 ??         1:11.79 /usr/libexec/securityd
  439 ??         0:01.14 /System/Library/PrivateFrameworks/AuthKit.framework/akd
  441 ??         4:05.72 /System/Library/Frameworks/CoreTelephony.framework/Support/CommCenter
  446 ??         0:13.47 /usr/libexec/atc
  451 ??         0:00.03 /System/Library/PrivateFrameworks/CoreSymbolication.framework/coresymbolicationd
  454 ??         0:01.85 /System/Library/PrivateFrameworks/WirelessDiagnostics.framework/Support/awdd
  457 ??         0:02.34 /System/Library/PrivateFrameworks/MusicLibrary.framework/Support/medialibraryd
  462 ??         0:14.24 /usr/libexec/lockdownd
  466 ??         0:00.10 /System/Library/PrivateFrameworks/VisualVoicemail.framework/vmd
  473 ??         0:00.05 /usr/sbin/BlueTool -R
  476 ??         0:00.76 /System/Library/PrivateFrameworks/IMDPersistence.framework/XPCServices/IMDPersistenceAgent.xpc/IMDPersistenceAgent
  481 ??         0:01.77 /usr/libexec/biometrickitd --launchd
  484 ??         2:56.85 /usr/libexec/coreduetd
  486 ??         1:07.12 /usr/libexec/symptomsd
  490 ??         0:00.52 /System/Library/PrivateFrameworks/MapsSupport.framework/mapspushd
  492 ??         0:00.33 /System/Library/PrivateFrameworks/StoreBookkeeperClient.framework/Support/storebookkeeperd
  494 ??         0:00.54 /usr/libexec/findmydeviced
  498 ??         0:27.23 /usr/libexec/SafariCloudHistoryPushAgent
  501 ??         0:00.06 /System/Library/Frameworks/Security.framework/IDSKeychainSyncingProxy.bundle/IDSKeychainSyncingProxy
  504 ??         0:00.11 /System/Library/Frameworks/Security.framework/CloudKeychainProxy.bundle/CloudKeychainProxy
  507 ??         0:03.49 /System/Library/PrivateFrameworks/DataAccess.framework/Support/dataaccessd
  510 ??         0:00.18 /System/Library/PrivateFrameworks/CallHistory.framework/Support/CallHistorySyncHelper
  513 ??         0:18.54 /usr/libexec/gamed
  516 ??         0:00.13 /System/Library/PrivateFrameworks/AskPermission.framework/askpermissiond
  519 ??         0:04.28 /System/Library/PrivateFrameworks/HomeSharing.framework/Support/itunescloudd
  522 ??         0:02.84 /System/Library/PrivateFrameworks/HomeKitDaemon.framework/Support/homed
  525 ??         0:01.00 /System/Library/PrivateFrameworks/ManagedConfiguration.framework/Support/profiled
  527 ??         0:03.63 /System/Library/Frameworks/PassKit.framework/passd
  531 ??         0:00.15 /System/Library/PrivateFrameworks/iCloudNotification.framework/ind
  534 ??         0:08.14 /System/Library/PrivateFrameworks/CloudDocsDaemon.framework/bird
  537 ??         0:00.79 /usr/libexec/fmfd
  540 ??         0:02.69 /System/Library/PrivateFrameworks/TelephonyUtilities.framework/callservicesd
  546 ??         0:02.53 /usr/libexec/aosnotifyd
  549 ??         0:01.09 /usr/sbin/filecoordinationd
  551 ??         0:00.10 /usr/libexec/keybagd -t 15
  555 ??         0:22.69 /System/Library/PrivateFrameworks/CloudKitDaemon.framework/Support/cloudd
  558 ??         0:00.55 /usr/libexec/adid
  561 ??         0:00.13 /System/Library/PrivateFrameworks/CarKit.framework/Support/carkitd
  564 ??         0:04.04 /usr/libexec/pipelined
  566 ??         0:11.86 /usr/libexec/duetexpertd
  569 ??         0:02.11 /System/Library/PrivateFrameworks/UserActivity.framework/Agents/useractivityd
  573 ??         0:09.53 /System/Library/PrivateFrameworks/Search.framework/searchd
  576 ??         0:00.07 /System/Library/PrivateFrameworks/CoreFollowUp.framework/followupd
  583 ??         0:01.03 /System/Library/PrivateFrameworks/CloudDocsDaemon.framework/XPCServices/ContainerMetadataExtractor.xpc/ContainerMetadataE
  586 ??         0:00.36 /System/Library/CoreServices/AppleIDAuthAgent
  589 ??         0:00.30 /System/Library/PrivateFrameworks/AssistantServices.framework/assistantd
  595 ??         0:03.52 /usr/libexec/DuetHeuristic-BM
  601 ??         0:01.60 /usr/libexec/pkd -d/var/db/PlugInKit-Annotations
  612 ??         0:02.28 /System/Library/PrivateFrameworks/CalendarDaemon.framework/Support/calaccessd
  620 ??         0:00.12 /Applications/MobileSafari.app/webbookmarksd
  622 ??         0:00.05 /System/Library/PrivateFrameworks/AppSupport.framework/Support/cplogd
  624 ??         0:15.84 /Applications/MobileMail.app/MobileMail
  626 ??         0:00.05 /System/Library/PrivateFrameworks/UIFoundation.framework/XPCServices/com.apple.uifoundation-bundle-helper.xpc/com.apple.u
  629 ??         0:00.64 /System/Library/PrivateFrameworks/CoreRecents.framework/recentsd
  634 ??         0:23.22 /var/containers/Bundle/Application/E1C69DFA-A28C-4247-9030-335808503E89/AlipayWallet.app/AlipayWallet
  636 ??         0:00.46 /System/Library/PrivateFrameworks/CoreSuggestions.framework/suggestd
  646 ??         0:02.39 /usr/libexec/wcd
  653 ??         0:00.13 /System/Library/PrivateFrameworks/CacheDelete.framework/deleted
  656 ??         0:00.13 /System/Library/Frameworks/LocalAuthentication.framework/Support/coreauthd
  742 ??         0:00.09 /usr/sbin/absd
  794 ??         0:00.19 /usr/libexec/notification_proxy
  811 ??         0:02.68 /System/Library/Frameworks/HealthKit.framework/healthd
  825 ??         0:00.05 /usr/libexec/afcd
  826 ??         0:00.00 (MSUnrestrictProc)
  836 ??         0:03.20 /System/Library/Frameworks/Metal.framework/XPCServices/MTLCompilerService.xpc/MTLCompilerService
  852 ??         0:03.09 /usr/libexec/rtcreportingd
  866 ??         0:00.18 /usr/libexec/online-auth-agent
  869 ??         0:00.10 /Applications/Contacts.app/PlugIns/ContactsCoreSpotlightExtension.appex/ContactsCoreSpotlightExtension
  872 ??         0:00.68 /Applications/MobileCal.app/PlugIns/CalendarWidget.appex/CalendarWidget
  874 ??         0:12.29 /Applications/Stocks.app/PlugIns/StocksWidget.appex/StocksWidget
  933 ??         0:00.08 /System/Library/CoreServices/EscrowSecurityAlert.app/EscrowSecurityAlert
  941 ??         0:00.07 /usr/libexec/companion_proxy
  948 ??         0:04.46 /System/Library/TextInput/kbd
  951 ??         0:41.09 /private/var/containers/Bundle/Application/CCE14291-E925-45A2-A759-18E084E261C1/SogouInput.app/PlugIns/com.sogou.sogouinp
  957 ??         0:03.48 /usr/libexec/mobile_installation_proxy
  960 ??         0:00.04 /System/Library/CoreServices/CacheDeleteSystemFiles
  962 ??         0:00.06 /System/Library/CoreServices/CacheDeleteITunesStore
  964 ??         0:00.52 /System/Library/CoreServices/CacheDeleteAppContainerCaches
  967 ??         0:00.65 aslmanager
  969 ??         0:00.09 /usr/libexec/replayd
  975 ??         0:05.61 /usr/libexec/swcd
  987 ??         0:02.04 /System/Library/PrivateFrameworks/MapsSupport.framework/navd
  996 ??         0:01.36 /usr/libexec/mmaintenanced
 1004 ??         0:00.57 /usr/libexec/seld
 1013 ??         0:00.12 /System/Library/PrivateFrameworks/CommunicationsFilter.framework/CMFSyncAgent.app/CMFSyncAgent
 1016 ??         0:08.80 /Applications/InCallService.app/InCallService
 1052 ??         0:25.06 /System/Library/PrivateFrameworks/StreamingZip.framework/XPCServices/com.apple.StreamingUnzipService.xpc/com.apple.Stream
 1058 ??         0:02.81 /usr/libexec/splashboardd
 1181 ??         0:05.55 /var/containers/Bundle/Application/EEE70959-6650-4665-964A-CE4B77FD5DD8/WeChat.app/WeChat
 1206 ??         0:12.51 /Applications/SafariViewService.app/SafariViewService
 1208 ??         0:00.25 /System/Library/Frameworks/WebKit.framework/XPCServices/com.apple.WebKit.Networking.xpc/com.apple.WebKit.Networking
 1214 ??         0:00.18 /System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/com.apple.Safari.SafeBrowsing.Service
 1281 ??         0:00.14 /System/Library/PrivateFrameworks/FamilyCircle.framework/familycircled
 1355 ??         0:00.79 /Applications/MessagesNotificationViewService.app/MessagesNotificationViewService
 1447 ??         0:00.09 /usr/libexec/OTAPKIAssetTool
 1806 ??         0:00.10 /System/Library/PrivateFrameworks/QuickLookThumbnailing.framework/Support/com.apple.quicklook.ThumbnailsAgent
 1812 ??         0:00.06 /usr/libexec/tipsd
 2046 ??         0:00.75 /usr/libexec/tzd
 2134 ??         0:01.36 /var/containers/Bundle/Application/EFB23F4D-BC89-4835-890D-7C6B1B25A020/WeRead.app/WeRead
 2147 ??         0:00.08 /System/Library/PrivateFrameworks/SafariShared.framework/XPCServices/com.apple.Safari.History.xpc/com.apple.Safari.Histor
 2505 ??         2:32.07 /System/Library/PrivateFrameworks/AggregateDictionary.framework/Support/aggregated
 2692 ??         0:01.05 /System/Library/PrivateFrameworks/SoftwareBehaviorServices.framework/Support/softwarebehaviorservicesd
 2817 ??         0:00.09 /usr/libexec/limitadtrackingd
 2820 ??         0:00.21 /System/Library/PrivateFrameworks/AssetCacheServices.framework/XPCServices/AssetCacheLocatorService.xpc/AssetCacheLocator
 2972 ??         0:02.33 /usr/libexec/ptpd -t usb
 3026 ??         0:01.53 /Applications/StoreKitUIService.app/StoreKitUIService
 3099 ??         0:00.23 sshd: root@ttys000 
 3106 ??         0:07.53 /var/containers/Bundle/Application/80A788E7-9FEE-4896-B963-DE0D37911FB1/QQNews.app/QQNews
 3108 ??         0:00.07 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
 3111 ??         0:00.05 /System/Library/Frameworks/WebKit.framework/XPCServices/com.apple.WebKit.Networking.xpc/com.apple.WebKit.Networking
 3113 ??         0:00.06 /System/Library/Frameworks/WebKit.framework/XPCServices/com.apple.WebKit.WebContent.xpc/com.apple.WebKit.WebContent
 3101 ttys000    0:00.03 -sh
 3116 ttys000    0:00.01 ps -e

在这么多的打印中我们只找以/var/containers开头的打印信息,因为真机的应用程序目录都是这个格式,最终我们确定腾讯新闻的文件目录:

/var/containers/Bundle/Application/80A788E7-9FEE-4896-B963-DE0D37911FB1/QQNews.app/QQNews

4. 使用Cycript找出反编译APP的Documents目录路径

通过上面操作我们知道腾讯新闻的名称应该是QQNews

1234:~ root# cycript -p QQNews
//使用FileManager查找Documents文件夹
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
//下面的打印信息就是我们要找的Documents文件夹路径
#"file:///var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents/"
cy# 
//control+z退出

5.将dumpdecrypted.dylib拷贝到Documents目录下

dumpdecrypted-master jacky$ scp /Users/jacky/Downloads/dumpdecrypted-master/dumpdecrypted.dylib root@192.168.3.37:/var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents/
root@192.168.3.37's password: 
dumpdecrypted.dylib                           100%  193KB   2.8MB/s   00:00  

这里需要注意的是我们不能直接在第四步结束后的终端上直接执行这样的命令,因为此时的终端是直接控制手机的,你直接在上面运行拷贝命令会提示“/Users/jacky/Downloads/dumpdecrypted-master/dumpdecrypted.dylib: No such file or directory”

6. 使用dumpdecrypted.dylib工具进行砸壳处理

cd /var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents/
1234:/var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/80A788E7-9FEE-4896-B963-DE0D37911FB1/QQNews.app/QQNews mach-o decryption dumper
Killed: 9
1234:/var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents root# su mobile
1234:~/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents mobile$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/80A788E7-9FEE-4896-B963-DE0D37911FB1/QQNews.app/QQNews mach-o decryption dumper
mach-o decryption dumper

DISCLAIMER: This tool is only meant for security research purposes, not for application crackers.

[+] detected 64bit ARM binary in memory.
[+] offset to cryptid found: @0x1000d8ca8(from 0x1000d8000) = ca8
[+] Found encrypted data at address 00004000 of length 42254336 bytes - type 1.
[+] Opening /private/var/containers/Bundle/Application/80A788E7-9FEE-4896-B963-DE0D37911FB1/QQNews.app/QQNews for reading.
[+] Reading header
[+] Detecting header type
[+] Executable is a plain MACH-O image
[+] Opening QQNews.decrypted for writing.
[+] Copying the not encrypted start of the file
[+] Dumping the decrypted data into the file
[+] Copying the not encrypted remainder of the file
[+] Setting the LC_ENCRYPTION_INFO->cryptid to 0 at offset ca8
[+] Closing original file
[+] Closing dump file
1234:~/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents mobile$ ls
HLLiteFiles   dumpdecrypted.dylib  qn_my_concern_global.data      qn_sorted_tagitems_.data       submenu.data
QQNews.decrypted  fontsizetype.value   qn_my_concern_list_.data       subMenuChannel_news_live.data  tadConfig.plist
QQNewsData.db     helpInfo.data        qn_my_concern_recommand_.data  subMenuInCurrent.data

遇到的问题:在执行命令时报killed: 9,在github上查看原来这是iOS9.3.2-9.3.3才会遇到的问题,查看issues发现有人给出解决方案,经过尝试,直接在终端输入“su mobile”命令后重新执行一次即可

7. 使用class-dump解析文件

在解析文件之前,我们首先需要将得到的QQNews.decrypted文件拷贝到电脑上,这里同样需要注意不能直接在控制手机的端口上执行拷贝命令,而是要新开一个窗口执行拷贝命令:

scp root@192.168.3.37:/var/mobile/Containers/Data/Application/43E3939B-59E5-4442-8A80-ED0E33C8EDBD/Documents/QQNews.decrypted ~/Desktop
root@192.168.3.37's password: 
QQNews.decrypted                                          100%   51MB  12.9MB/s   00:03

这里我们选择将文件拷贝到电脑桌面,之后你可以在桌面看到QQNews.decrypted文件,然后就是使用class-dump将文件解析成OC代码

cd /Users/jacky/Desktop 
//这里需要将arm64指定为自己手机的架构,如果是64位架构就没有问题,如果是iPhone5之前的手机则需要替换为armv7
jjb-pyxw:Desktop jacky$ class-dump --arch arm64 QQNews.decrypted > QQNews.m

如果一切顺利,我们已经可以在桌面看到QQNews.m的文件,打开它你会发现一切好像都有点熟悉的味道!

二. 使用Reveal查看APP界面

1.打开Reveal(1.6.3版本),在菜单栏里找到Help/Show Reveal Library in Finder/ iOS Library,找到libReveal.dylib和Reveal.framework

D0AFAE57-FFA1-42F5-8D3A-EACFAD5C5BD9.png

2.将libReveal.dylib拷贝到手机的/Library/MobileSubstrate/DynamicLibraries文件夹下

//这里注意不要使用控制手机的那个终端窗口执行拷贝命令,原因前面已经说过
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.168.3.37:/Library/MobileSubstrate/DynamicLibraries
root@192.168.3.37's password: 
libReveal.dylib                               100% 4282KB   9.8MB/s   00:00

3.获取目标APP的bundle id,并新建一个libReveal.plist文件,将目标APP的bundle id填入里面

这里的问题就来了,怎么获得目标APP的bundle id?
在以前,我们可以选择在iTunes上直接下载目标APP的ipa文件解压或者使用iTools来获得,但是现在这条路已经行不通了
经过一番搜索,得到的可行方法是:
1.直接在App Store搜索目标APP,将链接分享到电脑,获得id编号
例如腾讯新闻的为:https://itunes.apple.com/cn/app/%E8%85%BE%E8%AE%AF%E6%96%B0%E9%97%BB-%E4%BA%8B%E5%AE%9E%E6%B4%BE%E7%9A%84%E7%83%AD%E7%82%B9%E8%B5%84%E8%AE%AF%E5%A8%B1%E4%B9%90%E7%9F%AD%E8%A7%86%E9%A2%91%E8%BD%AF%E4%BB%B6/id399363156?mt=8
2.然后在浏览器中打开https://itunes.apple.com/lookup?id=399363156,即可获得一个txt文档,打开文档搜索bundleid即可获得
3.使用Xcode新建一个plist,命名为libReveal.plist,填入目标APP的bundleid

DAD88E0F-734A-40E7-B778-3C3AFBB28F89.png

将libReveal.plist拷贝到手机/Library/MobileSubstrate/DynamicLibraries文件夹下

scp /Users/jacky/Desktop/Test/oc/JailbreakDemo/JailbreakDemo/libReveal.plist root@192.168.3.37:/Library/MobileSubstrate/DynamicLibraries
root@192.168.3.37's password: 
libReveal.plist                               100%  343    45.2KB/s   00:00 

4.重新打开目标APP,并使用Reveal查看


Reveal截图.png

结束语

以上就是关于本次逆向实践的全过程记录,更深入的学习还在进行中,在此只是希望把整个操作和踩坑过程记录下来,提醒自己的同时也可以帮助其他对逆向感兴趣节省整个操作时间。整个过程中特别需要注意的就是文件从Mac拷贝到手机和从手机拷贝到Mac上时一定不要在控制手机的那个终端窗口上进行,否则你会头大的!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容

  • 参考书籍:iOS应用逆向工程第二版调试其他应用界面[https://hurui.gitbooks.io/revea...
    wg689阅读 13,370评论 23 84
  • 逆向工程的目的 1)分析竞品的最新研究或者产品原型(包括所用的技术,所使用的框架) 2)学术/学习目的。 3)破解...
    零度_不结冰阅读 688评论 0 2
  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 508评论 0 1
  • iOS逆向需要具备的能力: 非常熟悉iOS设备的硬件结构 iOS的运行原理 1年以上的iOS开发经验 iOS逆向论...
    SunnyLeong阅读 6,797评论 1 21
  • 前天,翻箱倒柜要找一份2008年的工作资料,再次翻开那满满一大箱子工作笔记和重要资料,06年和04年的资料走进...
    武春丽阅读 775评论 0 1