移除LC_CODE_SIGNATURE

首先保证是二进制文件是 thin的,不能是fat binary(multiarchitecture binary)fat

减肥方法

lipo -thin armv7  old.bin -o new.bin
或者
ditto --arch armv7 bin

1. 修改load命令的数目,位于0×10处,4个字节

     比如,如果load命令的数目是 0x2c,就改为0x2B

2. 修改load命令的大小,位于0×14处, 4个字节

       大小减去0×10

3.   从load命令 条目 中修改16个字节,用0×00替换

                条目以1D 00 00 00标志开始, 实际上就是修改 8个字节的 load命令和 8个字节的load命令内容

      在intel i386和arm中,载入命令总是 1D 00 00 00 10 00 00 00

 

4. 移除实际的代码签名

          代码签名以  FA DE 0C C0 开始

5. 修改 LINKEDIT命令
vm size 和 file size都要减去 签名的大小

filesize是实际的文件大小
vm size必须以4KB 字节对齐,所以一般比file size大一些

 

 

另外:i386 thin binary文件是以  CE FA ED FE 开始的

而x64 thin binary文件是以  CF FA ED FE 开始的

armv7 thin binary也是以  CE FA ED FE 开始的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值