博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mac os x lipo 工具
阅读量:4577 次
发布时间:2019-06-08

本文共 1069 字,大约阅读时间需要 3 分钟。

lipo是管理Fat文件的工具,可以查看平台列表,提取、重新打包

dreamdeMac-mini:test dream$ lipo -info libtest001.a

Architectures in the fat file: libtest001.a are: armv7 arm64 

lipo -thin 提取出ARM64平台文件

dreamdeMac-mini:test dream$ lipo -thin arm64 libtest001.a -output libtest001.ar m64

ar -t 查看:

dreamdeMac-mini:test dream$ ar -t libtest001.arm64

__.SYMDEF

7zAes-9CC0839951E86BC.o

...

使用 ar -x 解包

dreamdeMac-mini:arm64 dream$ ar -x ../libtest001.arm64

dreamdeMac-mini:arm64 dream$ ls

7zAes-9CC0839951E86BC.o LzmaEnc-A77677D9F23EB2B0.o

...

打包使用 ar -r 命令

重打包成FAT文件使用 lipo -create

可 man lipo 查看 -create 参数使用

解决问题

使用o-llvm的代码混淆方案。但目前项目静态库大致分成两部分,一部分是开源的加密压缩库,一部分自己编码的加密库,由于压缩算法那块实现逻辑比较复杂,混淆后会大大影响程序执行效率,同时对代码逻辑保护起不到任何作用,因些只需单独将自己编码的加密库混淆。

翻阅了一些资料,Xcode不能单独给.a的某个.o文件设置编译选项,也可能没找着材料。

因此通过 lipo 的方式,替换掉里面开源库的 .o 为未混淆版本。

步骤以下:

  • lipo 拆包

    lipo -thin armv7 xxx.a -output xxx.armv7

    lipo -thin arm64 xxx.a -output xxx.arm64

  • ar 解包

    ar -x xxx.armv7

    ar -x xxx.arm64

  • ar 打包

    ar -r xxx.armv7 *.o

    ar -r xxx.arm64 *.o

  • lipo 打包

    lipo -create xxx.armv7 xxx.arm64 -output xxx.a

转载于:https://www.cnblogs.com/gm-201705/p/9864066.html

你可能感兴趣的文章
DOM操作
查看>>
用python绘制质粒图谱
查看>>
C语言三联序列(trigraph sequences)
查看>>
luogu_1004 方格取数
查看>>
ZBrush的双十一来了,然鹅...
查看>>
linux mint使用中的问题解决记录
查看>>
babel浏览器源码地址
查看>>
【linux基础】vim快速移动光标至行首行尾、第一行和最后一行
查看>>
SQL Server 表字段值转列名 示例
查看>>
leetcode 139. Word Break
查看>>
[POI2009]Slw
查看>>
【题解】洛谷P4391 [BOI2009] Radio Transmission(KMP)
查看>>
类似hover的css伪类注解
查看>>
sklearn 快速入门教程
查看>>
指针数组和二维数组指针变量
查看>>
asp.net解决数据转换为DBNULL的问题
查看>>
window.location.href 放置在单独的JS文件中使用时问题
查看>>
Oracle 常用SQL技巧(转)
查看>>
11.15 个人总结
查看>>
IdentityServer4问题记录
查看>>