Mac搭建环境

前言

本文主要记录的是CTF比赛 Crypto类中环境的搭建,根据本人的需要会随时更新文章,等不更新了就说明环境基本没什么变化了。

系统

Homebrew的安装(二进制文件安装似乎不是很好用,总是报错):

1
2
3
4
5
6
7
# https://brew.sh/index_zh-cn
# 或者使用命令;
# 访问bin:https://github.com/Homebrew/brew/releases/tag/4.1.9,使用pkg安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" # 卸载
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 安装
brew doctor
brew cleanup

go环境安装:

1
2
# https://go.dev/dl/
brew install go

hugo安装:

1
2
3
sudo chown -R $(whoami) /usr/local/opt
chmod u+w /usr/local/opt
brew install hugo

python

python的环境搭建比较简单,只需要安装几个固定的库就可以了,vscode 就能满足条件,这个不需要其他太多的东西,常用的库有如下几个:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gmpy2
pycryptodome
sympy # 自带mpmath
numpy
pwntools #https://pwntools-docs-zh.readthedocs.io/zh_CN/dev/install/binutils.html#mac-os-x
# pwntools的安装需要预先安装binutils ,最好的方式是git clone 下来之后用shell安装
git clone https://github.com/Gallopsled/pwntools-binutils.git
cd pwntools-binutils/
cd macos
./install_all.sh # 出错是正常的,因为架构的问题,安装不上arm的版本没关系
# 可以试试install.sh 选择全安装在mac上安装和构建花了很久,而且报错很多

写一个python的环境安装txt吧:

1
2
3
4
5
6
7
8
# mac os env
# requirements.txt
gmpy2
pycryptodome
sympy
numpy
pwntools
pyelftools == 0.29

pwntools安装

python3.9的支持似乎不是很好,准备一个3.10.11试试,这里有两种下载的方式,一种是源码,另一种是安装文件,其中源码提供了tgz文件,这里先用安装包安装了,太麻烦了:

1
2
#https://www.python.org/downloads/macos/
#https://www.python.org/downloads/release/python-31013/

可以发现python3.10的启动是通过python3.10的bash指令启动,而不是python3,需要将python3.10.11设置为默认的python版本,并设置相关的库。(看下面,不用设置,改vsc的就行,直接在python3.10里面安装库)

反转了,是版本问题,直接改vsc的配置,然后把pwntools的其中依赖库改为0.29🔗:

1
pip3 install pyelftools==0.29 # 完事

pwntools的安装有些麻烦,在mac上构建binunits总会有各种奇怪的错误:

1
2
3
4
5
6
7
brew cleanup binutils 
brew install binutils 
brew reinstall binutils
 echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.profile
 export LDFLAGS="-L/usr/local/opt/binutils/lib"
 export CPPFLAGS="-I/usr/local/opt/binutils/include"
 brew update

还有一些github开源的工具,都可以安装,不过后者就是一些固定的脚本,最后就是一些自己收集的现成脚本之类的了。

mac下python的环境配置,在当前打开的工作区中,也可以把这些加入用户的设置中(settings.json):

1
2
3
4
5
"code-runner.runInTerminal": false, // 这里的话true是在终端输出结果,false是在输出栏那边输出
    "python.pythonPath": "/usr/local/bin/python3",
    "code-runner.executorMap": {
        "python": "python3 -u"
    },

Sagemath

sage是一个开源的数学软件,用于进行一些数学运算,特别是有关代数的相关运算。

sage对于windows的支持在9.3,而在linux上的支持较新,如果在linux上安装也是可以的,不过在mac上可以直接安装sage,毕竟sage提供了很多快捷的函数。

sage的二进制版本下载:https://github.com/3-manifolds/Sage_macOS/releases。因为笔者的笔记本还是Intel的处理器,所以下载的是x86的dmg文件,现在的Mac应该下载的都是ARM版本的了吧(大概)。截止到2023年秋季,sagemath对于Mac支持到了10.x的版本,相比Windows新了不少,而且直接下载mac版本的sage,可以不需要Linux安装sage那么麻烦。

下载完成后直接拖动就行了,一般情况下不需要配置多余的内容。此时下方栏中会有一个sage的图标,点开的时候会提供选项是进入哪个环境。比如会有一个shell和jupyter的环境可以选择,一般个人习惯用jupyter了,比如可以选择jupyter v7,需要注意的是,sage里面需要重新安装上面提到的库才能运行,否则是无法运行上面的库中的函数,也无法导入。

sage安装包安装时没问题的,可以正常打开。

虚拟机

虚拟机用的是Vmware的Fusion 13Pro,平时快照,备份都还可以。

其他软件和应用

CyberChef

chef是一个集合了很多功能的软件,无论是在线还是本地,都能使用不仅包含编码、加密解密、查看文件等功能。

ciphey

ciphey是一个自动工具,但是一般情况是对于英文的识别更好,可以自动解码复杂的编码过程之后的字符串。相关链接:🔗

1
2
python3 -m pip install ciphey --upgrade
python3 -m pip install -U ciphey

相比chef,ciphey 在处理较为庞大的数据的时候更有优势,但是如果是操作较为复杂的情况下,而且数据规模不大,chef更有优势一些。

还有一个问题:

Ciphey doesn’t work on Windows with Python 3.9+, use Python 3.7 or Python 3.8. Other platforms are fine with Python 3.9, Python 3.10 doesn’t work.

也就是说,这波只能用python3.9跑了,算了,再下一个3.8,我佛了:

1
2
https://www.python.org/downloads/release/python-3810/
brew install ciphey

总算能用了卧槽了。

yafu

这是一个集合了多种分解大数的工具,但是有些情况下分解出来的可能是合数,如过模数的生成过程小质数的bit大小相同,则需要判断结果中长度,如果有明显的区别,可能是因为没有分解彻底。

如果需要运行在虚拟机中,可以考虑安装一个win10的虚拟机,占用不是特别大(安装的软件很少的情况)。

这个东西不行就算了,还是整个库吧,配个环境累的不行,真绷不住了。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy