美文网首页
应用重签名-手动

应用重签名-手动

作者: lmfei | 来源:发表于2020-04-11 11:28 被阅读0次

    应用签名原理

    描述文件

    查看路径:/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. 添加描述文件
    • 新建一个工程,并运行到iPhone上
    • 安装成功后,去.app中拿到embedded.mobileprovision文件拷贝到需要重签名的包中
    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

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

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

    相关文章

      网友评论

          本文标题:应用重签名-手动

          本文链接:https://www.haomeiwen.com/subject/kmhcuhtx.html