旅程伊始:Yak 语言环境安装与搭建环境
Yak 语言环境有两种使用方法:
- 【推荐】使用 Yakit 内置的 Yak 引擎 使用 Yak 语言环境
- 直接使用 Yak 引擎,使用命令行调用
yak [your-script].yak
执行代码
#
【推荐】在 Yakit 中使用内置的 Yak 引擎Yakit 是 Yak 的衍生项目,Yak 语言核心提供了非常强大的安全能力,但是限于使用形式,用户必须学习 Yak 语言并同时具备对安全的一定理解。
为了让 Yak 本身的安全能力更容易贴近大家的实际使用,我们在为 Yak 编写了 gRPC 服务器, 并使用这个服务器实现 / 构建了一个客户端:Yakit。
Yakit 是一个高度集成化的 Yak 语言安全能力的输出平台。
#
下载 Yakit 客户端#
安装 Yakit 客户端针对 MacOS 12 版本或高版本 Silicon-Chip 系列的 "Yakit 已损坏" 的处理办法
在新版本的 MacOS 或 M1 芯片的系统下,安装会提示问题:
当遇到这个问题的时候,在 Terminal 中执行
sudo xattr -r -d com.apple.quarantine /Applications/Yakit.app
即可
#
使用 Yakit 下载核心 Yak 引擎Runner
来执行 Yak 代码#
使用 Yakit 中 推荐使用 Yak Runner 来编写代码
Yak 代码的自动补全已在 Yak Runner 中内置,通过直接和引擎通信来调度代码和产生补全,能保证在多平台下统一的 Yak 编程体验。
#
【专家】在系统中使用 Yak 引擎以下步骤是把核心引擎安装在系统中,可通过系统命令执行 Yak 脚本
- MacOs(Intel/M1) 安装
- Linux 安装
- Windows 安装
可能需要面对的依赖问题
Yak 中的 SYN 扫描技术需要用到 github.com/google/gopacket
我们在捕获数据包的时候,需要使用 libpcap 作为外部依赖,所以如果遇到 pcap 依赖问题,用户可以通过执行以下命令来安装 libpcap。
brew install libpcap
在 MacOS 下,使用 Yak 是非常简单的事情,直接执行:
bash <(curl -sS -L http://oss.yaklang.io/install-latest-yak.sh)
即可安装完成:
Install for Darwin(MacOS) intel/m1 fit-------------------------------------Downloading for yak_darwin_amd64--2021-07-20 14:41:42-- https://yaklang.oss-cn-beijing.aliyuncs.com/yak/latest/yak_darwin_amd64.........yak_darwin_amd64 100%[====================================================================================>] 43.64M 1.63MB/s 用时 28s
2021-07-20 14:42:11 (1.54 MB/s) - 已保存 “yak_darwin_amd64” [45756184/45756184])
Chmod +x yak_darwin_amd64Start install yak_darwin_amd64 (ADD Yak to ENV PATH)Password:Sorry, try again.Password:[INFO] 2021-07-20 14:42:22 +0800 [default:log.go:178] current yak binary: /Users/v1ll4n/Projects/yaklang/yak_darwin_amd64[INFO] 2021-07-20 14:42:22 +0800 [default:log.go:178] installed yak... now you can exec `yak version` to check...Yak Language Build Info: Version: v0.9.7a2-ff28a9389f7bd7538de20468b4a096258dfe3ce6 GoVersion: go version go1.15.13 darwin/amd64 GitHash: ff28a9389f7bd7538de20468b4a096258dfe3ce6 BuildTime: Mon Jul 19 17:45:48 2021 +0800
Cleaning cache file...Finished
可能的依赖问题:
Linux 平台的 Yak 是通过静态编译的,一般来说是不需要额外安装 libpcap
但是如果静态编译版本出现了问题,导致 Yak 引擎不可用,可下载"非静态编译"版本使用。
"非静态编译" 版本需要通过安装 apt install libpcap
来解决 libpcap.so
缺失的问题。
大多数情况下,用户可以通过以命令来安装,Linux x64 版本的 Yak 发行版。
bash <(curl -sS -L http://oss.yaklang.io/install-latest-yak.sh)
安装过程基本同 MacOS 平台。
依赖说明:
由于 SYN 扫描功能的需要,Windows 版本需要安装依赖
如果用户之前有安装过 Nmap,那么一般不需要额外处理。
如果出现了依赖缺失:可以安装 npcap for Common Windows Version
- 以管理员权限打开
cmd
- 安装 Yak 二进制程序 在打开 cmd 之后,输入如下代码并执行
powershell (new-object System.Net.WebClient).DownloadFile('https://yaklang.oss-cn-beijing.aliyuncs.com/yak/latest/yak_windows_amd64.exe','yak_windows_amd64.exe') && yak_windows_amd64.exe install && del /f yak_windows_amd64.exe
安装说明
上述代码其实只有三个步骤(管理员权限下):
- 下载最新版本的
windows x64
的 yak 发行版 - 以管理员执行
yak_windows_amd64.exe install
安装 yak 到本地可执行目录下 - 删除刚刚下载的文件
- 在安装完成之后,可以在随意一个命令行中执行
yak version
来验证
简易的安装事例如下:
#
安装 VSCODE 并使用 Yak 插件VSCode 插件维护程度和维护的频度不高
#
确保 Yak 安装完毕当我们 Yak 引擎安装完毕之后,通过在命令行执行 yak version
Yak Language Build Info: Version: v0.9.7a2-ff28a9389f7bd7538de20468b4a096258dfe3ce6 GoVersion: go version go1.15.13 darwin/amd64 GitHash: ff28a9389f7bd7538de20468b4a096258dfe3ce6 BuildTime: Mon Jul 19 17:45:48 2021 +0800
#
安装 VSCODE 并使用 Yaklang VSCODE 插件虽然我们努力让编写 Yak 脚本是一件简单的事情,但是我们仍然需要一些辅助工具来帮助大家更快的编写脚本。
tip
虽然 Yak 语言本身的语法非常简单,但是如果想要使用 Yak 各种内置库的时候,还是需要一些提示,可能可以有效的避免用户频繁查阅官方文档。
因此我们基于 Vscode 研发了一个简易的 Yak 语言插件。
如果想要使用这个语言插件,我们可以先安装 VSCODE
在安装成功之后,我们在插件页搜索 yaklang
即可搜索到相关插件
安装好插件之后,我们就可以在任何地方开始编写你的 Yak 脚本了!
在 VSCode 中,我们的插件如何帮助我们编写 Yak 脚本?
- 当你的代码文件以
.yak
为后缀结尾时,会自动启动代码高亮 - 当你输入的一个内置库的名称后跟
.
的时候,将会自动提示代码补全,内容为这个库可用的接口。 - 动态语言猜测字段,当输入了一个变量名,并不是内置库,插件会自动提示出可能可用的字段名,或者函数名/方法名,虽然不一定完全准确,但是用户可根据这个筛选出自己想要的内容
由于研发精力有限,作者并不能完全投入过多精力来完善语言中的自动提示和补全,欢迎有志之士帮助我们完善 Yak 的生态。
#
安装失败?常见安装问题 Q&A:#
Yak 安装的原理是啥?- 安装脚本托管在阿里云OSS上,大家可以通过下载
http://oss.yaklang.io/install-latest-yak.sh
这个脚本查看具体的安装方法。 - 安装脚本会下载 yak 主程序到本地
- yak 程序会把自己的二进制复制到可执行的目录中(例如:
/usr/local/bin
或者C:\Windows\System32\
),然后执行yak version
来验证自己的安装过程。
#
如何删除 Yak ?找到 Yak 的安装路径,删除即可。
例如:which yak
在 *unix
系统下可以找到安装路径
#
安装失败应该如何操作?- 手动下载最新版本的 Yak 发行程序(选择合适自己的)。
- 在本机的管理员权限/root权限下,执行
yak_{{GOOS}}_amd64 install
命令。 - 执行成功之后,查看
yak version
命令是否能成功执行。
pcap/libpcap
依赖出现问题?#
- 不同平台的解决方式不一样,但是
*unix
操作系统下,一般来说brew/apt/yum install libpcap
即可解决。 - windows 平台下,大家可以通过下载并安装
npcap for Common Windows Version
来解决。
#
手动下载 / 安装danger
如果遇到 pcap 依赖问题,请遵循上面的步骤解决。
- MacOs(Intel/M1) x64 下载
- Linux x64 下载
- Windows x64 下载
点击这里下载 yak_darwin_amd64
在下载完成之后,执行
chmod +x yak_darwin_amd64 && ./yak_darwin_amd64 install
即可安装;
在确认 yak version
命令执行成功之后,一般来说即可删除下载的文件 ./yak_darwin_amd64
点击这里下载 yak_linux_amd64
在下载完成之后,执行
chmod +x yak_linux_amd64 && ./yak_linux_amd64 install
即可安装;
在确认 yak version
命令执行成功之后,一般来说即可删除下载的文件 rm ./yak_linux_amd64
点击这里下载 yak_windows_amd64
可以手动把 yak_windows_amd64
放入执行目录中。