2013-04-16 29 views
1

我的已安裝應用程序使用Ad-hoc證書進行簽名。但它的設計僅限於越獄 iPhone。即使在我越獄後,爲什麼SandBox在iOS 6.1.1中仍然存在?

我嘗試直接讀取/var/mobile/Library/SMS/sms.db中的SMS數據庫。但是我發現應用程序無法讀取它,因爲SandBox進程拒絕了該操作。所以我的問題是,在iPhone被越獄後,SandBox是否被移除?

(現在我想在/var/mobile/Applications/的應用仍然受到沙盒限制,越獄的過程不會在該目錄中刪除沙盒?)

+0

越獄後,應用程序可以完全訪問文件系統,內部移動用戶也是如此。你如何試圖打開文件?也許你使用的方法有硬編碼檢查。 –

+0

可可觸摸方法很可能會不允許這樣做。你需要使用C調用。 – borrrden

+0

@borrrden我使用這樣的函數.FILE * fp; fp = fopen(「/ var/mobile/Library/SMS/sms.db」,「r」);但是打不開。在系統日誌中,我抓到了SandBox拒絕的信息。 – SgViTiNer

回答

3

不幸的是,你猜對了。在越獄設備上,安裝到正常位置(/var/mobile/Applications/)的應用程序仍然是沙盒(*見下面的註釋)。

越獄並沒有完全刪除沙盒

它允許您運行未由有效Apple證書籤名的代碼。因此它也允許您將您的應用程序安裝到不同的位置。

但是,如果您將您的應用安裝到/Applications/,那麼它將能夠讀取/var/mobile/Library/SMS/sms.db,正如我描述的in this answer。作爲系統的應用,您將在沙箱外。

這與Objective-C或Cocoa Touch與C API無關。如果你所要做的只是使用衆所周知的C I/O調用來逃避它,那麼它就不是沙箱。

See this other similar answer (to a closed question),進行一些相關的討論。


更新:看到Saurik公司的評論in this online thread。總結是不同的越獄(例如evasi0n,Absinthe,redsn0w)可能會以不同的方式影響沙盒。 Saurik的建議當然是,他們不是被完全刪除。

+0

正在輸入我的答案,同時你的出現;) – newenglander

+0

嗯,以及我學到了一些東西! +1給你們倆 – borrrden

+0

@ Nate,謝謝!但是我發現SandBox在越獄過程中被削弱了。因爲它不會否​​認我使用「fork」函數或其他一些與之相關的函數。在一個unjailbreak iphone中,我使用的函數受到嚴格限制.even「execvl」被MAC框架所吸引。所以感謝越獄!!! + 1 for you! – SgViTiNer

1

前段時間我嘗試從iPhone的串口讀取時遇到了同樣的問題。您的猜測是正確的,即使在越獄後/var/mobile/Applications/中的常規應用商店應用仍受到沙箱限制。系統應用程序不受這些限制,可在/var/stash/Applications/(或我認爲iOS 6中有路徑中的標識符)中找到,這是Cydia安裝的越獄應用程序的安裝位置。

更新:與Cydia應用程序iFile我可以打開/var/mobile/Library/SMS/sms.db數據庫並查看內容。而手機短信應用程序沒有特殊的權利文件,所以我認爲如果將您的應用程序放入系統應用程序目錄中,您應該沒有問題讀取SMS數據庫。

+0

,謝謝!但是,它完全被越獄過程所削弱。請參閱我上面的評論。這是我的一些經驗〜我希望它能幫助你。 – SgViTiNer

+0

我添加了一些額外的信息。你是否從系統應用程序的'stash'目錄啓動你的應用程序? – newenglander

+0

,不!我使用特設證書安裝我的應用程序,ios會將這樣的應用程序放在/var/mobile/Applications.So,我沒有辦法將它放在上面提到的目錄中。但是,我確定它會工作!謝謝任何方式! – SgViTiNer

0

實際上有一種方法無法使用沙箱帳戶。如果您重新啓動越獄設備並顯示Apple Bootlogo,則可以按住音量增大按鈕以禁用移動設備基板。這可以讓您的設備啓動,就像從未越獄並啓用沙箱。要重新啓動您的越獄狀態。就那麼簡單!

+0

這不回答這個問題。海報不想撤銷他們的越獄。他們希望能夠逃離沙盒,而不是更嚴格地執行。 – Nate

相關問題