Hacknet-Extension-Tutorial


commit
c8b1c7f
parent
21f9e8d
author
Asgore-Dreemur
date
2023-07-18 07:38:15 +0000 UTC
Nodes和自替换占位符补充
13 files changed,  +379, -1
A Assets/Nodes/Icon_DLCLaptop.png
+0, -0
A Assets/Nodes/Icon_DLCPC1.png
+0, -0
A Assets/Nodes/Icon_DLCPC2.png
+0, -0
A Assets/Nodes/Icon_DLCServer.png
+0, -0
A Assets/Nodes/Themes/Base_Theme.png
+0, -0
A Assets/Nodes/Themes/Green_Theme.png
+0, -0
A Assets/Nodes/Themes/Mint_Theme.png
+0, -0
A Assets/Nodes/Themes/Purple_Theme.png
+0, -0
A Assets/Nodes/Themes/Teal_Theme.png
+0, -0
A Assets/Nodes/Themes/White_Theme.png
+0, -0
A Assets/Nodes/Themes/Yellow_Theme.png
+0, -0
A Content/Nodes.md
+313, -0
  1@@ -0,0 +1,313 @@
  2+# Nodes
  3+## 基本信息
  4+Nodes,节点,是Hacknet中重要的一部分,玩家电脑,DHS,任务数据库,eos设备都属于Nodes  
  5+一个Nodes的结构大概如下:  
  6+```xml
  7+<?xml version = "1.0" encoding = "UTF-8" ?>
  8+<Computer id="advExamplePC" 
  9+          name="Extension Example PC" 
 10+          ip="167.194.132.7"
 11+          security="2"
 12+          allowsDefaultBootModule="false"
 13+          icon="chip" 
 14+          type="1" > 
 15+    <adminPass pass="password" />
 16+    <account username="Matt" password="testpass" type="ALL" />
 17+    <ports>21, 22, 25, 80, 1433, 104, 6881, 443, 192, 554</ports>
 18+    <portsForCrack val="0" />
 19+    <trace time="5678" />
 20+    <admin type="fast" resetPassword="false" isSuper="false"/> 
 21+    <dlink target="advExamplePC2" />
 22+    <file path="home" name="Test_File.txt">This is a test file in the home directory</file>
 23+</Computer>
 24+```  
 25+PS:第一行用于指定xml的版本和编码,在本教程中忽略,虽然在Node中不写这一行好像没有什么影响,但我们仍然建议写上这一行  
 26+
 27+我们可以看到,一个Node由`<Computer>`开始,并在该标签中指定一些属性,由`</Computer>`结束  
 28+
 29+Computer标签可以指定的属性有:
 30+- `id` 节点ID,在Hacknet中需要为唯一
 31+- `name` 节点的显示名称,可以不唯一
 32+- `ip` 可选属性,硬编码该Node的ip地址
 33+- `security` 安全等级
 34+- `allowsDefaultBootModule` 可选属性,是否允许默认的启动模块(见下文)
 35+- `icon` 可选属性,节点的显示图标
 36+- `type` 可选属性,节点类型(用来指定生成垃圾信息,指定为1,2,3效果一样),可为:1(企业),2(家庭电脑),3(服务器),4(空,不生成垃圾IRC信息),5(当作eos设备,会生成eos设备相关文件)等等
 37+
 38+### allowsDefaultBootModule
 39+每个Node可以有一个或多个(或没有)**daemon**,daemon实现了如DHS,白名单,任务数据库这样的在Node上运行的程序  
 40+
 41+我们在游玩Hacknet本体或DLC时,总是一连接Node就会自动显示它的daemon(如啃得鸡服务器,CSEC任务数据库等) 
 42+
 43+该属性就用来控制这种特性,当`allowsDefaultBootModule`被指定为true时,玩家一旦连接该Node就会显示该Node所定义的最后一个daemon  
 44+
 45+若该属性被指定为false,则连接到该Node时会显示该节点的信息概览(登录,扫描系统,查看文件系统,扫描网络)而不会自动转到该Node所运行的daemon
 46+
 47+### icon
 48+节点的icon可以有:
 49+- `laptop` 便携笔记本
 50+- `chip` 心脏起搏器那种看起来像硬件的图标
 51+- `kellis` 原版Kellis服务器的图标(通用医疗)
 52+- `tablet` 平板
 53+- `ePhone` eos设备(黑色)
 54+- `ePhone2` eos设备(白色)
 55+
 56+DLC专属:
 57+- `Psylance` Psylance的帽子图标
 58+- `PacificAir` 飞机图标
 59+- `Alchemist` 炼金术师任务的大树图标
 60+
 61+这里还有一些描述不太清楚的,附上图片:  
 62+
 63+`DLCLaptop`:  
 64+![](../Assets/Nodes/Icon_DLCLaptop.png)
 65+
 66+`DLCPC1`:  
 67+![](../Assets/Nodes/Icon_DLCPC1.png)
 68+
 69+`DLCPC2`:  
 70+![](../Assets/Nodes/Icon_DLCPC2.png)
 71+
 72+`DLCServer`:  
 73+![](../Assets/Nodes/Icon_DLCServer.png)
 74+
 75+### security
 76+Node的security指定Node的安全等级
 77+
 78+在没有覆写Node的属性时:  
 79+当security为1-3时,仅需破解端口即可入侵  
 80+当security为4或以上时,会自动添加:自动重置密码,代理和防火墙  
 81+可以重定义这些属性  
 82+
 83+## 其他属性
 84+在`<Computer>` 与 `</Computer>` 中可以定义Node的其他属性  
 85+
 86+下面是关于其他属性的详细信息:
 87+
 88+### adminPass
 89+```xml
 90+<adminPass pass="password" />
 91+```
 92+硬编码该Node的管理员密码  
 93+`pass` : 管理员密码  
 94+
 95+### account
 96+```xml
 97+<account username="Matt" password="testpass" type="ALL" />
 98+```
 99+为该Node额外添加一个帐号,可以通过重复定义该属性添加多个帐号  
100+`username` : 添加的帐号名  
101+`password` : 添加的帐号密码  
102+`type` : 帐号类型  
103+
104+帐号类型有:
105+- `ADMIN` =0,管理员权限
106+- `ALL` =1,有对文件的操作权限,但不能使用扫描网络等需要管理员权限的操作
107+- `MAIL` =2,邮件帐号
108+- `MISSIONLIST` =3,类似于CSEC的任务数据库帐号
109+
110+你可以使用对应的数字或者直接填写类型来定义帐号类型
111+
112+### ports
113+```xml
114+<ports>21, 22, 25, 80, 1433, 104, 6881, 443, 192, 554</ports>
115+```
116+定义该Node开放的端口  
117+
118+端口在`<port>` 与 `</port>` 中定义,以英文逗号隔开,空格可以省略
119+
120+默认情况下,可用的端口有:
121+- `21` ftp端口
122+- `22` ssh端口
123+- `25` smtp端口
124+- `80` web端口
125+- `1433` sql服务器端口
126+- `104` KBT端口
127+- `6881` DLC特供,torrent端口
128+- `443` DLC特供,ssl(https)端口
129+- `192` DLC特供,Pacific飞机端口
130+- `554` DLC特供,原版中未出现,RTSP端口(使用RTSPCrack破解)
131+
132+### proxy
133+```xml
134+<proxy time="2" />
135+```
136+为该Node定义代理,覆盖`security`的自带代理  
137+`time` : 过载所需时间,乘以30为实际过载所需秒数,设置为-1禁用代理
138+
139+### portsForCrack
140+```xml
141+<portsForCrack val="0" />
142+```
143+定义Node破解所需端口数  
144+`val` : 破解所需的端口数,设置为101以上会启用EnSec(那个红条,无法porthack的)
145+
146+### firewall
147+```xml
148+<firewall level="6" solution="Scypio" additionalTime="1.0"/>
149+```
150+定义Node的防火墙属性,可以覆盖`security`的自带代理  
151+`level` : 防火墙等级,即破解口令的字符数量,设置为-1禁用防火墙  
152+`solution` : 破解口令  
153+`additionalTime` : 可选参数,分析每一级需要的时间,单位为秒
154+
155+### admin
156+```xml
157+<admin type="fast" resetPassword="false" isSuper="false"/> 
158+```
159+
160+用于实现玩家断开时重置代理,端口等特性  
161+`type` : 管理员类型  
162+`resetPassword` : 是否在断开时重置密码  
163+`isSuper` : 是否为超级管理员  
164+
165+可用的管理员类型有:
166+- `basic` : 断开15秒后重置端口破解状态
167+- `progress` : 在玩家非管理员情况下可重置端口破解状态和代理,防火墙破解状态
168+- `fast` : 与`isSuper`配合,断开时立即重置管理员密码
169+
170+示例:  
171+```xml
172+<admin type="fast" resetPassword="true" isSuper="true"/>
173+```
174+断开连接后立即重置管理员密码  
175+
176+```xml
177+<admin type="progress"/>
178+```
179+在玩家非管理员状态下,断开连接后重置所有入侵状态,建议一般节点定义此属性  
180+
181+```xml
182+<admin type="none"/>
183+```
184+不使用该特性,可以用来禁用由`security`大于等于4带来的自动重置特性
185+
186+### portRemap
187+```xml
188+<portRemap>web=1234,22=2</portRemap>
189+```
190+端口映射,即实现类似DLC中端口非默认的效果  
191+在`<portRemap>` 与 `</portRemap>` 中定义,以`原端口=目标端口`定义,英文逗号隔开  
192+
193+原端口既可以写端口号,也可以是端口名称  
194+
195+如本例中,将web服务器端口重定向为1234,将22端口重定向为2  
196+
197+可用的端口名称有:
198+- `ssh` ssh端口(22)
199+- `ftp` ftp端口(21)
200+- `web` web端口(80)
201+- `torrent` DLC特供,torrent端口(6881)
202+- `medical` KBT端口(104)
203+- `smtp` smtp端口(25)
204+- `sql` sql数据库端口(1433)
205+
206+### tracker
207+```xml
208+<tracker />
209+```
210+为该Node启用被动追踪  
211+
212+被动追踪,指若玩家在该Node上留下了下载或删除文件的日志,就会受到AI自动攻击(forkbomb)  
213+
214+若存在CSEC_Member的flag,则玩家会受到类似CCC黑客小队的红屏攻击  
215+
216+### dlink
217+```xml
218+<dlink target="advExamplePC2" />
219+```
220+定义该Node被scan后可以扫出的节点,可以通过重复定义该属性添加多个可以扫描到的节点  
221+
222+`target` : 连接的节点ID
223+
224+### positionNear
225+```xml
226+<positionNear target="advExamplePC2" position="1" total="3" extraDistance="0.1" force="false"/>
227+```
228+定义该Node距离其他某个Node的距离  
229+//FIXME
230+
231+### file
232+```xml
233+<file path="home" name="Test_File.txt">This is a test file in the home directory</file>
234+```
235+在该Node中添加文件  
236+
237+`path` : 文件路径  
238+`name` : 文件名
239+
240+在`<file>` 与 `</file>` 标签中定义文件内容
241+
242+PS:文件内容支持多行,可以使用**自替换占位符**
243+
244+### customthemefile
245+```xml
246+<customthemefile path="sys" name="Custom_x-server.sys" themePath="Themes/SecondaryTheme.xml"/>
247+```  
248+向Node中添加自定义的主题文件(x-server.sys)  
249+`path` : 主题文件的存放路径  
250+`name` : 主题文件名  
251+`themePath` : 该自定义主题的定义在扩展根目录的相对路径  
252+
253+### encryptedFile
254+```xml
255+<encryptedFile path="home" name="asdf2.dec" ip="192.168.1.1" header="This is the header" pass="password">
256+    This is an encrypted file referenced in ExampleMission.xml
257+  </encryptedFile>
258+```  
259+向Node中添加DEC加密文件  
260+`path` : 加密文件路径  
261+`name` : 加密文件名  
262+`ip` : DECHead.exe扫出的头信息IP  
263+`header` : DECHead.exe扫出的头信息  
264+`pass` : 可选属性,定义该文件的密码  
265+
266+可在`<encryptedFile>` 与 `</encryptedFile>` 中添加加密文件内容,可使用**自替换占位符**  
267+
268+### eosDevice
269+```xml
270+<eosDevice name="Deliliah's ePhone 4S" id="eosIntroPhone" icon="ePhone2" empty="true" passOverride="notAlpine">
271+    <note>TestNote
272+More text</note>
273+    <note>Note filenames
274+Note filenames are generated automatically by taking the first line of the file
275+(in this case "Note Filenames") and replacing spaces with underscores.</note>
276+    <mail username="test@jmail.com" pass="thisIstheaccountpass" />
277+    <mail username="test2@jmail.com" pass="YouCanHaveLotsOfThese" />
278+    <file path="eos/test" name="crackedFile.txt">This is mostly useful for jailbroken phones</file>
279+  </eosDevice>
280+```  
281+为该Node添加连接的eos设备,可以通过重复定义该属性添加多个eos设备  
282+
283+`name` : eos设备名  
284+`id` : eos设备ID,相当于节点ID  
285+`icon` : eos设备图标,和节点图标定义一致  
286+`empty` : 是否生成垃圾文件  
287+`passOverride` : 可选属性,重新定义该eos设备的管理员密码(默认为alpine)  
288+
289+可在`<eosDevice>` 与 `</eosDevice>` 中定义该eos设备的属性  
290+
291+eos设备可以定义的属性有:
292+#### note
293+```xml
294+<note>TestNote
295+More text</note>
296+```
297+添加笔记(/eos/Note中)  
298+第一行为笔记的标题(在/eos/Note中的文件名)  
299+从第二行开始为笔记正文  
300+
301+#### mail
302+```xml
303+<mail username="test@jmail.com" pass="thisIstheaccountpass" />
304+```  
305+添加邮箱帐号,重复定义以添加多个邮箱帐号  
306+`username` : 邮箱地址  
307+`pass` : 邮箱密码  
308+PS:仍需要在目标邮件服务器中添加邮箱帐号  
309+
310+#### file
311+用法与普通Node相同,省略
312+
313+## Daemons
314+//TODO
M Content/self-replacement-placeholder.md
+66, -1
 1@@ -1 +1,66 @@
 2-# 自替换占位符
 3+# 自替换占位符
 4+**自替换占位符**是指在Hacknet中会被自动替换成特定内容的标识  
 5+
 6+自替换占位符的结构为:#<标识符,不包含尖括号>#,如#BINARY#  
 7+
 8+可用的标识符有:
 9+- `BINARY` 垃圾二进制内容(2000字符)
10+- `BINARYSMALL` 较少的垃圾二进制内容(1000字符)
11+- `PLAYER_IP` 玩家IP地址
12+- `PLAYERNAME` 玩家名
13+- `RANDOM_IP` 一个随机的IP
14+
15+以及一些文件的标识符:
16+- `SSH_CRACK` SSHCrack程序
17+- `FTP_CRACK` 原版FTP破解程序
18+- `WEB_CRACK` Web(80)破解程序
19+- `SMTP_CRACK` SMTP破解程序
20+- `SQL_CRACK` SQL破解程序
21+- `HEXCLOCK_EXE` HexClock.exe程序
22+- `CLOCK_PROGRAM` Clock.exe程序
23+- `DECYPHER_PROGRAM` DEC解密程序
24+- `DECHEAD_PROGRAM` DEC获取头信息程序
25+- `MEDICAL_PROGRAM` KBT(104)端口破解程序
26+- `THEMECHANGER_EXE` 主题更改器,ThemeChanger.exe
27+- `EOS_SCANNER_EXE` eos设备扫描程序
28+- `SECURITYTRACER_PROGRAM` 开局的SecurityTracer.exe(好东西,可以很快地停止trace)
29+- `TRACEKILL_EXE` Vapor给你的TraceKill.exe
30+- `EXT_SEQUENCER_EXE` 在扩展中可以使用的Sequencer.exe,在ExtensionInfo.xml中定义其属性
31+
32+
33+DLC特供:
34+- `TORRENT_EXE` Torrent(6881)破解程序
35+- `SSL_EXE` SSL(443)破解程序
36+- `FTP_FAST_EXE` DLC更快的FTP破解程序
37+- `SIGNAL_SCRAMBLER_EXE` SignalScrambler.exe,占用内存来延长trace的程序
38+- `MEM_FORENSICS_EXE` 内存转储查看程序
39+- `MEM_DUMP_GENERATOR` 内存转储生成工具
40+- `PACIFIC_EXE` 飞机端口(192)破解程序
41+- `NETMAP_ORGANIZER_EXE` netmap排列程序
42+- `SHELL_CONTROLLER_EXE` 原版不存在的Comshell.exe,快速操作shell的程序
43+- `NOTES_DUMPER_EXE` 能从本地文件读取笔记的程序
44+- `DLC_MUSIC_EXE` DLC调音乐程序
45+- `CLOCK_V2_EXE` 下文主题中显示的ClockV2
46+- `SHELL_OPENER_EXE` 原版不存在,快速打开shell的程序
47+
48+一些主题附上图片:  
49+`WHITE_THEME` :  
50+![](../Assets/Nodes/Themes/White_Theme.png)  
51+
52+`GREEN_THEME` :  
53+![](../Assets/Nodes/Themes/Green_Theme.png)  
54+
55+`YELLOW_THEME` :  
56+![](../Assets/Nodes/Themes/Yellow_Theme.png)  
57+
58+`TEAL_THEME` :  
59+![](../Assets/Nodes/Themes/Teal_Theme.png)  
60+
61+`BASE_THEME` :  
62+![](../Assets/Nodes/Themes/Base_Theme.png)  
63+
64+`PURPLE_THEME` :  
65+![](../Assets/Nodes/Themes/Purple_Theme.png)  
66+
67+`MINT_THEME` :  
68+![](../Assets/Nodes/Themes/Mint_Theme.png)