写在前面

之前小孩子不懂事,乱配这台 M1 mac mini 的环境,配得乱七八糟的,我又有环境洁癖,所以重置了重新配,留个记录做存档。

ClashX Pro

不太清楚这是什么东西,但是非常重要,略。

Homebrew 安装与配置

一个软件包管理系统,类似于 Ubuntu 的 apt-get,可以用来安装环境,也可以用来安装软件。

终端没有走代理,所以需要让终端走代理的端口。

1
2
3
4
5
6
7
8
9
# ClashX 代理示例
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

# 安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 路径配置,安装好之后会提示类似的命令,复制粘贴即可
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/your_user_name/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 更新 Homebrew
brew update

# 搜索相关的包
brew search [关键词]

# 查看 Homebrew 相关路径
brew --cache # 下载缓存路径
brew --prefix # 安装目录,通常是该路径的 Cellar 目录下

# 查看包的信息
brew info [软件名]

# 查看已安装的包
brew list # 所有的软件,包括 Formulae 和 Cask
brew list --formulae # 所有已安装的 Formulae
brew list --cask # 所有已安装的 Casks
brew list <package> # 列举某个 Formulate 或 Cask 的详细路径

# 列出可更新的软件
brew outdated

# 更新某个软件
brew upgrade # 更新所有
brew upgrade <package> # 更新指定软件

# 清理所有软件的旧版
brew cleanup

# 卸载某个软件
brew uninstall [软件名]
brew uninstall --force # 强制卸载

# 查看所有服务
brew services list:

# 单次运行某个服务
brew services run [服务名]

# 运行某个服务,并设置开机自动运行
brew services start [服务名]

# 停止某个服务
brew services stop [服务名]

# 重启某个服务
brew services restart

Homebrew cask install 和普通 install 区别:

Homebrew Cask 先下载软件后解压到统一的目录中(/opt/homebrew-cask/Caskroom),然后再软链到 ~/Applications/ 目录下,省掉了自己下载、解压、拖拽安装等步骤,同样的,卸载相当简单和干净,一句命令就可以完成。

安装 Homebrew cask :

1
brew install cask

更新 Homebrew Cask 命令:

1
brew update && brew upgrade brew-cask && brew cleanup

HomeBrew Cask 没有更新软件的命令,所以如果要更新软件得先卸载再安装:

1
brew cask uninstall APP && brew cask install APP

换源

1
2
3
4
5
6
7
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zshrc
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"

brew update

重置:

1
2
3
4
5
unset HOMEBREW_BREW_GIT_REMOTE
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git

brew update

系统设置

Xcode Command Line Tools

打开终端输入命令就会提示安装,如果没有提示可以在终端内用命令安装:

1
xcode-select --install

修改启动台行列数

1
2
3
4
5
6
7
8
9
10
11
12
# 设置列数为 9
defaults write com.apple.dock springboard-columns -int 9

# 设置行数为 6
defaults write com.apple.dock springboard-rows -int 6

# 重启 Dock 生效
killall Dock

# 恢复默认的列数和行数
defaults write com.apple.dock springboard-rows Default
defaults write com.apple.dock springboard-columns Default

终端配置

iTerm2

终端工具,支持主题配置、智能提示、历史记录等等。

1
brew install --cask iterm2

配置:

image-20230404154035755

image-20230404154108840

image-20230404154153957

image-20230404154242371

image-20230404154550033

oh-my-zsh

用于管理 zsh 的配置,zsh 的美化增强脚本,可以把终端搞得花里胡哨的,相关配置存储在 ~/.zshrc中。

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

插件:

1
2
3
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting

.zshrc 配置,不得不说,alias 是真的好用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="robbyrussell"

plugins=(
git
zsh-completions
zsh-autosuggestions
fast-syntax-highlighting
)

DISABLE_MAGIC_FUNCTIONS=true

zstyle ':omz:update' mode disabled

source $ZSH/oh-my-zsh.sh

export PATH="/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
eval "$(starship init zsh)"

# Disable brew auto update
export HOMEBREW_NO_AUTO_UPDATE=1
export ZSH="$HOME/.oh-my-zsh"

# Alias
alias ,ms="%PATH/TO/MY/SCRIPT%"
alias ,ip="ipconfig getifaddr en0"
alias ,sshconfig="vim ~/.ssh/config"
alias ,gitconfig="vim ~/.gitconfig"
alias c='code .'
# cd
alias ..='cd ../'
alias ...='cd ../../'
alias ..l.='cd ../../ && ll'
alias ....='cd ../../../'
alias ~="cd ~"
# alias -- -="cd -"
alias ll='ls -alhG'
alias ls='ls -G'

关掉 URL 特殊符号转义,取消下面内容的注释:

1
DISABLE_MAGIC_FUNCTIONS=true

禁用 zsh 自动更新

新版本的 zsh 禁用自动更新的方式稍微有点变化,取消下面内容的注释即可:

1
zstyle ':omz:update' mode disabled

starship

rust 写的一个终端的 prompt 工具.

1
2
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc

访达显示所有隐藏文件

快捷键:command + shift + .

永久设置:

1
defaults write com.apple.finder AppleShowShowAllFiles -boolean true;killall Finder

访达显示绝对路径

快捷键:option + command + P

设置在标题栏显示完整路径:

1
2
3
4
defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES;killall Finder

# 还原
defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder

访达预览插件

收集了很多插件的 github 项目地址:https://github.com/sindresorhus/quick-look-plugins

安装:

1
brew install highlight qlcolorcode qlimagesize qlstephen qlmarkdown quicklook-json webpquicklook qlvideo
  • highlight & qlcolorcode:预览语法高亮
  • qlcolorcode:代码文件预览时高亮
  • qlimagesize:预览图片显示图片大小
  • qlstephen:以纯文本的形式预览无拓展名或者未知拓展名的文件
  • qlmarkdown:预览渲染后的 markdown 文件
  • quicklook-json: 预览格式化后的 json 文件
  • webpquicklook:预览 webp 图片
  • qlvideo:预览 .mkv等非原生支持的视频格式文件
  • betterzipql:预览 zip 压缩包的内容和目录

image-20230405181519560

image-20230405181600048

编程相关

git

安装:

1
brew install git

配置:

1
2
git config --global user.name "C1everF0x"
git config --global user.email "Oui0jr@163.com"

代理:

1
2
git config --global http.proxy 'socks5://127.0.0.1:7890'
git config --global https.proxy 'socks5://127.0.0.1:7890'

pycharm

还没开始配置,要配 anaconda

clion

还没开始配置

vscode

安装了 picgo、ssh 等小插件,一般用来当文本编辑器看代码或者连服务器写博客,不运行代码。

Microsoft Remote Desktop Beta

微软官方的远程连接 win 的管理软件,用来连接老电脑。

Obsidian

写文档、学习笔记等,配置了 iCloud 多端同步,直接把库创在 iCloud 云盘里面就可以了。

image-20230407004908232

其他相关

微软三件套 + todo

不想用 wps。

image-20230407005018833

腾讯文档

多端同步,免费,用来写考研的月、日计划和其他的表格安排。

钉钉、腾讯会议

开晚点名或者开会用。

QQ、微信、telegram

略。

力扣

每日一题。

不背单词

坚持背单词,百利无一害。

OBS

录屏。

百度、阿里网盘

总会用到。

网易云、QQ音乐

一个日常听,一个用来听周董陈奕迅。

Guitar Pro8

看吉他谱。

Logic Options+、GHUB

Master3s 和 G502 无线要用。

Picgo

负责上传图片到图床,可以联动 Typora 和 vscode,使用 Vue 主题。

官网

github上的release

踩坑:安装后打不开,显示文件损坏。

原因: PicGo 没有签名,所以会被 macOS 的安全检查拦下。

解决:信任开发者,会要求输入密码:

1
sudo spctl --master-disable

然后放行 PicGo :

1
xattr -cr /Applications/PicGo.app

然后就能正常打开。

配置是用腾讯云COS搞个存储桶当图床,每个月一两块。

配置文档

超级右键

扩展鼠标右键的菜单功能,比较实用,去 App Store 下的免费版。

image-20230404005107146

效果:

image-20230404005233415

Speed Player

浏览器插件,可以突破某种限制倍速播放视频,百度云看网课的时候用处很大。

Keka

压缩和解压用,类似于 Bandzip。

Mos

优化鼠标和改鼠标滑轮滚动方向(mac 鼠标滑轮滚动方向是反的,往上滚是往下走)

Monitor Control

改显示器亮度,非苹果官方认证的第三方显示器无法直接在控制中心调亮度。

TemperMonkey

油🐒。

Downie

很牛的一个视频下载器,什么网站的视频都能给链接就下。

ChatGPT客户端

github 上看到的一个项目,很有意思,down 下来用着还蛮方便的。

项目地址:https://github.com/lencx/ChatGPT

安装:

1
2
brew tap lencx/chatgpt https://github.com/lencx/ChatGPT.git
brew install --cask chatgpt --no-quarantine

安全相关

pwn 环境

采用 UTM 模拟 x86 虚拟机来搭建 pwn 环境,属于是曲线救国了。参考教程:视频教程博客教程

实际体验下来就是,目前任何一种在 arm 架构上搭 x86 虚拟机的方案(qemu、utm、docker),搞出来的虚拟机性能都有很大损失。UTM 在安装虚拟机的时候,非常非常非常慢,非常非常非常卡,把桌面移除掉以后命令行才流畅很多。

最后还是没有采用这个方案,应该是我的问题比较大,UTM 有三种网络模式,我的这台用模拟 VLAN 可以上网,但是宿主机没办法 ssh 连,用共享网络和桥接都没办法上网,但是可以宿主机 ssh 连,应该是校园网的网络问题,之后网络环境变化了可以再看看。

这个方案是可行的,但是现阶段还是不好用。

最后的方案是用学生机搭 pwn 环境,宿主机 ssh 连上去打。

init_pwn.sh:

这个是抄 wjh 师傅的,链接:https://blog.wjhwjhn.com/archives/840/,稍微有点改动,在 setuptools 处。后面的 git clone 需要提前配一下代理,不然脚本容易断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/bin/bash
set -e
cd ~
sudo apt-get -y update
sudo apt-get -y install tzdata
sudo apt-get -y install vim
sudo apt-get -y install libxml2-dev
sudo apt-get -y install libxslt-dev
sudo apt-get -y install libmysqlclient-dev
sudo apt-get -y install libsqlite3-dev
sudo apt-get -y install zlib1g-dev
sudo apt-get -y install python2-dev
sudo apt-get -y install libffi-dev
sudo apt-get -y install libssl-dev
sudo apt-get -y install wget
sudo apt-get -y install curl
sudo apt-get -y install gcc
sudo apt-get -y install clang
sudo apt-get -y install make
sudo apt-get -y install zip
sudo apt-get -y install build-essential
sudo apt-get -y install libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get -y install tk-dev
sudo apt-get -y install openssl
sudo apt-get -y install virtualenv
sudo apt-get -y install git
sudo apt-get -y install proxychains4


#setuptools 36.6.1 -> python2
wget https://files.pythonhosted.org/packages/a4/c8/9a7a47f683d54d83f648d37c3e180317f80dc126a304c45dc6663246233a/setuptools-36.5.0.zip
unzip setuptools-36.5.0.zip
cd setuptools-36.5.0
sudo python2 setup.py install
cd ../
sudo rm -rf setuptools-36.5.0 setuptools-36.5.0.zip

#setuptools 65.4.1 -> python3
sudo apt-get install python3-setuptools

#pip
wget https://mirrors.aliyun.com/pypi/packages/53/7f/55721ad0501a9076dbc354cc8c63ffc2d6f1ef360f49ad0fbcce19d68538/pip-20.3.4.tar.gz
tar -zxvf pip-20.3.4.tar.gz
cd pip-20.3.4
sudo python2 setup.py install
sudo python3 setup.py install
cd ../
sudo rm -rf pip-20.3.4 pip-20.3.4.tar.gz

sudo pip2 config set global.index-url https://mirrors.aliyun.com/pypi/simple
sudo pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple

sudo python2 -m pip install --upgrade pip
sudo python3 -m pip install --upgrade pip

sudo pip2 install pathlib2

#pwntools 4.7.0
sudo pip2 install pwntools==4.7.0
sudo pip3 install pwntools==4.7.0

#pwndbg
git clone https://github.com/pwndbg/pwndbg.git
cd pwndbg
./setup.sh
cd ../

#Pwngdb
git clone https://github.com/scwuaptx/Pwngdb.git
cp ~/Pwngdb/.gdbinit ~/
sed -i 'N;2 i source ~/pwndbg/gdbinit.py' ~/.gdbinit
sed -i '/peda/d' ~/.gdbinit

#one_gadget
sudo apt-get -y install ruby-dev
sudo gem install one_gadget

#seccomp-tools
sudo gem install seccomp-tools

#patchelf
sudo apt-get -y install patchelf

#glibc-all-in-one
git clone https://github.com/matrix1001/glibc-all-in-one.git

#ln python2 -> python
sudo ln -s /usr/bin/python2 /usr/bin/python

#ropper
sudo pip3 install capstone filebytes unicorn keystone-engine ropper

#qemu-system
sudo apt-get -y install qemu-system

docker 的也搭了一套,感觉还行,配合着用。

参考教程:https://blog.csdn.net/qq_25755011/article/details/115541221

配置:m1 mac mini,16g 运存,512g 硬盘,Ventura 13.3

image-20230405233516740

sqlmap

sql 注入一把梭。

1
brew install sqlmap

nmap

扫机子等等。

1
brew install nmap

masscan

扫端口。

1
brew install masscan

binwalk

文件分析,也就打 ctf 拿出来用用,解隐写题.

1
brew install binwalk

dirsearch

扫目录的,官网:https://github.com/maurosoria/dirsearch

1
2
3
4
cd /Documents/sec
git clone https://github.com/maurosoria/dirsearch.git
# 创建软链接
sudo ln -s /Users/c1everf0x/Documents/sec/dirsearch/dirsearch.py /usr/local/bin/dirsearch

wireshark

流量分析

1
brew install --cask wireshark

010editor

看二进制文件。

参考资料

每一行都是完整的 url 链接

https://www.sqlsec.com/2022/01/monterey.html

https://cn-sec.com/archives/1620371.html

https://wangze.tech/environment/#其他软件

http://mirrors.ustc.edu.cn/help/brew.git.html

https://www.jianshu.com/p/7421f7a03e07

https://ihtcboy.com/2018/09/30/2018-09-30_程序员的macOS系列:Mac开发环境配置/