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

mac os x lipo 工具的更多相关文章

  1. mac os颜色拾取工具/软件/器推荐

    软件名:ColorSnappe 目前我用的时1.1.0版本 该工具可以利用alt+command+c快捷键拾取颜色,拾取后可以自动把颜色代码放入剪切板 .我最喜欢它可以生成ios开发的代码,比如选择了 ...

  2. mac os下不同工具go env下gopath显示不同

    设置 vim ~/.zshrc 设置 vim ~/.bash_profile

  3. VMware 虚拟机安装 Mac OS X Mountain Lion 苹果系统

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. mac os develop

    . 安装PCRE Download latest PCRE. After download go to download directory from terminal. $ cd ~/Downloa ...

  5. 【Xamarin 在Mac OS 上的部署安装环境】

    ******************没用Mac 的机子,也只能靠虚拟机了**********1 安装VMware 10 从网上下载即可2 下载MAC OS 10.9.5的安装镜像,网上有很多,最好使用 ...

  6. VMWare15 安装 Mac OS 系统

    文章目录VMWare15 安装 Mac OS 系统安装环境工具准备准备工作MAC虚拟机设置启动MAC前准备工作安装系统安装VMware Tool注意事项参考链接安装环境WIN10VMware Work ...

  7. Mac系统下lipo, ar, nm等工具的使用简介

    引言 开发第三方库时, 如果没有进行特殊处理, 很容易把其他第三方库的符号暴露出来, 导致链接时产生符号重复. 如下图所示 如果用户链接了其他版本的libjpeg, 会因为入口地址不正确让程序直接崩溃 ...

  8. Mac OS平台下应用程序安装包制作工具Packages的使用介绍

    一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...

  9. (转)Mac OS X写了个rm时将文件放入回收站的小工具

    上次由于公司里机器要面临重装,开始仓皇地将Mac本里的文件scp到我的台式机上.忙乱之中本来要删除一个无用的文件夹的,结果用rm -rf的时候tab了一下,补全出来的文件都没看清就按下了回车,毫无疑问 ...

随机推荐

  1. MapReduce分布式算法

    一.MapReduce 有一种特殊的并行算法,就是分布式算法.在并行算法只需要两个到四个内核时,完全可以在笔记本电脑上运行,但是如果需要数百个内核,这种情况下,可让算法在多台计算机上运行. 假设你有一 ...

  2. 一、集合框架(HashMap和Hashtable的区别)

    一.HashMap和Hashtable 都实现了Map接口,都是以key-value形式保存数据. 区别一: HashMap可以存放null Hashtable不能存放null 区别二: HashMa ...

  3. SQL SERVER版本补丁体系及升级

    首先了解几个定义: RTM : 表示 Release to Manufacturing ,这是产品的原始发布版本,当从光盘或 MSDN 下载的默认版本.不过现在下载 SQL Server 版本时,也有 ...

  4. MVC的前端和后端的Model Binding

    1.前端提交JSON 字符串 {"id":13,"title":"这里是标题33","day":"2018-8 ...

  5. for循环跳转语句(break、continue)

    跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句.接下来分别进行详细地讲解. 1. break语句 在switch条件语句和循环语句中都可以使 ...

  6. ID基本操作(标尺,参考线,网格)5.11

    参考线:标尺参考线,分栏参考线,出血参考线.在创建参考线之前确保标尺和参考线都可见.并且选中正确的跨页和页面作为目标, “版面”“创建参考线”可以输入数值创建参考线. 跨页参考线的创建:拖动参考线时鼠 ...

  7. Win10系列:UWP界面布局进阶3

    与以往的Windows操作系统不同,Windows 10操作系统在正式版当中取消了任务栏中的"开始"按钮,将大部分的应用程序图标放置在开始屏中,同时将系统设置等常用功能整合到了Ch ...

  8. learning at command AT+CEREG

    AT command AT+CEREG [Purpose]        Learning how to query the network registration status   [Eeviro ...

  9. highcharts,highStock 中文图表配置

    感谢开源的支持! https://github.com/hcharts/highcharts-zh_CN

  10. Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map<Doubl ...