ArchiSteamFarm(以下简称 ASF)是基于 SteamKit2 制作的多账户模拟运行工具。基于 ASF 可以实现全自动挂卡、完成节日活动、命令行激活、交易 BOT 等功能。将 ASF 托管在云服务器中即可实现基于 ASF 的云挂卡功能。


生成 ASF 的配置文件

首先在asf.ifibe.com生成 ASF 运行所需的配置文件,分为全局配置文件ASF.JSON和 BOT 配置文件BOTNAME.JSON
请注意:asf.ifibe.com不会为您储存任何信息,该程序甚至可以脱机运行

生成全局配置文件

ASF.JSON的生成结构如下,此处主要配置 ASF 的运行行为,和管理员账户用于通过聊天窗口或 IPC 执行相应指令。

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
{
"AutoRestart": true,
"Blacklist": [],
"CommandPrefix": "!",
"ConfirmationsLimiterDelay": 10,
"ConnectionTimeout": 90,
"CurrentCulture": null,
"Debug": false,
"FarmingDelay": 15,
"GiftsLimiterDelay": 1,
"Headless": false,
"IdleFarmingPeriod": 8,
"InventoryLimiterDelay": 3,
"IPC": false,
"IPCPassword": null,
"LoginLimiterDelay": 10,
"MaxFarmingTime": 10,
"MaxTradeHoldDuration": 15,
"OptimizationMode": 0,
"Statistics": true,
"SteamMessagePrefix": "/me ",
"SteamOwnerID": 0,
"SteamProtocols": 7,
"UpdateChannel": 1,
"UpdatePeriod": 24,
"WebLimiterDelay": 300,
"WebProxy": null,
"WebProxyPassword": null,
"WebProxyUsername": null
}

生成 BOT 配置文件

BOTNAME.JSON的配置在 ASF 运行中是相互独立的,如果你有多个账户请分别为它们设置。

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
{
"AcceptGifts": false,
"AutoSteamSaleEvent": false,
"BotBehaviour": 0,
"CustomGamePlayedWhileFarming": null,
"CustomGamePlayedWhileIdle": null,
"Enabled": false,
"FarmingOrders": [],
"GamesPlayedWhileIdle": [],
"HoursUntilCardDrops": 3,
"IdlePriorityQueueOnly": false,
"IdleRefundableGames": true,
"LootableTypes": [1, 3, 5],
"MatchableTypes": [5],
"OnlineStatus": 1,
"PasswordFormat": 0,
"Paused": false,
"RedeemingPreferences": 0,
"SendOnFarmingFinished": false,
"SendTradePeriod": 0,
"ShutdownOnFarmingFinished": false,
"SteamLogin": null,
"SteamMasterClanID": 0,
"SteamParentalCode": null,
"SteamPassword": null,
"SteamTradeToken": null,
"SteamUserPermissions": {},
"TradingPreferences": 0,
"TransferableTypes": [1, 3, 5],
"UseLoginKeys": true
}

安装 ASF(Ubuntu 18.04 LTS 下)

由于 ASF 3.0 后更新了对 Linux 运行的支持,所以新版本的 ASF 将不需要单独配置.NET Core 依赖,请直接下载 ASF 最新版并直接运行。如果有特殊需要,可以参考内容 1 对于.NET Core 的依赖配置。

配置.NET Core 依赖这一步不是必须的

根据需求在命令行使用apt-get install安装以下依赖包

1
2
3
4
5
6
libcurl(libcurl4、libcurl3
libicu(您的发行版上的最新版,例如 libicu60
libkrb5-3(krb5-libs)
liblttng-ust0(lttng-ust)
libssl(libssl1.1、openssl-libs、您的发行版中最新的 1.1.X 版本)
zlib1g(zlib)

下载 ASF 安装包

直接在ASF 发布页面找到适合当前操作系统的 ASF 版本并下载 zip 包。

使用unzip命令解压下载的 ASF.zip 此时得到的目录树如下

1
2
3
4
5
6
7
8
9
10
\ASF (放置您所有与 ASF 相关的东西)
├── ASF shortcut.lnk (ASF 的快捷方式,可选)
├── Config shortcut.lnk (配置的快捷方式,可选)
├── Commands.txt (您记录的一些命令,可选)
├── MyExtraScript.bat (一些您使用的相关脚本,可选)
├── ... (总之这里是您自己存放的一些与 ASF 有关的东西,都是可选的)
└── Core (ASF 本身使用的文件夹,解压 ASF 安装包的地方)
├── ArchiSteamFarm.dll
├── config
└── (...)

在 ASF 目录中为 ArchiSteamFarm 程序赋权,在命令行输入sudo chmod +x ArchiSteamFarm即可。


配置 ASF

将第一步在asf.ifibe.com中生成的ASF.JSONBOT.JSON复制到 ASF 目录中的config文件夹中。


运行 ASF(挂载 ASF 到云端)

测试 ASF 配置是否正确

在 ASF 目录中使用命令行输入./ArchiSteamFarm启动 ASF,查看控制台输出,如果账户在每次登入时都需要输入二次验证即可使用 Screen 方式将 ASF 进程挂载于云端,但这种方式效率低下,所以不做推荐。

Screen 方式运行 ASF

在 ASF 目录中新建 Screen 会话窗口并运行 ASF 程序即可,具体的 Screen 命令可以参考以下

1
2
3
4
5
$ sudo apt-get install screen    #安装Screen
$ screen -S <name> #创建一个Screen窗口
$ screen -ls #列出所有活动的Screen窗口
$ screen -r <id> #恢复指定id的会话
$ kill -9 <id> #结束指定id的进程

在 Screen 中配置完成后使用LCTRL+A+D分离会话,此时可安全退出。

PM2 方式运行 ASF(推荐)

使用 PM2 运行可以参考Pm2 作为进程辅助管理器的简单使用 ,推荐将开启二次验证账户的验证密钥导入到 ASF 中使用(PM2 运行需要 ASF 已配置相应账户的 2FA)。


使用 ASF-ui

ASF-ui 是 ASF 较为友好的 web 交互平台,通过 IPC 进行通讯,可以在 web 页面管理和查看 ASF 的运行。

修改ASF.JSON中的 IPC 项为 true

1
"IPC": true,

运行 ASF 后浏览器打开LocalHost:1242即可访问 ASF 控制台。
由于控制台可直接执行命令行指令,放置于服务器中会将控制台暴漏于外网中,所以推荐将 ASF-ui 放置于本地环境中管理,或在 IPC Password 条目中设置高强度密码。


导入二次验证密钥(2FA)

Android 手机的导出

首先需要 Android 设备已 root,使用具有 root 权限的资源管理器在/data/data文件夹中找到com.valvesoftware.android.steam.community,将其导出备用。
com.valvesoftware.android.steam.community文件夹中的files/Steamguard-SteamID改名为BotName.maFile(需要与开启 2FA 的账户配置文件名相同),复制到 ASF 目录中的config文件夹中,运行 ASF 控制台输出如下:

1
2
[*] INFO: ImportAuthenticator() <1> 正在将 .maFile 转换为 ASF 格式……
<1> 请输入您的设备 ID (包括"android:"):

此时在com.valvesoftware.android.steam.community文件夹中找到shared_prefs/steam.uuid.xml打开后查找DeviceID键值复制在 ASF 控制台中即可完成导入(这个值应该在 XML 标签中,以 android: 开头)

1
[*] INFO: ImportAuthenticator() <1> 成功导入手机验证器!

注意:如果在输入DeviceID时出错,就会获得一个残疾的 2FA 功能即验证令牌正常,但无法接受交易确认,此时可以将config中的BOT.db文件删除,重复上述导入操作即可。

直接导入 maFile 文件

自己看

1
2
3
4
5
{
"shared_secret": "STRING",
"identity_secret": "STRING",
"device_id": "STRING"
}

ASF 常用的命令

命令权限说明
2faMaster为指定机器人生成临时的 ​ 两步验证 ​ 令牌
2fanoMaster为指定机器人拒绝所有等待操作的 ​ 两步验证 ​ 交易确认
2faokMaster为指定机器人接受所有等待操作的 ​ 两步验证 ​ 交易确认
addlicenseOperator为指定机器人激活给定的 Licenses
balanceMaster显示指定机器人的 Steam 钱包余额
levelMaster显示指定机器人的 Steam 帐户等级
redeemOperator为指定机器人激活给定的游戏序列号或钱包充值码
r同 redeem同 redeem
statsOwner显示进程统计信息,例如托管内存用量
statusFamilySharing显示指定机器人的状态
sa同 statusstatus