阿里云盘突破压缩包分享限制

淮城一只猫 奇技淫巧
阅读量 0 评论量 0

前言

都 2024 年了,还有网盘不支持压缩包分享,在网上搜索不是改后缀格式就是其他稀奇古怪的操作,后面找到 JuncoJet 写的 c 编译的 windows 下的小工具,但我这里是 macOS 环境,所以根据他的代码进行二改支持多平台。

源码

JuncoJeta 大佬的代码原来出处没有找到,是在某个爬虫博客看到的,感谢分享代码思路:

#include <windows.h>
#include <stdio.h>
char exe[1536] = {
	0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 
	0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 
	0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD, 0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68, 
	0x69, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F, 
	0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20, 0x44, 0x4F, 0x53, 0x20, 
	0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x50, 0x45, 0x00, 0x00, 0x4C, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x03, 0x0B, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 
	0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 
	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xC2, 0x95, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x40, 0x20, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x20, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 
	0xD8, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x60, 
	0x2E, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 
	0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x55, 0x89, 0xE5, 0x81, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x90, 0xB8, 0x00, 0x20, 0x40, 0x00, 0x50, 
	0xE8, 0x7B, 0x01, 0x00, 0x00, 0x83, 0xC4, 0x04, 0xB8, 0x22, 0x20, 0x40, 0x00, 0x50, 0xE8, 0x75, 
	0x01, 0x00, 0x00, 0x83, 0xC4, 0x04, 0xC9, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x55, 0x89, 0xE5, 0x81, 0xEC, 0x2C, 0x00, 0x00, 0x00, 0x90, 0x8D, 0x45, 0xE8, 0x50, 0xE8, 0xFE, 
	0x00, 0x00, 0x00, 0x83, 0xC4, 0x04, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x89, 0x45, 0xD4, 0xB8, 0x00, 
	0x00, 0x03, 0x00, 0x50, 0xB8, 0x00, 0x00, 0x01, 0x00, 0x50, 0xE8, 0x31, 0x01, 0x00, 0x00, 0x83, 
	0xC4, 0x08, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x50, 0xE8, 0x2B, 0x01, 0x00, 0x00, 0x83, 0xC4, 0x04, 
	0x8D, 0x45, 0xD4, 0x50, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8D, 0x45, 0xDC, 0x50, 0x8D, 0x45, 
	0xE0, 0x50, 0x8D, 0x45, 0xE4, 0x50, 0xE8, 0x15, 0x01, 0x00, 0x00, 0x83, 0xC4, 0x14, 0x8B, 0x45, 
	0xDC, 0x50, 0x8B, 0x45, 0xE0, 0x50, 0x8B, 0x45, 0xE4, 0x50, 0xE8, 0x51, 0xFF, 0xFF, 0xFF, 0x83, 
	0xC4, 0x0C, 0x89, 0x45, 0xD8, 0x8B, 0x45, 0xD8, 0x50, 0xE8, 0xFA, 0x00, 0x00, 0x00, 0x83, 0xC4, 
	0x04, 0xC9, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x87, 0x2C, 0x24, 0x55, 0x8D, 0x6C, 0x24, 0x04, 0x51, 0x89, 0xE9, 0x81, 0xE9, 0x00, 0x10, 0x00, 
	0x00, 0x85, 0x01, 0x2D, 0x00, 0x10, 0x00, 0x00, 0x3D, 0x00, 0x10, 0x00, 0x00, 0x7D, 0xEC, 0x29, 
	0xC1, 0x85, 0x01, 0x89, 0xE0, 0x89, 0xCC, 0x8B, 0x08, 0xFF, 0x60, 0x04, 0x8B, 0x45, 0xEC, 0xC3, 
	0xE8, 0xF7, 0xFF, 0xFF, 0xFF, 0x8B, 0x00, 0x8B, 0x00, 0xC3, 0xE8, 0xED, 0xFF, 0xFF, 0xFF, 0x50, 
	0xE8, 0xEB, 0xFF, 0xFF, 0xFF, 0x50, 0xE8, 0x95, 0x00, 0x00, 0x00, 0x81, 0xC4, 0x08, 0x00, 0x00, 
	0x00, 0xC3, 0x8B, 0x65, 0xE8, 0xE8, 0xD6, 0xFF, 0xFF, 0xFF, 0x50, 0xE8, 0x88, 0x00, 0x00, 0x00, 
	0xFF, 0xFF, 0xFF, 0xFF, 0x1A, 0x11, 0x40, 0x00, 0x32, 0x11, 0x40, 0x00, 0xE9, 0x7F, 0x00, 0x00, 
	0x00, 0x55, 0x8B, 0x6C, 0x24, 0x08, 0x8D, 0x44, 0x24, 0x0C, 0x89, 0x45, 0x00, 0x31, 0xC0, 0x89, 
	0x45, 0x04, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x89, 0x45, 0x08, 0xB8, 0x4C, 0x11, 0x40, 0x00, 
	0x89, 0x45, 0x0C, 0xB8, 0x40, 0x11, 0x40, 0x00, 0x89, 0x45, 0x10, 0x31, 0xC0, 0x89, 0x45, 0x14, 
	0x8D, 0x45, 0x08, 0x64, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0xFF, 0x25, 0x68, 0x20, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x25, 0x6C, 0x20, 0x40, 0x00, 0x00, 0x00, 
	0xFF, 0x25, 0x70, 0x20, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x25, 0x74, 0x20, 0x40, 0x00, 0x00, 0x00, 
	0xFF, 0x25, 0x78, 0x20, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x25, 0x7C, 0x20, 0x40, 0x00, 0x00, 0x00, 
	0xFF, 0x25, 0x80, 0x20, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x25, 0x84, 0x20, 0x40, 0x00, 0x00, 0x00, 
	0xFF, 0x25, 0x88, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0xD5, 0xE2, 0xCA, 0xC7, 0xB8, 0xF6, 0xBC, 0xD9, 0x45, 0x58, 0x45, 0xA3, 0xAC, 0xC7, 0xEB, 0xCA, 
	0xB9, 0xD3, 0xC3, 0xD1, 0xB9, 0xCB, 0xF5, 0xCE, 0xC4, 0xBC, 0xFE, 0xB4, 0xF2, 0xBF, 0xAA, 0xA3, 
	0xA1, 0x00, 0x70, 0x61, 0x75, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x20, 0x00, 0x00, 
	0x68, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x20, 0x00, 0x00, 0xCA, 0x20, 0x00, 0x00, 
	0xD3, 0x20, 0x00, 0x00, 0xE0, 0x20, 0x00, 0x00, 0xF1, 0x20, 0x00, 0x00, 0x01, 0x21, 0x00, 0x00, 
	0x08, 0x21, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 0x1E, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0xC3, 0x20, 0x00, 0x00, 0xCA, 0x20, 0x00, 0x00, 0xD3, 0x20, 0x00, 0x00, 0xE0, 0x20, 0x00, 0x00, 
	0xF1, 0x20, 0x00, 0x00, 0x01, 0x21, 0x00, 0x00, 0x08, 0x21, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 
	0x1E, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x76, 0x63, 0x72, 0x74, 0x2E, 0x64, 
	0x6C, 0x6C, 0x00, 0x00, 0x00, 0x70, 0x75, 0x74, 0x73, 0x00, 0x00, 0x00, 0x73, 0x79, 0x73, 0x74, 
	0x65, 0x6D, 0x00, 0x00, 0x00, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x66, 0x70, 0x00, 
	0x00, 0x00, 0x5F, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x61, 0x70, 0x70, 0x5F, 0x74, 0x79, 0x70, 0x65, 
	0x00, 0x00, 0x00, 0x5F, 0x5F, 0x67, 0x65, 0x74, 0x6D, 0x61, 0x69, 0x6E, 0x61, 0x72, 0x67, 0x73, 
	0x00, 0x00, 0x00, 0x65, 0x78, 0x69, 0x74, 0x00, 0x00, 0x00, 0x5F, 0x58, 0x63, 0x70, 0x74, 0x46, 
	0x69, 0x6C, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x5F, 0x65, 0x78, 0x69, 0x74, 0x00, 0x00, 0x00, 
	0x5F, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5F, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x33, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
int main(int argc, char *argv[])
{
	puts("阿里云盘压缩文件分享工具  -by JuncoJet\n");
	char s[MAX_PATH],s2[MAX_PATH];
	printf("拖放需要转换的压缩文件: ");
	if(argc>1){
		strcpy(s,argv[1]);
		puts(s);
	}else{
		scanf("%s",s);
	}
	char *buf=malloc(64*1024*1024);
	FILE *fd,*fs=fopen(s,"rb");
	int c,l=strlen(s);
	strcpy(s2,s);
	for(int i=l;i>0;i--){
		if(s2[i]=='\\'){
			c=++i;
			s2[i]='\0';
			break;
		}
	}
	strcat(s2,"fake_");
	strcat(s2,&s[c]);
	fd=fopen(s2,"wb");
	fseek(fs,0,SEEK_END);
	int fsize=ftell(fs),
		count=fsize/(64*1024*1024),
		mod=fsize%(64*1024*1024);
	fseek(fs,0,SEEK_SET);
	//printf("%x %x\n",fs,fd);
	//printf("%d %d %d\n",fsize,count,mod);
	if(mod)count++;
	fwrite(exe,1,sizeof(exe),fd);
	for(int i=0;i<count;i++){
		if(mod&&i+1==count){
	 		fread(buf,1,mod,fs);
			fwrite(buf,1,mod,fd);
		}else{
			fread(buf,1,64*1024*1024,fs);
			fwrite(buf,1,64*1024*1024,fd);
		} 	
	}
	fclose(fs);
	fclose(fd);
	free(buf);
	printf("\n文件: %s\n生成完成!\n",s2);
	system("pause");
}

二改

大致看了下是在压缩包二进制头部再添加一串 exe 这二进制文件,不太清楚是什么干嘛的,盲猜应该是修改文件类型的 MIME 数据?这里我使用 Golang 去编写:

package main

import (
	"fmt"
	"io"
	"os"
	"path/filepath"
)

const bufferSize = 64 * 1024 * 1024 // 64MB

func main() {
	fmt.Println("阿里云盘压缩文件分享工具  -by 淮城一只猫")

	// 获取文件路径
	var sourceFilePath string
	if len(os.Args) > 1 {
		sourceFilePath = os.Args[1]
		fmt.Println("文件路径: ", sourceFilePath)
	} else {
		fmt.Print("拖放需要转换的压缩文件: ")
		fmt.Scanln(&sourceFilePath)
	}

	// 打开原始文件
	sourceFile, err := os.Open(sourceFilePath)
	if err != nil {
		fmt.Println("无法打开文件:", err)
		return
	}
	defer sourceFile.Close()

	// 获取文件大小
	sourceFileInfo, err := sourceFile.Stat()
	if err != nil {
		fmt.Println("无法获取文件信息:", err)
		return
	}
	fileSize := sourceFileInfo.Size()

	// 创建新文件路径,添加 "fake_" 前缀
	dir, file := filepath.Split(sourceFilePath)
	newFilePath := filepath.Join(dir, "fake_"+file)

	// 创建新文件
	newFile, err := os.Create(newFilePath)
	if err != nil {
		fmt.Println("无法创建文件:", err)
		return
	}
	defer newFile.Close()

	// 固定的二进制内容 (类似于 exe 数组)
	exe := []byte{
		0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 
		0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
		// ...同上面数据
	}

	// 将 exe 数据写入新文件
	_, err = newFile.Write(exe)
	if err != nil {
		fmt.Println("写入文件失败:", err)
		return
	}

	// 创建缓冲区
	buf := make([]byte, bufferSize)

	// 分块读取原始文件并写入新文件
	totalRead := int64(0)
	for {
		// 从原文件读取数据到缓冲区
		n, err := sourceFile.Read(buf)
		if err != nil && err != io.EOF {
			fmt.Println("读取文件失败:", err)
			return
		}
		if n == 0 {
			break // 读取完成
		}

		// 将缓冲区内容写入新文件
		_, err = newFile.Write(buf[:n])
		if err != nil {
			fmt.Println("写入文件失败:", err)
			return
		}

		totalRead += int64(n)
		fmt.Printf("\r已处理: %d/%d bytes", totalRead, fileSize)
	}

	fmt.Printf("\n文件: %s\n生成完成!\n", newFilePath)
}

代码就不做解释了,上面该有的注释都有,最后打包成对应的可执行文件:

# Windows x64 平台
GOOS=windows GOARCH=amd64 go build demo/main.go
# Intel macOS 平台
GOOS=darwin GOARCH=amd64 go build demo/main.go

文件分享:

aDriveShareTools.zip
https://www.alipan.com/s/8wYCQE6tfU7
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

本压缩包就是根据上面脚本完成的,解押的时候建议用第三方解压缩工具,例如:Bandizip,自带的解押会提示损坏。

喵~