dumdecrpted 砸殼工具
- dumpdecrypted 砸殼工具
下載最新源碼: git clone https://github.com/stefanesser/dumpdecrypted.git
編譯動態(tài)庫文件(dumpdecrypted.dylib): make
定位要砸殼的StoreApp的執(zhí)行文件名字TargetApp (ps -e 可以得到全路徑)
定位要砸殼的StoreApp的Document目錄:
cycript -p TargetApp
[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
得到路徑:#"file:///var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE/Documents/"
進入Document目錄: cd /var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE/Documents/
拷貝dumpdecrypted.dylib: cp dumpdecrypted.dylib .
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
- theos(作者:@DHowett)
越獄開發(fā)工具包
-
xcode工具集的路徑需要設置正確
查看命令: xcode-select --print-path設置命令: xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer
通過github安裝theos
https://github.com/theos/theos/wiki/Installation-
修改所有者
sudo chown -R $(id -u):$(id -g) theostheos維基百科:
http://iphonedevwiki.net/index.php/Theos/Setup#For_Mac_OS_X
http://iphonedevwiki.net/index.php/Theos -
環(huán)境變量
export THEOS=/opt/theos可以寫入~/.bash_profile
source ~/.bash_profileecho $THEOS
-
ldid(作者:saurik )
維基百科:http://iphonedevwiki.net/index.php/Ldid越獄iPhone下的簽名工具(更改授權entitlements),可以為thos開發(fā)的程序進程簽名(支持在OS X和iOS上運行)。
安裝ldid
$ brew install ldid fakeroot加密算法
對稱加密算法:RC4荚守、DES助被、3DES罕邀、AES128爆存、AES256等六荒。加解密雙方密鑰相同护姆。
非對稱加密算法:RSA、Elgamal等掏击。加解密雙方使用密鑰對卵皂。
哈希算法:MD5(16Byte)、SHA1(20Byte)等砚亭。任意長度的信息轉換成到某一固定長度的信息摘要(具有唯一性灯变,不可逆性)殴玛,主要作用是對數(shù)據(jù)數(shù)據(jù)完整性校驗。
-
數(shù)字簽名 (蘋果官方的私鑰簽名添祸,公鑰驗證)
- 數(shù)字簽名是非對稱密鑰加密技術與數(shù)字摘要技術的應用滚粟。對指定信息使用哈希算法,得到一個固定長度的信息摘要刃泌,然后再使用 私鑰 (注意必須是私鑰)對該摘要加密凡壤,就得到了數(shù)字簽名。
-
數(shù)字證書
數(shù)字證書是一個文件耙替,由蘋果的 Apple Worldwide Developer Relations Certification Authority(WWDR)證書認證中心進行簽名亚侠,其的主要作用是用來標示身份。證書文件主要包含兩部分內(nèi)容:證書信息和證書簽名證書信息
包含用戶的公鑰俗扇、用戶個人信息硝烂、證書頒發(fā)機構信息、證書有效期等信息铜幽。(這里的用戶主要指開發(fā)者)證書簽名
WWDR將上述證書本身內(nèi)容的使用哈希算法得到一個固定長度的信息摘要钢坦,然后使用自己的私鑰對該信息摘要加密生成數(shù)字簽名。證書的驗證
iOS系統(tǒng)原本就持有WWDR的公鑰啥酱,系統(tǒng)首先會對證書內(nèi)容通過指定的哈希算法計算得到一個信息摘要;然后使用WWDR的公鑰對證書中包含的數(shù)字簽名解密厨诸,從而得到經(jīng)過WWDR的私鑰加密過的信息摘要镶殷;最后對比兩個信息摘要,如果內(nèi)容相同就說明該證書可信微酬。在驗證了證書是可信的以后绘趋,iOS系統(tǒng)就可以獲取到證書中包含的開發(fā)者的公鑰,并使用該公鑰來判斷代碼簽名的可用性了颗管。證書存在的意義
通過證書使用過程可以看出陷遮,證書本身只是一個容器,用來承載開發(fā)者的公鑰垦江。iOS通過驗證證書的合法性來確保開發(fā)者公鑰的合法性帽馋。
-
代碼簽名與驗證(開發(fā)者的私鑰簽名,公鑰驗證)
打包過程中使用開發(fā)者私鑰對應用進行簽名比吭。開發(fā)者的公鑰被包含在數(shù)字證書里绽族,數(shù)字證書又被包含在描述文件(Provisioning File)中,描述文件在應用被安裝的時候會被拷貝到iOS設備中衩藤。iOS安全系統(tǒng)通過證書就能夠確定開發(fā)者身份吧慢,就能夠通過從證書中獲取到的公鑰來驗證開發(fā)者用該公鑰對應的私鑰簽名后的代碼、資源文件等有沒有被更改破壞赏表,最終確定應用能否合法的在iOS設備上合法運行检诗。
-
工具的使用
查看codesign load command otool -l WeChat | grep -A 5 SIGNATURE 查看簽名信息 ? tmp codesign -dvvv WeChat Executable=/private/tmp/WeChat Identifier=com.tencent.xin Format=Mach-O universal (armv7 arm64) CodeDirectory v=20200 size=448783 flags=0x0(none) hashes=14017+5 location=embedded Hash type=sha256 size=32 CandidateCDHash sha1=6e2f8a93dbe63c17ea3b3a3dc032826b9eddf2b7 CandidateCDHash sha256=d6f1afe23b598a76301711a4a62a5505a749a12a Hash choices=sha1,sha256 CDHash=d6f1afe23b598a76301711a4a62a5505a749a12a Signature size=3925 Authority=Apple iPhone OS Application Signing Authority=Apple iPhone Certification Authority Authority=Apple Root CA Info.plist=not bound TeamIdentifier=88L2Q4487U Sealed Resources=none Internal requirements count=1 size=96 查看entitlement內(nèi)容 codesign -d --entitlements - WeChat ldid -e WeChat 修改entitlement內(nèi)容 ldid -Sentitlement.xml WeChat
dpkg工具
安裝
$ brew install --from-bottle https://raw.githubusercontent.com/Homebrew/homebrew-core/7a4dabfc1a2acd9f01a1670fde4f0094c4fb6ffa/Formula/dpkg.rb
$ brew pin dpkg
- 使用
dpkg -i/-r file.deb deb包安裝/卸載
dpkg -s com.iosre.myiosreproject 查看安裝包信息