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. js向一个数组中插入元素的几个方法-性能比较

    向一个数组中插入元素是平时很常见的一件事情.你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素. 但是这些已知的方法,并不意味着没有更 ...

  2. [NOIP 2014TG D1T3] 飞扬的小鸟

    题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...

  3. weblogic安装教程(以weblogic 11g为例)

    1.下载jdk和weblogic安装介质 一般的搭配是jdk1.5+weblogic92.jdk1.6+weblogic11g(weblogic10.3.6) jdk历史版本下载链接:http://w ...

  4. 使用Postman在Chrome下进行rest请求测试

    1.首先下载postman,我已经下载好,放在云盘里了. http://pan.baidu.com/s/1c1YoGKS 密码 dgfw 2.打开Chrome,点击更多工具->扩展程序~打开. ...

  5. C++中类的静态成员与实例成员的区别

    C++中类的静态成员与实例成员的区别 1.有static修饰的成员变量或成员函数称为静态成员. 2.在内存中,类的静态数据成员占有一块特定的内存空间,被该类的所有实例(对象)共享.而同一个类的不同对象 ...

  6. 机器学习---笔记----numpy和math包中的常用函数

    本文只是简单罗列一下再机器学习过程中遇到的常用的数学函数. 1. math.fabs(x): 返回x的绝对值.同numpy. >>> import numpy >>> ...

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

    为了让用户可以在流畅浏览应用界面的同时提供与应用相关的功能按钮,Windows 10系统在用户界面当中引入了侧边栏,侧边栏可以在用户有需要对应用或者系统进行操作时显示,在没有需要操作的时候自动隐藏,并 ...

  8. 笨办法06字符串(string)和文本

    代码如下: # coding : utf-8 x = "There are %d types of people." % 10 binary = "binary" ...

  9. 【转载】OpenCV 摄像头控制

    参考:[OpenCV] -- 简单摄像头操作 - 代码人生 - 博客频道 - CSDN.NET http://blog.csdn.net/qiurisuixiang/article/details/8 ...

  10. Java:多个文档合并输出到一个文档

    多个文档合并输出到一个文档 方法:Java NIO package First; import java.io.File; import java.io.FileInputStream; import ...