dumdecrpted 砸壳工具
- dumpdecrypted 砸壳工具
下载最新源码: git clone https://github.com/stefanesser/dumpdecrypted.git
编译动态库文件(dumpdecrypted.dylib): make
定位要砸壳的StoreApp的执行文件名字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)
越狱开发工具包
-
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 -
环境变量
export THEOS=/opt/theos可以写入~/.bash_profile
source ~/.bash_profileecho $THEOS
-
ldid(作者:saurik )
维基百科:http://iphonedevwiki.net/index.php/Ldid越狱iPhone下的签名工具(更改授权entitlements),可以为thos开发的程序进程签名(支持在OS X和iOS上运行)。
安装ldid
$ brew install ldid fakeroot加密算法
对称加密算法:RC4、DES、3DES、AES128、AES256等。加解密双方密钥相同。
非对称加密算法:RSA、Elgamal等。加解密双方使用密钥对。
哈希算法:MD5(16Byte)、SHA1(20Byte)等。任意长度的信息转换成到某一固定长度的信息摘要(具有唯一性,不可逆性),主要作用是对数据数据完整性校验。
-
数字签名 (苹果官方的私钥签名,公钥验证)
- 数字签名是非对称密钥加密技术与数字摘要技术的应用。对指定信息使用哈希算法,得到一个固定长度的信息摘要,然后再使用 私钥 (注意必须是私钥)对该摘要加密,就得到了数字签名。
-
数字证书
数字证书是一个文件,由苹果的 Apple Worldwide Developer Relations Certification Authority(WWDR)证书认证中心进行签名,其的主要作用是用来标示身份。证书文件主要包含两部分内容:证书信息和证书签名证书信息
包含用户的公钥、用户个人信息、证书颁发机构信息、证书有效期等信息。(这里的用户主要指开发者)证书签名
WWDR将上述证书本身内容的使用哈希算法得到一个固定长度的信息摘要,然后使用自己的私钥对该信息摘要加密生成数字签名。证书的验证
iOS系统原本就持有WWDR的公钥,系统首先会对证书内容通过指定的哈希算法计算得到一个信息摘要;然后使用WWDR的公钥对证书中包含的数字签名解密,从而得到经过WWDR的私钥加密过的信息摘要;最后对比两个信息摘要,如果内容相同就说明该证书可信。在验证了证书是可信的以后,iOS系统就可以获取到证书中包含的开发者的公钥,并使用该公钥来判断代码签名的可用性了。证书存在的意义
通过证书使用过程可以看出,证书本身只是一个容器,用来承载开发者的公钥。iOS通过验证证书的合法性来确保开发者公钥的合法性。
-
代码签名与验证(开发者的私钥签名,公钥验证)
打包过程中使用开发者私钥对应用进行签名。开发者的公钥被包含在数字证书里,数字证书又被包含在描述文件(Provisioning File)中,描述文件在应用被安装的时候会被拷贝到iOS设备中。iOS安全系统通过证书就能够确定开发者身份,就能够通过从证书中获取到的公钥来验证开发者用该公钥对应的私钥签名后的代码、资源文件等有没有被更改破坏,最终确定应用能否合法的在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内容 codesign -d --entitlements - WeChat ldid -e WeChat 修改entitlement内容 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 查看安装包信息