应用重签名-手动

2020-04-11  本文已影响0人  lmfei

应用签名原理

描述文件

查看路径:/Users/用户名/Library/MobileDevice/Provisioning Profiles
随意找到一个描述文件,然后使用

security cms -Di c032844c-d34b-40ad-8758-a0ff9d3935c2.mobileprovision

查看描述文件信息
其中entitlements是权利配置信息

<key>Entitlements</key>
<dict>          
  <key>application-identifier</key>
  <string>XYQY6K4FX3.com.lmf.MyApp</string> 
  <key>keychain-access-groups</key>
  <array>
  <string>XYQY6K4FX3.*</string>
  </array>              
  <key>get-task-allow</key>
  <true/>
  <key>com.apple.developer.team-identifier</key>
  <string>XYQY6K4FX3</string>
</dict>
  1. 准备砸壳后的包,解压包,并找在Payload中找到.app文件,查看应用签名
codesign -vv -d DingTalk.app
liumingfei$ codesign -vv -d DingTalk.app
Executable=/Users/liumingfei/Desktop/Prison/砸壳应用/Payload/DingTalk.app/DingTalk
Identifier=com.laiwang.DingTalk
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=1973728 flags=0x0(none) hashes=30834+7 location=embedded
Signature size=4390
Authority=Apple iPhone OS Application Signing
Authority=Apple iPhone Certification Authority
Authority=Apple Root CA
Info.plist entries=63
TeamIdentifier=5ZSL2CJU2T
Sealed Resources version=2 rules=24 files=1185
Internal requirements count=1 size=100

其中Authority就是应用签名
查看可执行文件

otool -l DingTalk | grep cryptid
liumingfei$ otool -l DingTalk | grep cryptid
      cryptid 0

cryptid为0即为砸完壳的包,1就是加密的

  1. 查看证书
security find-identity -v -p codesigning

选择其中一条

21A80F7458BC94A89A297FA36DD7C5A8CC789922 "iPhone Developer: 1093941077@qq.com (5LU9Z373CG)"
  1. 删插件
    删除PlugIns、Watch两个文件夹,插件普通帐号是无法签名的
  2. 重签FrameWork
    进入FrameWorks文件夹
codesign -fs "iPhone Developer: 1093941077@qq.com (5LU9Z373CG)" xxx.framework

使用上面指令进行重签名

  1. 为MachO添加执行权限
chmod +x DingTalk
  1. 添加描述文件
  1. 修改Bundle ID
    将需要重签的包中的Info.plist文件中的Bundle identifier,改为刚刚运行工程的
  2. 通过授权文件重签.app包
    查看embedded.mobileprovision信息,取出Entitlements内容,然后新建一个plist文件,将内容粘贴到进去
<plist version="1.0">
    <dict>
        <key>application-identifier</key>
        <string>XYQY6K4FX3.com.lmf.MyApp</string>
        
        <key>keychain-access-groups</key>
        <array>
            <string>XYQY6K4FX3.*</string>
        </array>
        
        <key>get-task-allow</key>
        <true/>
        
        <key>com.apple.developer.team-identifier</key>
        <string>XYQY6K4FX3</string>
    </dict>
</plist>

保存后,将这个plist文件放到待重签.app的同级目录下
执行重签命令:

codesign -fs "iPhone Developer: 1093941077@qq.com (5LU9Z373CG)" --no-strict --entitlements=cL.plist DingTalk.app
Device

选+


+

选择重签后的包


Replace
大功告成,手机中的第二个钉钉就出现了

调试App

Attach to Process
Runing
View

至此,真正的大功告成!!!

生活如此美好,今天就点到为止。。。

上一篇下一篇

猜你喜欢

热点阅读