信息 |
---|
注意 由于Mac现在开始使用`Apple Silicon CPU`,所以本文的适用机器是Arm架构的MacBook、Mac mini等 |
参考资料:
快速开始
上手验机
- 查序列号。官网查询
- 开箱。检查外观
- 开机
- 点击左上角的苹果按钮,点击关于本机
- 点击系统报告
- 核对型号参数
- 点击电源,核对效能信息中的循环计数 10次以下为正常
- 自检硬件(可选)
- 关机,断开其他连接设备
- 长按开机键,直到出现选项
- 长按command+d
- 选择语言
- 选择我同意
在线屏幕检测
系统设置
基本设置
取消 4 位数密码限制
代码块 |
---|
|
pwpolicy -clearaccountpolicies |
程序坞自动隐藏加速
代码块 |
---|
|
# 设置启动坞动画时间设置为 0.5 秒
defaults write com.apple.dock autohide-time-modifier -float 0.5 && killall Dock
# 设置启动坞响应时间最短
defaults write com.apple.dock autohide-delay -int 0 && killall Dock
# 恢复启动坞默认动画时间
defaults delete com.apple.dock autohide-time-modifier && killall Dock
# 恢复默认启动坞响应时间
defaults delete com.apple.Dock autohide-delay && killall Dock |
启动台自定义行和列
代码块 |
---|
|
# 设置列数
defaults write com.apple.dock springboard-columns -int 7
# 设置行数
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
# 重启 Dock 生效
killall Dock |
键盘设置
触控板设置
光标响应
- 打开系统偏好设置->触控板→光标与点按
- 勾选✔轻点来点按
- 跟踪速度移动到最快
三指拖移
日常软件
前置工作
允许安装任意来源的 App
代码块 |
---|
|
sudo spctl --master-disable |
然后前往系统偏好设置->安全性与隐私→点击左下角的小锁
工具依赖
代码块 |
---|
|
xcode-select --install |
HomeBrew
安装
代码块 |
---|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
国内环境安装命令
代码块 |
---|
|
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" |
安装完成后根据提示,运行下面的命令
代码块 |
---|
|
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" |
安装一下cask便于后面软件的安装
常用命令
更新Homebrew
搜索相关包
卸载软件
代码块 |
---|
|
brew uninstall keyword |
查看已安装的软件
软件商店
防火墙
首先要安装的就是防火墙,Mac自带的防火墙只能防御进入Mac的流量,但是遇到流氓软件向服务器上传我们的隐私数据就防御不了。同时也可以过滤广告哦。
我们可以选择两个软件,二选一即可
Little Snitch(许可证一次收费)
官网下载地址
许可证可以在淘宝进行购买,按需购入。
LuLu(开源,免费)
LuLu是一个开源的防火墙工具
安装也很简单
代码块 |
---|
|
brew install --cask lulu |
保持默认选项
有程序发起请求时,会跳出弹窗,我们只需要选择放行或者阻止即可,设置过一次或者配置好规则就可以一劳永逸。
附上常见的阻止🚫规则 blockyouxlist,勾选然后粘贴链接即可
1Password
非常值得入手的密码管理工具,只需要记住一个密码就可以自动保存、保存填写网站、SSH密钥、加密钱包等密码
淘宝购入年费会员也不贵,安全性也不错,全平台通用
代码块 |
---|
|
brew install --cask 1password |
官网链接
Raycast
Raycast是一个启动器,可以高效打开文件、软件、网站并执行各种便捷操作,可以代替Mac 自带的 「焦点(Spotlight)」同样brew安装
代码块 |
---|
|
brew install --cask raycast |
也可以官网下载dmg文件。官网下载地址
插件
以下是一些推荐的插件
Battery
一个开源的电池保护工具
代码块 |
---|
|
brew install --cask battery |
使用方法:电池充到80停止
Keka
压缩解压工具
代码块 |
---|
|
brew install --cask keka |
官网下载
IINA
视频播放器
代码块 |
---|
|
brew install --cask iina |
shottr
纯净的截屏工具
长截图,ocr,智能打码,贴图,取色等功能
代码块 |
---|
|
brew install --cask shottr |
官网下载
ishot
国产多功能截屏工具
长截图,录音,录屏,ocr,贴图,取色等功能
官方下载
Bob or TTime
两款都是优秀的翻译软件,可以划词翻译和截图翻译
Bob TTime
Bob是老牌mac工具,目前在Appstore可以下载,而github版本已停止维护
可以下载免费的bob插件使用
TTime是新晋的开源工具,可以自己配置ocr和翻译的api,可以申请大厂的api接口,都有免费额度,足够个人使用了
Qspace
一款多窗口布局的文件管理工具
官方下载
免费版与专业版的区别
Rectangle
快捷键分屏
代码块 |
---|
|
brew install --cask rectangle |
Obsidian
优秀的笔记工具。可以更改主题,安装各种插件。
同步可以用github。官网下载
KeyboardHolder
有些时候我们会遇到总是频繁切换中英文输入法,或者标点的场景。
使用这款工具就可以记住场景,自动切换
代码块 |
---|
|
brew install --cask keyboardholder |
Motrix
开源的下载器,支持HTTP, FTP, BitTorrent, Magnet等
代码块 |
---|
|
brew install --cask motrix |
PDF Expert
Mac上非常优秀的Pdf编辑、查看、管理工具
官网
PDFGear
免费的PDF编辑、阅读工具
自带AI阅读PDF,OCR识别
官网
Wechat微信
AppStore下载
官网下载
Telegram
代码块 |
---|
|
brew install --cask telegram |
Discord
代码块 |
---|
|
brew install --cask discord |
NetNewsWire
RSS阅读器
代码块 |
---|
|
brew install --cask netnewswire |
鼠须管Squirrel输入法
Rime输入法
开源,高度自定义
代码块 |
---|
|
brew install --cask squirrel |
配置
自动化配置脚本👉https://github.com/Mark24Code/rime-auto-deploy/tree/main
安装依赖 ruby3
执行下面的代码
代码块 |
---|
|
git clone --depth=1 https://github.com/Mark24Code/rime-auto-deploy.git --branch latest
cd rime-auto-deploy
./installer.rb |
开发配置
iTerm2
没有一个好看的终端怎么行
代码块 |
---|
|
brew install --cask iterm2 |
美化
美化可以使用Starship
代码块 |
---|
|
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc |
卸载sharship
- 删除 shell 配置中~/.zshrc。用于初始化 Starship 的所有行
- 删除 Starship
Tmux
安装
终端复用神器
教程
Tmux 使用教程- 阮一峰的网络日志
Tmux使用手册
配置文件
代码块 |
---|
|
#tmux attach 如果无分离终端则新建
new-session
# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind ' " '
unbind %
bind -r k select-pane -U # 绑定k为↑
bind -r j select-pane -D # 绑定j为↓
bind -r h select-pane -L # 绑定h为←
bind -r l select-pane -R # 绑定l为→
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf; display-message "Config reloaded.."
bind V source-file ~/.tmux/layout1 |
代码块 |
---|
|
mkdir ~/.tmux
nano ~/.tmux/layout1 |
代码块 |
---|
|
selectp -t 0 # select the first (0) pane
splitw -v -p 50 # split it into two halves
selectp -t 1 # select the new, second (1) pane
splitw -h -p 50 # split it into two halves
selectp -t 0 # go back to the first pane |
完成后
之后使用的话,在终端输入 tmux
然后 Ctrl + B 再按 Shift + V就可以分屏了
常用命令
最大化【Ctrl+b z】
复制模式 q退出 【Ctrl+b [】
窗口列表 【Ctrl+b w】
切换窗口 【Ctrl+b 0~9】
会话列表 【Ctrl+b s】
挂起 【Ctrl+b Ctrl+z】
Git
代码块 |
---|
|
# 配置邮箱
git config --global user.email "xxxxx@xxx.com"
# 配置用户名
git config --global user.name "xxx" |
Python
在调试Python的时候可能遇到不同的环境问题,在这里先使用pyenv进行本地环境配置,后面如果做机器学习、深度学习等使用conda虚拟环境配置
配置shell环境
代码块 |
---|
|
echo 'eval "$(pyenv init -)"' >> ~/.zshrc |
查看可安装的版本
安装与卸载
代码块 |
---|
|
pyenv install 具体版本
pyenv uninstall 具体版本 |
查看已安装的版本
代码块 |
---|
|
#当前版本
pyenv version
#查看已经安装的Python版本
pyenv versions |
版本切换
代码块 |
---|
|
# shell 会话设置 只影响当前的shell会话
pyenv shell <python版本>
# 取消 shell 会话的设置
pyenv shell --unset
# local 本地设置 只影响所在文件夹
pyenv local <python版本>
# global 全局设置 一般不建议改变全局设置
pyenv global <python版本> |
信息 |
---|
注意pyenv 的 global、local、shell 的优先级关系是:shell > local > global |
JAVA
下载安装之后。再安装 jenv 便于切换环境
配置zshrc环境
代码块 |
---|
|
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc |
安装完成后
代码块 |
---|
|
#查看当前的 Java 版本
jenv version
#列出目前 jenv 所有可切换管理的版本
jenv versions
#手动添加本地的 Java Home 路径
jenv add /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/
#global 全局设置 一般不建议改变全局设置
jenv global <java 版本>
#shell 会话设置 只影响当前的shell会话
jenv shell <java 版本>
#取消 shell 会话的设置
jenv shell --unset
#local 本地设置 只影响所在文件夹
jenv local <java 版本> |
Docker
代码块 |
---|
|
brew install --cask docker |
OrbStack
OrbStack 是一种在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻便且简单的方法。可以将其视为强大的 WSL 和 Docker Desktop 替代方案,全部集成在一个易于使用的应用程序中
Docker切换OrbStack
代码块 |
---|
|
docker context use orbstack |
在设置中可以进行换源
代码块 |
---|
|
{
"ipv6": true,
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://mirror.baidubce.com",
"https://kn77wnbv.mirror.aliyuncs.com",
"https://y0qd3iq.mirror.aliyuncs.com",
"https://6kx4zyno.mirror.aliyuncs.com",
"https://0dj0t5fb.mirror.aliyuncs.com",
"https://docker.nju.edu.cn",
"https://kuamavit.mirror.aliyuncs.com",
"https://y0qd3iq.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
} |
Parallels Desktop
Mac上性能最好的虚拟化工具
UTM
UTM 是一个功能齐全的系统模拟器和虚拟机主机,适用于 iOS 和 macOS。它基于 QEMU。所以可以模拟x86、ARM64 和 RISC-V。
代码块 |
---|
|
brew install --cask utm |
Vulnhub
kali攻击机上官网下载iso文件导入即可
官网下载
然后到vulnhub查找自己想要练习的靶机,并下载ova
vulnhub vulnhub国内镜像
代码块 |
---|
|
cd Downloads
tar xvf xxx.ova |
解压完成后安装一下 qemu
转换成qcow2格式
代码块 |
---|
|
qemu-img convert -O qcow2 xxx-disk001.vmdk xxx.qcow2 |
打开UTM,选择左上角➕,新建选择模拟->其他→勾选跳过 ISO 启动->选择内存等->继续->填写名字→保存
在主页面能看到新建的机器->右击编辑->选择QEMU→取消勾选UEFI启动
右击IDE Drive删除
再点击驱动器下方的新建->导入->选择刚刚生成的qcow2文件即可
x86
在网上下载你想要模拟的x86系统的iso文件
打开UTM->左上角➕->选择模拟->linux(或者windows)->调整内存->驱动器大小->名字→完成
之后就可以正常打开使用了
VirtualBox
Virtualbox是一个开源的虚拟机工具
可以在官网下载安装。官网下载
Virtualbox更加适用于打靶机的情况,比如 hackmyvm 靶场中大部分的靶机都是适配Virtualbox的
Vmware Fusion
Vmware是除了PD以外非常优秀的虚拟机工具,如果觉得PD收费太高,那么可以选择 Vmware
官网下载
4C21U-2KK9Q-M8130-4V2QH-CF810
Firefox
开源浏览器
代码块 |
---|
|
brew install --cask firefox |
Arc
非常好看的浏览器,垂直标签栏能更好的保存网站分类
代码块 |
---|
|
brew install --cask arc |
Electerm
支持ssh/sftp的客户端
支持github,gitee同步
代码块 |
---|
|
brew install --cask electerm |
Vscode
代码块 |
---|
|
brew install --cask visual-studio-code |
官网下载
Miniconda
安装
下载安装包
官方链接 清华镜像
代码块 |
---|
|
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
sh Miniconda3-latest-MacOSX-arm64.sh |
在安装的最后会出现
代码块 |
---|
|
Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no]
[yes] >>> |
输入yes
此时安装包会向当前 SHELL 的配置文件(~/.zshrc)中写入 conda 初始化语句
查看conda版本,检查是否安装成功
配置
取消激活base环境
因为我们之前已经配置了本地python环境,为了区分用途[pyenv管理的python用于python开发等,conda用于机器学习、深度学习等]。
以上是我个人的习惯,如果只有单方面需求,使用对应的python配置方法即可。安装Miniconda 后,打开终端默认会激活 base 环境
所以通过命令取消掉
代码块 |
---|
|
conda config --set auto_activate_base False |
想要在终端激活conda中的虚拟环境的时候
代码块 |
---|
|
conda activate base[虚拟环境名] |
想要恢复默认激活base环境
代码块 |
---|
|
conda config --set auto_activate_base True |
conda-forge
conda-forge 是一个由社区维护的大量 Python 包的通道。 为 conda 增加 conda-forge 通道,可以安装更多的软件包
代码块 |
---|
|
conda config --add channels conda-forge |
设置通道优先级为 strict。当一个包同时位于 conda-forge 和 main 通道时,总是使用 conda-forge 提供的包
代码块 |
---|
|
conda config --set channel_priority true |
显示通道 URL
代码块 |
---|
|
conda config --set show_channel_urls true |
conda换源
代码块 |
---|
|
conda config --add default_channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set 'custom_channels.conda-forge' https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud |
设置 conda 使用更快的 libmamab solver
代码块 |
---|
|
conda install -n base conda-libmamba-solver
conda config --set solver libmamba |
conda虚拟环境
创建虚拟环境
代码块 |
---|
|
conda create -n py38 python=3.8 |
激活虚拟环境
查看已创建的虚拟环境
退出当前环境
删除环境
代码块 |
---|
|
conda remove -n 环境名字 --all |
删除环境钟的某个包
代码块 |
---|
|
conda remove -n 环境名字 包名 |
TensorFlow
安装
代码块 |
---|
|
conda install -c apple tensorflow-deps
pip install tensorflow-macos
pip install tensorflow-metal |
测试
代码块 |
---|
|
conda activate py38
python
import tensorflow as tf
print("tf version",tf.__version__)
print("tf gpu",tf.test.is_gpu_available()) |
Pytorch
安装
Anaconda
代码块 |
---|
|
conda install pytorch torchvision torchaudio -c pytorch-nightly |
pip
代码块 |
---|
|
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu |
Building from source
测试
代码块 |
---|
|
import torch
if torch.backends.mps.is_available():
mps_device = torch.device("mps")
x = torch.ones(1, device=mps_device)
print (x)
else:
print ("MPS device not found.")
Copy
The output should show:
tensor([1.], device='mps:0') |
安装一些常用的库
代码块 |
---|
|
pip install pandas matplotlib glob2 tqdm opencv-python scipy scikit-learn mlx |
Adobe全家桶
https://www.yuque.com/yihulaojiu-gsfg9/zz2qv5/vixkf6
渗透工具
注意因为渗透测试考虑到安全性,工具配置在虚拟机中更加合适,所以本文只介绍少数工具,详细信息请在 Kali 的 wiki 中查看
主机探测
代码块 |
---|
|
brew install nmap
brew install arp-scan |
抓包工具
Burpsuite
首先官网下载
点开dmg文件安装,将注册jar将其放入到 BP Jar 包的同级目录下:
注册jar下载
代码块 |
---|
|
cd /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app && "/Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java" \
"--add-opens=java.desktop/javax.swing=ALL-UNNAMED" "--add-opens=java.base/java.lang=ALL-UNNAMED" \
"--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" \
"--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" "-javaagent:BurpLoaderKeygen.jar" "-jar"\
"/Applications/Burp Suite Professional.app/Contents/Resources/app/burpsuite_pro.jar" |
显示激活窗口
另外打开一个终端
代码块 |
---|
|
/Applications/Burp\ Suite\ Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java \
-jar /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app/BurpLoaderKeygen.jar |
再运行下面的命令
代码块 |
---|
|
echo "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "--add-opens=java.base/java.lang=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "-javaagent:BurpLoaderKeygen.jar" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
echo "-Xmx2048m" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt |
那么激活完成,可以在应用程序中直接打开
Yakit
Yakit官网
选择macOS (Apple Sillion)
Wireshark
网络数据包分析
官网下载
承影
一款安全工具箱,集成了目录扫描、JWT、Swagger 测试、编/解码、轻量级 BurpSuite、杀软辅助功能
Github下载
SQL注入
文件分析
代码块 |
---|
|
brew install binwalk
brew install exiftool |
Hex Fiend
小巧的 Hex 文件查看器,支持自定义高亮选中展示
应用商店下载
Shambles
次世代嵌入式逆向工程神器
智能扫描漏洞,固件对比,环境模拟
官网
冰蝎
动态二进制加密网站(WebShell)管理客户端
Github下载
SiteSucker Pro
下载网站下载链接
下载最新版本的安装包:https://osx.metasploit.com/metasploitframework-latest.pkg
双击点开安装。安装路径为/opt/metasploit-framework/bin
配置环境变量
代码块 |
---|
|
echo 'export PATH="$PATH:/opt/metasploit-framework/bin/"' >> ~/.zshrc |
重新打开终端
代码块 |
---|
|
msfconsole
# 输入 y 确定初始化一个新的数据库
Would you like to use and setup a new database (recommended)? y |
Hashcat
密码破解神器
常见问题
xxx.app 已损坏,无法打开,你应该将它移到废纸篓/打不开 xxx,因为它来自身份不明的开发者解决方法
方法1 开启任何来源
先打开 系统偏好设置 -> 安全与隐私 -> 通用 选项卡,检查是否已经启用了 任何来源 选项。
如果没有这个选项,复制以下面的命令:
代码块 |
---|
|
sudo spctl --master-disable |
重新安装文件
方法2 应用签名
安装Command Line Tools 工具
打开终端工具输入如下命令:
代码块 |
---|
|
xcode-select --install |
打开终端工具输入并执行如下命令对应用签名:
代码块 |
---|
|
sudo codesign --force --deep --sign - (应用路径) |
应用路径:打开访达(Finder),点击左侧导航栏的 应用程序,找到相关应用,将它拖进终端命令- 的后面,然后按下回车即可,注意最后一个 - 后面有一个空格。
正常情况下只有一行提示,即成功:
/文件位置 : replacing existing signature
如遇如下错误:
/文件位置 : replacing existing signature /文件位置 : resource fork,Finder information,or similar detritus not allowed
先在终端执行:
代码块 |
---|
|
xattr -cr /文件位置(直接将应用拖进去即可) |
然后再次执行如下指令即可:
代码块 |
---|
|
codesign --force --deep --sign - /文件位置(直接将应用拖进去即可) |
绕过公证
打开终端,输入以下命令:
代码块 |
---|
|
sudo xattr -rd com.apple.quarantine /Applications/xxxxxx.app |
将上面的 xxxxxx.app 换成App名称,比如 Sketch.app
代码块 |
---|
|
sudo xattr -rd com.apple.quarantine /Applications/Sketch.app |
然后按键盘的回车键(return),输入密码,再按回车键,完成。