thoes、ldid、dpkg

thoes

越狱开发工具包

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) theos

theos维基百科:
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_profile

echo $THEOS

ldid

  • 越狱iPhone 下的签名工具(更改授权entitlements),可以为thos开发的程序进程签名(支持在OS X和iOS上运行)
  • 安装 brew install ldid
  • 加密算法
    • 对称加密算法: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设备上合法运行。
  • 工具的使用
usage: ldid -S[entitlements.xml] 
   ldid -e MobileSafari
   ldid -S cat
   ldid -Stfp.xml gdb
# 查看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  deb包安装/卸载
dpkg -s com.iosre.myiosreproject 查看安装包信息

scp

usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
           

# 当出现scp not a regular file
scp -r root@ip /远程目录 /本地目录

你可能感兴趣的:(thoes、ldid、dpkg)