make-script-to-macOS App

0x00 : 需求

主要是Ghidra这个东西,每次启动都要命令行 GhidraRun,太麻烦了,所以就想把这个启动脚本封装成一个macOS的APP,方便使用。

0x01 : 过程

直接使用了 别人写好的appfiy.sh ,我用的是原作者的,链接里的是二次开发的,其实本质是一样的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env bash

APPNAME=${2:-$(basename "${1}" '.sh')};
DIR="${APPNAME}.app/Contents/MacOS";

if [ -a "${APPNAME}.app" ]; then
4echo "${PWD}/${APPNAME}.app already exists :(";
4exit 1;
fi;

mkdir -p "${DIR}";
cp "${1}" "${DIR}/${APPNAME}";
chmod +x "${DIR}/${APPNAME}";

echo "${PWD}/$APPNAME.app";

因为macOS下app本质是一个目录,所以只需要按照特定的格式构建这个目录即可。

1
2
3
4
5
6
7
8
9
10
11
cd /Applications/Ghidra.app
╭─    /Applications/Ghidra.app ·· ✔  at 12:51:35 
╰─
❯ ls
Contents Icon?
❯ tree .
.
├── Contents
│   └── MacOS
│   └── Ghidra
└── Icon\r

本来我是把ghrida的启动脚本直接放进来的,但是发现有一些目录的问题,索性直接绝对路径启动这个脚本好了(懒省事儿啊 hhh)

1
2
3
4
5
6
7
8
#!/usr/bin/env bash

#----------------------------------------
# Ghidra launch
#----------------------------------------


/Users/muhe/Tools/ghidra/ghidraRun

最后,图标可以先复制你想用的图片,然后对app右键,get info,点击信息栏上面的小图标,之后cmd+v就行了,也挺方便。

最后,就可以很舒服的启动了。

0x02 : 参考

shell-script-mac-apps