當前位置:
首頁 > 新聞 > iOS應用程序重打包和簽名詳盡指南Part 1

iOS應用程序重打包和簽名詳盡指南Part 1

介紹

隨著每一個新版本的發布,破解iOS變得越來越困難,將iOS應用程序重新打包並重新簽名,然後在未越獄的iOS設備上側面載入(sideload),這一話題近年來引起了安全研究人員的極大興趣。由於在iOS內核中實現了幾個強制代碼簽名,因此在未越獄設備上側面載入的應用程序會受到限制。這樣做是為了防止惡意活動者在不知情用戶設備上傳播和運行不受信任的代碼。這種強制代碼簽名與蘋果AppStore應用程序審查過程相結合,為防止惡意應用程序被傳播給iOS用戶發揮了巨大作用。

雖然這些措施讓攻擊者更難針對AppStore用戶,但也讓安全研究人員更難獨立評估iOS應用程序的安全性。安全研究人員想要將應用程序進行側面載入最常見的兩個原因是:

·為了避免繞過應用程序開發人員為防止逆向工程而實現的幾個二進位保護的需要。

·在iOS的某些版本上,沒有公共越獄。

本指南旨在為關於iOS應用程序重打包和簽名的安全研究指出存在的挑戰,同時提供如何克服這些挑戰的建議。

現有的工作

有一些值得注意的研究和文章討論了在未越獄設備上安裝重打包和簽名的應用程序問題。但是,其引用的研究要麼缺乏足夠的細節,要麼僅僅演示了iOS應用程序重打包和簽名的簡單例子。

由於存在上述限制,因此寫了本指南,本指南解決了在未越獄設備上使用不同的構建配置對應用程序重打包和簽名的問題。特別是,將解決以下構建配置的重打包和簽名:

·從AppStore下載的應用程序

·包含框架和/或dylibs的應用程序

·使用App Extensions(應用擴展)和高級應用程序功能的應用程序。

·綁定WatchKit應用程序的應用程序

方法

重新打包iOS應用程序大致可以分為六個步驟:

1.解密綁定在應用程序IPA中的MachO二進位文件

2.用自定義代碼/庫修補應用程序

3.為要部署重打包的應用程序的目標iOS設備生成Provisioning Profile(配置文件)

4.更新應用程序元數據以匹配Provisioning Profile

5.重簽名應用程序的MachO二進位文件

6.將包歸檔並側面載入到目標iOS設備

本指南將使用此方法演示示例iOS應用程序的重打包和簽名。

開始

建立一個工作區

開始,研究人員使用適當的工具來設置工作區。用一個已破解的iOS設備來解密應用程序,用一個未破解的iOS設備來將重新打包的應用程序進行側面載入。

本指南使用的是通過Saigon beta2越獄,運行iOS 10的iPod Touch 6,以及運行iOS 11的未越獄iPhone 6s。越獄和未越獄的設備都是64位的設備。

MacOS High Sierra

MacOS需要執行許多操作才能重新打包iOS應用程序。需要的工具包括Xcode、otool和codesign等工具。在撰寫本文時,作者並不知道也可以使用FOSS作為替代方案實現重新打包iOS應用程序所需的相同操作。如果將來FOSS工具可以使用,本指南將會更新使用FOSS工具。

Xcode 9 +

用於生成具有許可權(entitlement)權利的Provisioning Profiles ,它作為重新打包過程的一部分。

optool

它是一個開源工具,允許修補MachO的二進位文件。本指南使用optool向MachO二進位文件添加載入命令。

FridaGadget

為了演示如何用自定義代碼對應用程序進行打補丁,本指南將Frida伺服器綁定為一個共享庫,通常稱為FridaGadget。當生成補丁應用程序時,它將載入啟動Frida伺服器的dylib。然後可以連接到這個伺服器並檢測應用程序。

idevice* utilities

要將重新打包的應用程序安裝到目標設備上,可以使用的幾個選項之一是idevice* utilities。本指南使用ideviceinstaller、ideviceimagemounter和idevicedebug來安裝和運行重新打包的應用程序。只需要實用程序ideviceimagemounter和idevicedebug使用debugserver生成應用程序。

重打包應用程序

1.應用程序存儲二進位文件重打包

可以使用iTunes 12.6從AppStore下載iOS應用程序包(IPAs)。應該注意的是,新版本的iTunes不支持從AppStore下載應用程序。可以從以下鏈接下載iTunes 12.6。對於第一個重打包演示,Simple Notepad,使用一個簡單的iOS應用程序來讓讀者熟悉重打包應用程序的六個步驟。

使用unzip或類似工具解壓縮Simple Notepad IPA,得到一個名為「Plain Notes」的MachO可執行二進位文件。下面的代碼片段展示了在Simple Notepad應用程序包中MachO二進位文件的布局:

Payload/

Plain Notes.app/

Plain Notes

1.1解密MachO二進位文件

創建了幾個自動的解決方案解密AppStore二進位文件,如Clutch、dumpdecrypted或dump-ios。然而,其中有些自動解決方案中很難處理實現二進位保護的應用程序,比如調試器檢測和/或連接檢測。這就是為什麼有時需要手動解密二進位文件。可以在以下鏈接中找到關於解密AppStore二進位文件的優秀指南。

解密Simple Notepad的第一步是設置debugserver,以便在應用程序啟動時對其進行攔截並附加到應用程序。下面的代碼片段演示了設置debugserver來附加到Simple Notepad應用程序:

amarekano-ipod:~/amarekano root# ./debugserver *:6666 -waitfor "Plain Notes"

debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-360.0.26.1 for arm64.

Waiting to attach to process Plain Notes...

Listening to port 6666 for a connection from *...

設置好debugserver並攔截了Simple Notepad的啟動之後,使用lldb連接到debugserver實例。要在內存中定位解密圖像,需要知道圖像的大小和圖像偏移量。可以通過使用otool檢查應用程序二進位文件的load命令來收集偏移量:

Amars-Mac:Plain Notes.app amarekano$ otool -l Plain Notes | grep -A4 LC_ENCRYPTION_INFO_64

cmd LC_ENCRYPTION_INFO_64

cmdsize 24

cryptoff 16384

cryptsize 1146880

cryptid 1

由於系統範圍的ASLR在iOS中被強制執行,所以需要在內存中定點陣圖像的基本地址,然後計算該地址的偏移量。可以在lldb連接到debugserver並被附加到程序之後完成該操作:

(lldb) image list "Plain Notes"

[ 0] BA5E5051-D100-3B60-B5C8-181CAC0BB3EE 0x000000010004c000 /var/containers/Bundle/Application/2FD88AFF-6841-44D2-878D-8BA1698F3343/Plain Notes.app/Plain Notes (0x000000010004c000)

(lldb) memory read --force --outfile ./decrypted.bin --binary --

count 1146880 0x000000010004c000+16384

1146880 bytes written to "./decrypted.bin",

count參數是cryptsize值,解密部分的偏移量是base address + cryptoffset。一旦轉儲了解密的內存區域,然後需要將它拼接到原始的AppStore二進位文件中。使用iTunes下載的iOS應用程序通常包含多個arch FAT二進位文件。為了正確地修補二進位文件,首先需要使用otool定位arm64體系結構的偏移量:

Amars-Mac:Plain Notes.app amarekano$ otool -fh Plain Notes | grep -A5 architecture 1 architecture 1

cputype 16777228

cpusubtype 0

capabilities 0x0

offset 1441792

size 1517824

使用加密信息中加密部分的偏移量並且FAT二進位文件中arm64 arch的偏移量,使用dd將解密圖像拼接到原始二進位文件中。下面顯示的查找值是FAT二進位文件中兩個偏移值i.e cryptoff +偏移的和:

Amars-

Mac:Plain Notes.app amarekano$ dd seek=1458176 bs=1 conv=notrunc if=./decrypted.bin of=Plain Notes

1146880+0 records in

1146880+0 records out

1146880 bytes transferred in 4.978344 secs (230374 bytes/sec)

一旦完成了補丁,將cryptid值設置為0,這一操作可以通過將修補的二進位文件載入到MachO-View中實現,選擇正確的架構和Load命令,並更新如下截圖所示的值:

更新後,保存對二進位圖像所做的更改,並將打過補丁的二進位文件複製到未打包的應用程序IPA中。

1.2 給應用程序打補丁

在Payload/Plain Notes.app/ 目錄中,將FridaGadget.dylib和FridaGadget.config複製到解壓縮的IPA。使用解密應用程序二進位文件和FridaGadget的解壓縮包應該如下:

Payload/

Plain Notes/

Plain Notes

FridaGadget.dylib

FridaGadget.config

FridaGadget.config文件的內容如下:

Amars-Mac:Plain Notes.app amarekano$ cat FridaGadget.config {

"interaction": {

"type": "listen",

"address": "0.0.0.0",

"port": 8080,

"on_load": "wait"

}

地址和埠的值可以配置為目標設備上可訪問的任何介面和埠。當通過重新打包的應用程序生成時,Frida伺服器將監聽這個介面和埠。

使用optool嚮應用程序二進位文件添加一個load命令。這個load命令指示應用程序二進位文件將FridaGadget.dylib載入到應用程序的進程空間。

Amars-Mac:sandbox amarekano$ optool install -c load -p "@executable_path/FridaGadget.dylib" -t Payload/Plain Notes.app/Plain Notes

Found FAT Header

Found thin header...

Found thin header...

Inserting a LC_LOAD_DYLIB command for architecture: arm

Successfully inserted a LC_LOAD_DYLIB command for arm

Inserting a LC_LOAD_DYLIB command for architecture: arm64

Successfully inserted a LC_LOAD_DYLIB command for arm64

Writing executable to Payload/Plain Notes.app/Plain Notes...

1.3生成Provisioning Profile

修補了應用程序二進位文件以載入自定義的dylib,即FridaGadget。開始將要側面載入到未越獄目標設備上的應用程序二進位文件的簽名過程。該過程的第一步是為目標設備生成provisioning profile。是通過創建一個空的Xcode項目來實現的,該項目針對的是未越獄設備。

在構建這個項目之前,通常需要向Xcode添加一個AppleID,然後Xcode將為應用程序生成和管理簽名證書。AppleID可能與一個免費的開發者帳戶有關,或者是蘋果開發者計劃的一部分。在Xcode上設置AppleID可以通過menu; Preferences > Accounts完成。

所使用的簽名證書如下圖所示:

注意:如果在構建空項目時,碰巧將其部署到設備上,那麼請在將重新打包的應用程序側面載入到設備上之前確保將其刪除。

下一步是從這個空項目中提取provisioning profile並重用它來重新打包目標應用程序。此provisioning profile位於:

~/Library/Developer/Xcode/DerivedData/repackdemo-/Build/Products/Debug-iphoneos/repackdemo.app/embedded.mobileprovision

將此文件複製到未打包應用程序的Payload/Plain Notes.app目錄中,如下面的目錄布局所示:

Payload/

Plain Notes/

Plain Notes

FridaGadget.dylib

FridaGadget.config

embedded.mobileprovision

使用以下命令從生成的provisioning profile中提取許可權:

Amars-Mac:repackdemo.app amarekano$ security cms -D -i embedded.mobileprovision > profile.plist

Amars-Mac:repackdemo.app amarekano$ /usr/libexec/PlistBuddy -x -c "Print :Entitlements" profile.plist > entitlements.plist

Amars-Mac:repackdemo.app amarekano$ cat entitlements.plist

application-identifier

6M9TEGX89M.com.example.amarekano.repackdemo

com.apple.developer.team-identifier

6M9TEGX89M

get-task-allow

keychain-access-groups

6M9TEGX89M.*

entitlements.plist文件包含應用程序二進位文件所需的許可權,用於在未越獄的iOS環境中工作。這些entitlements.plist將在稍後的重新簽名過程中使用,以簽署應用程序二進位文件。

1.4更新應用程序元數據

下一步是將Simple Notepad app的Bundle標識符更新為上一節中生成的Provisioning Profile的Bundle標識符。在本例中,Provisioning Profile的bundle標識符是「com.example.amarekano.repackdemo」。使用以下命令更新未打包應用程序Payload/Plain Notes.app目錄中的Info.plist文件:

Amars-Mac:sandbox amarekano$ /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.example.amarekano.repackdemo" Payload/Plain Notes.app/Info.plist

1.5MachO二進位文件重簽名

要在MacOS系統上生成有效的代碼簽名標識列表,請運行以下命令:

Amars-Mac:~ amarekano$ security find-identity -p codesigning -v

1) 49808436B649808449808436B6651498084336B6 "iPhone Developer: m******"

2) F4F6830FB32AAF4F6830E2C5F4F68309F4FF6830 "Mac Developer: m*******"

3) 41A1537676F3F41A153767FCC41A153767CC3767 "iPhone Developer: A******"

4) 1E309C6B45C0E309C69E10E309C670E309C69C60 "iPhone Developer: a*********"

4 valid identities found

使用用來生成Provisioning Profile的簽名標識來對各種MachO二進位文件進行重簽名。首先簽名FridaGadget.dylib:

Amars-Mac:sandbox amarekano$ codesign --force

--sign "iPhone Developer: m***************" Payload/Plain Notes.app/FridaGadget.dylib

Payload/Plain Notes.app/FridaGadget.dylib: replacing existing signature

在對dylib簽名之後,使用第1.4節中生成的許可權對應用程序二進位文件進行簽名。

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m*****************" --entitlements entitlements.plist Payload/Plain Notes.app/PlainNotes

Payload/Plain Notes.app/Plain Notes: replacing existing signature

1.6歸檔和安裝

一旦二進位文件被重簽名,使用zip實用程序將Payload目錄重新打包到IPA

Amars-Mac:sandbox amarekano$ zip -qr Simple_Notes_resigned.ipa Payload/

然後用ideviceinstaller將重新打包的IPA安裝到目標設備上,它是idevice實用工具套件的一部分:

Amars-Mac:sandbox amarekano$ ideviceinstaller -i Simple_Notes_resigned.ipa

WARNING: could not locate iTunesMetadata.plist in archive!

Copying "Simple_Notes_resigned.ipa" to device... DONE.

Installing "com.example.amarekano.repackdemo"

Install: CreatingStagingDirectory (5%)

Install: ExtractingPackage (15%)

Install: InspectingPackage (20%)

Install: TakingInstallLock (20%)

Install: PreflightingApplication (30%)

Install: InstallingEmbeddedProfile (30%)

Install: VerifyingApplication (40%)

Install: CreatingContainer (50%)

Install: InstallingApplication (60%)

Install: PostflightingApplication (70%)

Install: SandboxingApplication (80%)

Install: GeneratingApplicationMap (90%)

Complete

1.7運行重新打包的應用程序

需要安裝目標設備上iOS版本的DeveloperDiskImage,以便使用debugserver啟動應用程序。不同iOS版本的Developer Disk圖像位於MacOS的以下目錄下:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

感興趣的兩個文件是Disk圖像本身及其相應的簽名。

·DeveloperDiskImage.dmg

使用ideviceimagemounter將磁碟圖像安裝到目標設備上,如下所示:

成功安裝後,使用idevicedebug以調試模式啟動應用程序:

應用程序需要在調試模式下運行的原因是,主要應用程序線程在啟動時被暫停,使Frida伺服器有時間對預先配置的埠進行啟動和偵聽。

在調試模式下運行後,連接Frida伺服器並使用以下命令恢復應用程序線程:

Amars-Mac:sandbox amarekano$ frida -H 192.168.1.196:8080 -n Gadget

____

/ _ | Frida 10.7.7 - A world-class dynamic instrumentation toolkit

| (_| |

> _ | Commands:

/_/ |_| help -> Displays the help system

. . . . object? -> Display information about "object"

. . . . exit/quit -> Exit

. . . .

. . . . More info at http://www.frida.re/docs/home/

[Remote::Gadget]-> %resume

[Remote::Gadget]-> String(ObjC.classes.NSBundle.mainBundle().objectForInfoDictionaryKey_("CFBundleName"))

"Plain Notes"

[Remote::Gadget]-> String(ObjC.classes.NSBundle.mainBundle().objectForInfoDictionaryKey_("CFBundleIdentifier"))

"com.example.amarekano.repackdemo"

[Remote::Gadget]->

這裡,目標iOS設備的IP地址為192.168.1.196,Frida伺服器正在監聽埠8080。一旦連接到Frida伺服器,就可以開始使用Frida檢測應用程序。

2.使用框架的應用程序重打包

當重新打包使用框架的應用程序時,請記住,它需要解密和修補應用程序IPA中也包含的框架二進位文件。為了證明這一點,使用Adobe Acrobat的iOS應用程序作為示例。

解壓Acrobat IPA,得到了以下MachO二進位文件的分布:

Payload/

Adobe Acrobat.app/

Frameworks/

AdobeCreativeSDKCore.framework/

AdobeCreativeSDKCore

AdobeCreativeSDKUtility.framework/

AdobeCreativeSDKUtility

AdobeCreativeSDKGoogleLogin.framework/

AdobeCreativeSDKGoogleLogin

Adobe Acrobat

應用程序使用的框架位於上述Frameworks/目錄下。有些應用程序還會捆綁dylibs,它也位於Frameworks/目錄下。這個特定的Adobe Acrobat應用程序版本不包含任何dylibs。

2.1解密MachO二進位文件

對包含框架的應用程序進行解密,需要對主應用程序二進位文件以及各個框架進行解密,然後才能對它們進行重新打包。可以通過附加調試器並從內存中轉儲解密圖像來手動實現這一點。或者,可以使用諸如Clutch2之類的自動化解決方案來生成解密的二進位文件。下面的代碼片段顯示了應用程序二進位文件的加密信息,並演示了使用lldb從內存中轉儲解密的應用程序二進位文件:

Amars-Mac:Adobe Acrobat.app amarekano$ otool -l Adobe Acrobat | grep -A4 LC_ENCRYPTION_INFO_64

cmd LC_ENCRYPTION_INFO_64

cmdsize 24

cryptoff 16384

cryptsize 16465920

cryptid 1

....

(lldb) image list "Adobe Acrobat"

[ 0] 397432D5-9186-37B8-9BA6-181F633D9C1F 0x000000010009c000 /var/containers/Bundle/Application/15E6A273-A549-4317-99D3-34B8A6623B5E/Adobe Acrobat.app/Adobe Acrobat (0x000000010009c000)

(lldb) memory read --force --outfile ./decbins/acrobat.bin --binary --count 16465920 0x000000010009c000+16384

16465920 bytes written to "./decbins/acrobat.bin"

類似的,必須對與Adobe Acrobat應用程序綁定的三個框架中的每個框架進行解密。下面的代碼片段顯示了AdobeCreativeSDKCore框架二進位文件的加密信息,並演示了使用lldb從內存中轉儲解密框架二進位文件。

Amars-Mac:AdobeCreativeSDKCore.framework amarekano$ otool -l AdobeCreativeSDKCore | grep -A4 LC_ENCRYPTION_INFO_64

cmd LC_ENCRYPTION_INFO_64

cmdsize 24

cryptoff 16384

cryptsize 770048

cryptid 1

....

(lldb) image list AdobeCreativeSDKCore

[ 0] 3FA3C800-9B6A-3117-A193-36C775B81A43 0x00000001015ac000 /private/var/containers/Bundle/Application/15E6A273-A549-4317-99D3-34B8A6623B5E/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKCore.framework/AdobeCreativeSDKCore (0x00000001015ac000)

(lldb) memory read --force --outfile ./decbins/AdobeCreativeSDKCore.bin --binary --count 770048 0x00000001015ac000+16384

770048 bytes written to "./decbins/AdobeCreativeSDKCore.bin"

應用程序二進位文件和框架二進位文件被解密之後,將解密的二進位文件拼接到原始二進位文件中,然後使用MachO View將每個二進位文件的cryptid標誌設置為0。

2.2給應用程序打補丁

要對應用程序進行打補丁,複製FridaGadget.dylib和FridaGadget.config配置文件到未打包應用程序包的Payload/Adobe Acrobat.app/目錄下。複製後,使用optool將load命令添加到應用程序二進位文件中,如下所示:

Amars-Mac:sandbox amarekano$ optool install -c load -p "@executable_path/FridaGadget.dylib" -t Payload/Adobe Acrobat.app/Adobe Acrobat

Found FAT Header

Found thin header...

Found thin header...

Inserting a LC_LOAD_DYLIB command for architecture: arm

Successfully inserted a LC_LOAD_DYLIB command for arm

Inserting a LC_LOAD_DYLIB command for architecture: arm64

Successfully inserted a LC_LOAD_DYLIB command for arm64

Writing executable to Payload/Adobe Acrobat.app/Adobe Acrobat...

2.3更新應用程序元數據

更新應用程序的Info.plist中的bundle標識符,來匹配生成的provisioning profile。生成配置文件已經在第1.3節中討論過。

Amars-Mac:sandbox amarekano$ /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.example.amarekano.repackdemo" Payload/Adobe Acrobat.app/Info.plist

將目標設備的provisioning profile複製到Payload/Adobe Acrobat.app/目錄下的未打包應用程序包中。

2.4MachO二進位文件重簽名

首先,通過刪除提取的「Adobe Acrobat.app」中的以及各個框架目錄下的_CodeSignature目錄,來刪除現有的代碼簽名。文件夾布局如下:

Payload/

Adobe Acrobat.app/

_CodeSignature

Frameworks/

AdobeCreativeSDKCore.framework/

_CodeSignature

AdobeCreativeSDKUtility.framework/

_CodeSignature

AdobeCreativeSDKGoogleLogin.framework/

_CodeSignature

一旦它們被刪除,就可以對二進位文件進行簽名。要做到這一點,首先對FridaGadget.dylib進行簽名:

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m***************" Payload/Adobe Acrobat.app/FridaGadget.dylib

Payload/Adobe Acrobat.app/FridaGadget.dylib: replacing existing signature

然後是框架二進位文件:

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m***************" Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKCore.framework/AdobeCreativeSDKCore

Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKCore.framework/AdobeCreativeSDKCore: replacing existing signature

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m***************" Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKGoogleLogin.framework/AdobeCreativeSDKGoogleLogin

Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKGoogleLogin.framework/AdobeCreativeSDKGoogleLogin: replacing existing signature

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m***************" Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKUtility.framework/AdobeCreativeSDKUtility

Payload/Adobe Acrobat.app/Frameworks/AdobeCreativeSDKUtility.framework/AdobeCreativeSDKUtility: replacing existing signature

最後,用許可權權利對程序的二進位文件簽名。

Amars-Mac:sandbox amarekano$ codesign --force --sign "iPhone Developer: m***************" --entitlements entitlements.plist Payload/Adobe Acrobat.app/Adobe AcrobatAdobe Acrobat: replacing existing signature

在1.3節中討論了如何從provisioning profile生成許可權。

2.5歸檔和安裝

所有MachO二進位文件都重簽名之後,只需將其存檔到IPA中,然後將其側面載入目標設備:

Amars-Mac:sandbox amarekano$ zip -qr Adobe_resigned.ipa Payload/

使用ideviceinstaller將應用程序安裝到目標設備上,如下所示:

Amars-Mac:sandbox amarekano$ ideviceinstaller -i Adobe_resigned.ipa

WARNING: could not locate iTunesMetadata.plist in archive!

Copying "Adobe_resigned.ipa" to device... DONE.

Installing "com.example.amarekano.repackdemo"

Install: CreatingStagingDirectory (5%)

......

Install: GeneratingApplicationMap (90%)

Install: Complete

2.6運行重新打包的應用程序

使用idevicedebug在調試模式下啟動應用程序。

應用程序在調試模式下運行後,就可以連接到正在運行的Frida伺服器

Amars-Mac:sandbox amarekano$ frida -H 192.168.1.116:8080 -n Gadget

____

/ _ | Frida 10.7.7 - A world-class dynamic instrumentation toolkit

| (_| |

> _ | Commands:

/_/ |_| help -> Displays the help system

. . . . object? -> Display information about "object"

. . . . exit/quit -> Exit

. . . .

. . . . More info at http://www.frida.re/docs/home/

[Remote::Gadget]-> %resume

[Remote::Gadget]-> String(ObjC.classes.NSBundle.mainBundle().objectForInfoDictionaryKey_("CFBundleName"))

"Adobe Acrobat"

[Remote::Gadget]-> String(ObjC.classes.NSBundle.mainBundle().objectForInfoDictionaryKey_("CFBundleIdentifier"))

"com.example.amarekano.repackdemo"

[Remote::Gadget]->

未完待續...


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

如何為開發人員演示DOM型XSS漏洞利用過程
針對惡意軟體Smoke Loader新樣本的分析

TAG:嘶吼RoarTalk |