Mac安装upx
最近需要将exe文件打包到pod内部,为了减少包占用磁盘空间,需要借用upx对windows exe文件进行压缩。
1 概念:压缩工具
UPX 全称是 "Ultimate Packer for eXecutables",是一个免费、开源、编写、可扩展、高性能的可执行程序打包程序。换句话说一个可执行文件的压缩工具。
- UPX 可以压缩各种类型的可执行文件
- 压缩后的文件可以直接由操作系统执行
- 压缩过程不会修改源文件,也就意味着解压后直接可以得到原始文件
- 不会产生额外的动态库调用
对于一些不法分子来说,也会通过upx对病毒和木马进行加壳以躲避病毒的查杀。
2 安装upx
因为我使用的是mac系统,所以首先想到通过brew install来进行安装。但发现过程中会报各种各样的问题。于是参考官网教程一步一步走,最后安装成功。
- 在终端复制如下命令
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 输入配置到.zprofile配置文件
bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
- 重新执行brew install upx,即可安装成功

3 使用
upx压缩命令很简单upx + 可执行文件名
bash
upx aa.exe
拓展:
计算文件md5值
在文件传输过程中如果出现文件损坏或者打不开,第一时间应该计算文件md5值,查看是否在传输过程中有丢失
①linux:md5sum
bash
md5sum + 文件名

②mac:md5
bash
md5 + 文件名

③windows:Get-FileHash -Algorithm MD5
bash
打开powershell(shift+鼠标右键)
Get-FileHash -Algorithm MD5 + 文件名

检查图片是否损坏
今天客户反馈说JPG图片无法在浏览器中打开,于是首先想到图片是否损坏。
检测图片是否损坏主要是看文件头是否正确,文件内容是否正确。我这里以检测JPG的文件头为例:
- 分别读取JPG文件的头、尾字节。
- JPG图片格式:FFD8 和FFD9

如果是mac可以直接通过安装工具检测:
bash
# 安装图片检测工具
brew install imagemagick
# 检测图片是否损坏
magick identify -verbose example.jpg
如果图片未损坏则会出现下面结果: