前言 本文仅供学习探讨之用，如果侵犯您的权益请联系我删除。 上文 [post cid="714"/] [post cid="1347"/] [post cid="1365"/] [post cid="1383"/] [post cid="1634"/] 前情提要 已经毕业半年多了，有关于小黑盒的开发也搁置很久了，感觉也没有那个精力继续开发了，记录一下最近的算法研究，就当给大学生活做个小结。 @> 本文适用于小黑盒 1.3.262，小黑盒历史版本参考我的仓库 @> 全文评论后可见
1. BLOODLUST ONLINE(血之欲 在线) 目标： 终止目标主机中的所有EXA 按要求修改目标主机中的文件 本机的文件300中包含几个有用的单词 每个主机相当于一个玩家阵营，文件200保存了该阵营的ID，类型和状态。 首先要找到文件200中包含TALISMAN的阵营，然后读取MAP后面另一个阵营的名字，文件里还有个UNLOCK单词，也是要用到的。 去那个阵营，杀光所有EXA，相当于让玩家掉线(不然会引起注意) 打开文件200，将CLOCK的值重写为SAFE的值，然后将DOOR的值改成UNLOCK 不留痕迹 程序： XA：GRAB 300 LINK 800 COPY F X # REPL SEARCHHOSTNAME COPY F M COPY M X COPY F M COPY M T REPL SEARCHHOST COPY F M COPY F M SEEK -3 COPY F M COPY T M WIPE JUMP END # MARK SEARCHHOSTNAME COPY 800 T @REP 6 REPL SEARCHER1 ADDI T 1 T @END # MARK SEARCHER1 LINK T GRAB 200 SEEK 1 MARK VERIFYFILELOOP TEST X = F SEEK 2 FJMP VERIFYFILELOOP # COPY M X SEEK -9999 SEEK 1 MARK SEARCHNAMELOOP TEST X = F TJMP FINDHOSTNAME SEEK 2 JUMP SEARCHNAMELOOP # MARK FINDHOSTNAME COPY F M COPY M X SEEK -9999 SEEK 1 MARK SEARCHUNLOCKLOOP TEST X = F TJMP FINDUNLOCK SEEK 2 JUMP SEARCHUNLOCKLOOP # MARK FINDUNLOCK COPY F M JUMP END # MARK REGISTER COPY T M JUMP END # MARK SEARCHHOST COPY 800 T @REP 6 REPL SEARCHER2 ADDI T 1 T @END # MARK SEARCHER2 LINK T HOST T TEST X = T FJMP END # @REP 4 KILL @END GRAB 200 COPY M X SEEK -9999 SEEK 1 MARK SEARCHSAFELOOP TEST X = F TJMP FINDSAFE SEEK 2 JUMP SEARCHSAFELOOP # MARK FINDSAFE COPY M X COPY F T MODE REPL REGISTER SEEK -9999 SEEK 1 MARK SEARCHCLOCKLOOP TEST X = F TJMP FINDCLOCK SEEK 2 JUMP SEARCHCLOCKLOOP # MARK FINDCLOCK COPY M F MODE COPY M X SEEK -9999 SEEK 1 # MARK SEARCHLOCKLOOP TEST X = F TJMP FINDLOCK SEEK 2 JUMP SEARCHLOCKLOOP # MARK FINDLOCK COPY M F # MARK END 2. MOTOR VEHICLE ADMINISTRATION(机动车管理处) 目标： 终止公共区域的所有EXA 按要求修改预约列表 中间是一个模拟的叫号系统，右上角写着下一个轮到的EXA，把被叫到的号码输入#NEXT就能打开链接 中间的每个EXA手里拿着票文件，文件内容是号码，文件号是纯数字号码 我们要找到文件号最小的那个文件，输入#NEXT，然后打开链接 进入左上角以后，#DATE是今天的日期，文件200是预约列表： 你的名字在文件300里 先找到有你的名字的那行，删掉它 读取日期，定位到日期是今天的最后一行 把你的信息写入文件，后面的内容整体后移 不留痕迹 程序： XA： GRAB 300 COPY F X COPY X M COPY M T # MARK REMOTESTORE COPY X M COPY M X COPY T M COPY M T JUMP REMOTESTORE MARK END XB： LINK 800 @REP 5 KILL @END COPY 209 X # MARK GRABLOOP ADDI X 1 X REPL GRAB JUMP GRABLOOP # MARK GRAB GRAB X KILL COPY F #NEXT DROP LINK 800 GRAB 200 SEEK 1 COPY M X MARK FINDYUEHUILOOP TEST X = F TJMP FINDYUEHUI SEEK 2 JUMP FINDYUEHUILOOP # MARK FINDYUEHUI COPY F M SEEK -3 @REP 3 VOID F @END SEEK -9999 COPY #DATE X # MARK FINDTODAYLOOP TEST X = F FJMP FINDTODAY SEEK 2 JUMP FINDTODAYLOOP # MARK FINDTODAY SEEK -1 # MARK REWRITELOOP COPY F T SEEK -1 COPY X F # COPY M X COPY F M SEEK -1 COPY X F # COPY M X COPY F M SEEK -1 COPY X F # COPY T X TEST EOF FJMP REWRITELOOP # COPY X F COPY M F COPY 0 M COPY M F # DROP LINK -1 LINK -1 KILL 3. CYBERMYTH STUDIO(网络神话工作室) 目标： 程序： To be continued
0. 前言 链接： GitHub：前往 快速中文参考手册：Steam 社区指南 STEAM个人资料：前往 附加任务攻略：前往 一些说明： 不留痕迹：不在网络主机上残留自己的文件/EXA，按规定操作场景寄存器，有的关卡还有特别规定 程序中的#在使用时请自行删除，加上是为了标记空行（不加会有格式问题） 渣渣代码优化辣鸡，见谅 1. WORKHOUSE （工作间） 说明： 把绿框中的账单输到右边就行了（人肉OCR） 2. TRASH WORLD NEWS （废土新闻） 教程1 目标： 移动文件200到outbox 不留痕迹 程序： XA：LINK 800 GRAB 200 LINK 800 教程2 目标： 将文件200中所有数字相加，并将结果写入文件尾 将文件移动到outbox 不留痕迹 程序： XA：LINK 800 GRAB 200 COPY F X ADDI X F X MULI X F X SUBI X F X COPY X F LINK 800 DROP 教程3 目标： 在outbox中创建正确的文件 文件199包含2个值，调换顺序并写入新文件中 删除文件199 不留痕迹 程序： XA：LINK 800 LINK 799 GRAB 199 COPY F X COPY F M COPY X M WIPE XB：LINK 800 LINK 800 MAKE COPY M F COPY M F 教程4 目标： 在outbox中创建正确的文件 文件200包含1个值N，新文件中要写入从N到0的所有数 删除文件200 不留痕迹 程序： XA：LINK 800 GRAB 200 COPY F T WIPE LINK 800 MAKE COPY T F MARK DESC SUBI T 1 T COPY T F TJMP DESC 3. EUCLID‘S PIZZA （欧几里德披萨店） 目标： 将文件300中的订单加到文件200的末尾 不留痕迹 程序： XA：GRAB 300 COPY F M COPY F M COPY F M COPY F M COPY F M XB：LINK 800 GRAB 200 SEEK 9999 COPY M F COPY M F COPY M F COPY M F COPY M F 4. MITSUZEN HDI-10 （神经网络） 目标： 按规则中继所有信号 输入：CNS寄存器 输出：ARM寄存器 输出值X要满足-120≤X≤50 若X超过范围，取最接近的数(-121取-120;51取50) 程序： XA：LINK 800 LINK 1 LINK 1 LINK 1 LINK 1 MARK LOOP COPY M #NERV JUMP LOOP XB：LINK 800 # MARK LOOP COPY #NERV X TEST X > 50 TJMP HIGH TEST X < -120 TJMP LOW COPY X M JUMP LOOP # MARK HIGH COPY 50 M JUMP LOOP # MARK LOW COPY -120 M JUMP LOOP 5. LAST STOP SNAXNET （终点站：零食工厂） 目标： 按描述修改文件237 在文件237中删除文件237中包含的单词 不留痕迹 程序： XA：GRAB 300 COPY F X DROP LINK 800 LINK 800 GRAB 237 # MARK SEARCHWORD TEST F = X TJMP DELWORD JUMP SEARCHWORD # MARK DELWORD SEEK -1 VOID F 6. ZEBROS COPIES （斑马打印店） 目标： 清零Ghast的余额 Ghast的订单号在文件300中 生成相应的付款信息 付款信息格式：日期 , 订单号 , 余额 不留痕迹 程序： XA：GRAB 300 COPY F X DROP LINK 800 GRAB 200 # MARK SEARCHID TEST X = F TJMP SENDFILE JUMP SEARCHID # MARK SENDFILE COPY X M COPY F M COPY F M SEEK -2 COPY 0 F COPY 0 F XB：LINK 800 LINK 801 COPY #DATE X LINK -1 GRAB 201 # SEEK 9999 COPY X F COPY M F COPY M F COPY M F 7. SFCTA HIGHWAY SIGN #4902 （SFCTA高速公路牌#4902） 目标： 在高速公路牌上写信息 路牌使用方法： 往#CLRS中写入值来清空路牌 往#DATA中依次写入行，列，字符值来在指定位置写字 往#INVS中写入值来开/关反色效果（1开，0关） 不留痕迹 程序： XA：GRAB 300 LINK 800 COPY 0 #CLRS # MARK LOOP DIVI X 9 #DATA MODI X 9 #DATA COPY F #DATA ADDI X 1 X TEST EOF FJMP LOOP # LINK -1 8. UNKNOWN NETWORK 1 （未知网络1） 目标： 移动文件276到你的主机(机器人出生点) 不留痕迹 程序： XA：LINK 800 # MARK NEXT TEST X = 3 TJMP EXIT ADDI X 1 X REPL 801 # MARK 800 LINK 800 JUMP NEXT # MARK 801 LINK 801 JUMP NEXT # MARK EXIT KILL GRAB 276 @REP 4 LINK -1 @END 9. UC BERKELEY （加州大学伯克利分校） 目标： 在你的主机新建指定的文件 文件300中第1个值是磁带号，第二个值是标记 在对应磁带中对应标记后面是序号，需要读取从序号的位置到0直接的所有数字 将读取的数字写入新文件中 不留痕迹 程序： XA： GRAB 300 COPY F X LINK 800 # MARK GOTOROOM LINK 800 LINK 800 HOST T TEST X = T FJMP GOTOROOM # COPY F X WIPE GRAB 200 SEEK 126 # MARK LOOKUP TEST F = X FJMP LOOKUP COPY F T COPY F X COPY X M SEEK -9999 SEEK T # MARK TRANSDATA COPY F M SUBI X 1 X TEST X = 0 FJMP TRANSDATA XB: MAKE COPY M X # MARK RECEIVEDATA COPY M F SUBI X 1 X TEST X = 0 FJMP RECEIVEDATA 10. ПАСьЯНС （空当接龙游戏） 玩法： 类似Windows自带的空当接龙 花牌也需要叠在一起 11. WORKHOUSE （劳动救济所） 目标： 按照描述覆写EMBER-2的用户文件 文件300包含了EMBER-2的用户名 在文件199中读取用户名对应的文件号 将对应文件中的数字全部化转化为n个75和余数的形式 不留痕迹 程序： XAGRAB 300 COPY F X DROP LINK 800 GRAB 199 # MARK FINDUSER TEST F = X SEEK 2 FJMP FINDUSER # SEEK -1 COPY F X DROP LINK 799 GRAB X SEEK 2 # COPY 0 X MARK SUM ADDI X F X TEST EOF FJMP SUM # SEEK -9999 SEEK 2 MARK WRITENUM TEST X < 75 TJMP END COPY 75 F SUBI X 75 X FJMP WRITENUM # MARK END COPY X F 12. EQUITY FIRST BANK（公平第一银行） 目标： 从所有ATM机取出所有的零钱 ATM机会随机连接在800到806上 一次只能从ATM机取出20块 不留痕迹 程序： XA：LINK 800 LINK 800 LINK 800 # REPL 806 REPL 805 REPL 804 REPL 803 REPL 802 REPL 801 # MARK 800 LINK 800 JUMP LOOP MARK 801 LINK 801 JUMP LOOP MARK 802 LINK 802 JUMP LOOP MARK 803 LINK 803 JUMP LOOP MARK 804 LINK 804 JUMP LOOP MARK 805 LINK 805 JUMP LOOP MARK 806 LINK 806 JUMP LOOP # MARK LOOP COPY 20 #DISP TEST #CASH > 0 TJMP LOOP 13. MITSUZEN HDI-10 （神经网络） 目标： 按描述生成信号 流程大致如下： 从CNS中读取一个值N N的第一位表式多久一个波 SA-N以波峰(40)开始，经历N个周期再是波峰 两个波峰之间是波谷(-70) AV-N的波比SA-N延后1个周期，其他一样 程序： XA：LINK 800 # MARK GETNUM COPY #NERV X DIVI X -10 X REPL SAN REPL AVN COPY M X COPY M X JUMP GETNUM # MARK SAN LINK 1 LINK 1 COPY 40 #NERV JUMP LOOP # MARK AVN LINK 3 LINK 3 COPY 40 #NERV JUMP LOOP # MARK LOOP COPY -70 #NERV SUBI X 1 X TEST X > 1 TJMP LOOP COPY 1 M # MARK END XB：LINK 800 LINK 3 LINK 3 COPY -70 #NERV 14. TRASH WORLD NEWS （垃圾世界新闻） 目标： 寻找并替换给定关键词 移动文件200到outbox 不留痕迹 程序： XA：GRAB 300 MARK READFILE COPY F M TEST EOF FJMP READFILE # MARK END DROP LINK 800 GRAB 200 LINK 800 XB：LINK 800 LINK 799 GRAB 212 # MARK LOOP SEEK -9999 COPY M X MARK FINDWORD TEST F = X FJMP FINDWORD # COPY M X SEEK -1 COPY X F TEST MRD TJMP LOOP 15. KGOG-TV （KGOG电视台） 说明： 这是一个对抗地图，可以找好友或者和电脑对抗 得分方式： 放映机一次只能播放1个文件，有多个文件就不播了 从中间拿取视频文件，拿到放映机中可以播放 一方拿取的文件被放映机放映1个周期，文件所有方+1分，对方-1分 使用1次KILL指令-1分 100个周期结束得分高者获胜 程序（仅能战胜电脑）： XA：LINK 800 REPL 210 REPL 211 REPL 230 REPL 231 # MARK 210 GRAB 210 LINK 828 DROP GRAB 230 LINK -1 JUMP END # MARK 211 GRAB 211 LINK 809 DROP GRAB 265 LINK -1 JUMP END # MARK 230 GRAB 230 LINK 867 JUMP END # MARK 231 GRAB 231 LINK 828 # MARK END 16. TEC REDSHIFT （REDSHIFT科技套件） 目标： 在你的主机生成指定的文件 所需要的文件在右上角 你需要往#PASS中输入3位的密码（1次1位数字） 密码未知，可以通过穷举算出来 不留痕迹 程序： XA：LINK 800 COPY 300 X # MARK TRYPASSWD SWIZ X 3 #PASS SWIZ X 2 #PASS SWIZ X 1 #PASS COPY X M ADDI X 1 X JUMP TRYPASSWD XB：LINK 800 MARK LOOP COPY M X REPL TRY JUMP LOOP # MARK TRY LINK 800 LINK -1 KILL KILL LINK 800 GRAB 199 COPY F T DROP MAKE SWIZ X 3 F SWIZ X 2 F SWIZ X 1 F LINK -1 LINK -1 COPY T F 17. REDSHIFT HOMEBREW （REDSHIFDT游戏机） 说明： 这一关是一个可编程游戏机 这里的EXA多了G跟C两个寄存器，G可以用来在游戏机中显示图像，C用途不知 我也没太搞懂，欢迎讨论 本关可以长按“SKIP”跳过 18. DIGITAL LIBRARY PROJECT（数字图书馆计划） 目标： 在你的主机生成指定的文件 文件300中包含了要找的书籍的文件号 你要找到对应的书籍，并复制到新文件中 把新文件带回你的主机（或者直接在你的主机生成新文件） 不留痕迹 程序： XA：GRAB 300 LINK 800 # MARK LOOPBOOK COPY F X REPL FINDER TEST EOF FJMP LOOPBOOK WIPE HALT # MARK FINDER MODI X 100 X ADDI X 200 X REPL FINDFILE # MARK FINDFILE LINK 800 REPL FINDFILE GRAB X MODE REPL RECEIVER # MARK SENDFILE COPY F M TEST EOF FJMP SENDFILE HALT # MARK RECEIVER MAKE MARK RECEIVEFILE TEST MRD FJMP END COPY M F NOOP JUMP RECEIVEFILE # MARK END @REP 10 LINK -1 @END 19. TEC EXA-BLASTER™ MODEM（EXA-BLASTER™调制解调器） 目标： 到达地址簿中的所有主机 文件301中包含所有网络主机的号码 往#DIAL中输入对应号码可以建立到对应主机的链接 1次只能链接1个主机 往#DIAL中输入-1来断开建立的链接 文件300中包含了要爆破的文本 需要把所有主机中的文件用文件300中的单词覆盖 不留痕迹 程序： XA： GRAB 301 COPY 11 X MARK TRANSNUM COPY F M SUBI X 1 X TEST X > 0 TJMP TRANSNUM # REPL TRANSTXT COPY 11 X # MARK WAIT TEST MRD TJMP WAIT JUMP TRANSNUM # MARK TRANSTXT GRAB 300 COPY F M COPY F M XB： LINK 800 JUMP LOOP # MARK DISCONNECT COPY -1 #DIAL TEST MRD FJMP END # MARK LOOP COPY 11 X MARK PPPOE COPY M #DIAL SUBI X 1 X TEST X > 0 TJMP PPPOE # MARK WRITEFILE LINK 800 GRAB 200 COPY M X # MARK LOOPFILE COPY X F SEEK 1 TEST EOF FJMP LOOPFILE # MARK WRITEFILE2 COPY M X SEEK -9999 SEEK 1 # MARK LOOPFILE2 COPY X F SEEK 1 TEST EOF FJMP LOOPFILE2 # DROP LINK -1 JUMP DISCONNECT # MARK END 20. EMERSON'S GUIDE （艾默生的指南） 目标： 修改指定餐厅的评分为5星 文件300中第一个单词是餐厅名 后2位数字表示餐厅评分文件的具体位置（向北/南，像东走的次数） 不留痕迹 程序 XA：GRAB 300 SEEK 1 COPY F M COPY F M SEEK -3 COPY F M XB：LINK 800 # MARK EW COPY M X MARK TESTEW TEST X = 0 TJMP NS # MARK EAST LINK 801 SUBI X 1 X JUMP TESTEW # MARK NS COPY M X MARK TESTNS TEST X = 0 TJMP ENDGO TEST X < 0 TJMP SOUTH # MARK NORTH LINK 800 SUBI X 1 X JUMP TESTNS # MARK SOUTH LINK 802 SUBI X -1 X JUMP TESTNS # MARK ENDGO COPY M X GRAB 200 MARK LOOPFILE TEST X = F SEEK 5 FJMP LOOPFILE # SEEK -5 COPY F X COPY X F COPY X F COPY X F COPY X F 21. VALHALLA （瓦尔哈拉殿堂） 说明： 这是一个对抗地图，可以找好友或者和电脑对抗 得分方式： 往#CTRL中写任意值来获得对应主机的控制权 当你拥有某主机的控制权时#CTRL的值为1，对方拥有则为-1，初始为0 每1个周期从每个控制权是你的主机中获得1分 使用1次KILL指令-1分 100个周期结束得分高者获胜 程序（仅能战胜电脑）： XA：LINK 800 LINK -1 COPY X #CTRL # LINK 800 COPY X #CTRL LINK 800 COPY X #CTRL LINK 800 COPY X #CTRL LINK 800 KILL COPY X #CTRL LINK 800 COPY X #CTRL LINK 800 COPY X #CTRL LINK 800 COPY X #CTRL LINK 800 COPY X #CTRL # LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL LINK -1 COPY X #CTRL 22. MITSUZEN HDI-10（神经网络） 说明： 中继所有一一对应的寄存器 完成很简单，难点在于优化程序（不存在的） 程序（挺烂的）： XA：LINK 800 LINK -3 LINK -3 COPY 14 X # MARK LOOPNUM1 COPY #NERV M SUBI X 1 X TEST X = 0 FJMP LOOPNUM1 # MARK LOOP COPY 14 X LINK -3 MARK LOOPNUM2 COPY M #NERV SUBI X 1 X TEST X = 0 FJMP LOOPNUM2 JUMP LOOP XB：LINK 800 LINK 3 LINK 3 COPY 14 X # MARK LOOPNUM1 COPY M #NERV SUBI X 1 X TEST X = 0 FJMP LOOPNUM1 # MARK LOOP COPY 14 X LINK 3 MARK LOOPNUM2 COPY #NERV M SUBI X 1 X TEST X = 0 FJMP LOOPNUM2 JUMP LOOP 23. SAWAYAMA WONDERDISC（佐和山想蹦迪 魔鬼翻译） 目标： 复制请求的文件到buffer 首先向#AUTH写入803271049512526（一次一位）来解锁左上角的主机 然后从#TRAK中读取请求的文件号 进入左上角的主机中，复制指定文件 把新文件中所有非数字修改为文件300中指定单词（SSEA） 把修改后的文件丢到buffer中 程序： XA：LINK 800 COPY 8 #AUTH COPY 0 #AUTH COPY 3 #AUTH COPY 2 #AUTH COPY 7 #AUTH COPY 1 #AUTH COPY 0 #AUTH COPY 4 #AUTH COPY 9 #AUTH COPY 5 #AUTH COPY 1 #AUTH COPY 2 #AUTH COPY 5 #AUTH COPY 2 #AUTH COPY 6 #AUTH LINK 801 # MARK FINDFILE GRAB M # MARK READFILE COPY F M TEST EOF FJMP READFILE # DROP JUMP FINDFILE XB：LINK 800 # MARK WRITEFILE COPY #TRAK M MAKE MARK WRITELOOP COPY M F NOOP NOOP TEST MRD TJMP WRITELOOP # MODE FILE M DROP MODE JUMP WRITEFILE XC：GRAB 300 COPY F X DROP LINK 800 # MARK OVERLOOP COPY M T GRAB T MARK OVERWRITE TEST EOF TJMP END COPY F T TEST T > -9999 FJMP CHANGE JUMP OVERWRITE # MARK END LINK 800 DROP LINK -1 JUMP OVERLOOP # MARK CHANGE SEEK -1 COPY X F JUMP OVERWRITE 24. HACK*MATCH（黑客连连看） 说明： AD左右移动 J拉取上方的方块 K交换上方2个方块的位置 L加速下滑 规则： 4个相同的规则方块挨在一起可以消除并得分 2个相同的不规则方块挨在一起会消除所有有相同图案的方块，但不得分 方块堆到下方蓝线游戏结束 25. ALLIANCE POWER AND LIGHT （权利与光明联盟 联盟拉闸） 目标： 切断指定变电站的电源（将对应的#POWR置为0即可） 不留痕迹 程序： XA：GRAB 300 COPY F X REPL FINDER COPY F X DROP # MARK FINDER LINK 800 REPL B # MARK A LINK 801 LINK 801 LINK 801 COPY 1 T # MARK B REPL N2 REPL S2 REPL N REPL S # MARK SWITCH TJMP W FJMP E # MARK N2 LINK 800 MARK N LINK 800 # JUMP SWITCH # MARK S2 LINK 802 MARK S LINK 802 # JUMP SWITCH # MARK E REPL TEST LINK 801 JUMP E # MARK W REPL TEST LINK 803 JUMP W # MARK TEST HOST T TEST T = X FJMP END # COPY 0 #POWR # MARK END 26. DEADLOCK'S DOMAIN （DEADLOCK的域名） 说明： 这是一个对抗地图，可以找好友或者和电脑对抗 得分方式： 每1个周期会在中间3个主机内随机生成文件 通过读取#FILE寄存器可以取得随机文件的文件号 将1份文件带回自己的主机+1分 使用1次KILL指令-1分 100个周期结束得分高者获胜 程序： XA：LINK 800 # MARK LOOP REPL A REPL B REPL C JUMP LOOP # MARK A LINK 800 JUMP END # MARK B LINK 801 JUMP END # MARK C LINK 802 JUMP END # MARK END GRAB #FILE LINK -1 LINK -1 XB：LINK 800 LINK 800 LINK 799 KILL 27. XTREME LEAGUE BASEBALL （极限棒球联盟） 目标： 在自己的主机生成指定的文件 有两个主机包含有球员得分的文件，左上角的主机是被封禁的球员，不用管 每个主机中文件199包含了每个球员的得分文件的文件号 每个球员文件的格式：姓名，BA，ZA，APB，WRT，OI，OD，PC，PS 得分计算公式：( BA+ZA+APB ) / 3 + ( WRT * OI ) / OD + ( PC - PS ) 算出得分最高的球员，将其姓名写入新文件 将新文件丢在自己的主机内 不留痕迹 程序： XA：MAKE COPY M X # MARK RECEIVEINFO COPY X F COPY M F COPY M X TEST X > -9999 FJMP RECEIVEINFO # SEEK -9999 MODE # MARK LOOPFILE SEEK 1 COPY F M TEST EOF FJMP LOOPFILE # COPY -1 M COPY M X SEEK -9999 # MARK FINDNUM SEEK 1 TEST X = F FJMP FINDNUM # SEEK -2 COPY F X WIPE MAKE COPY X F XB：MARK RECEIVER MAKE COPY M F MARK FINDMAX SEEK -1 COPY M X TEST X = -1 TJMP END TEST X > F FJMP FINDMAX # MARK CHANGE SEEK -1 COPY X F JUMP FINDMAX # MARK END COPY F M WIPE XC：LINK 800 GRAB 199 # MARK LOOPFILE COPY F X MODE REPL CALC COPY M X COPY M T MODE COPY X M COPY T M TEST EOF FJMP LOOPFILE COPY 0 M HALT # MARK CALC GRAB X COPY F M ADDI F F X ADDI X F X DIVI X 3 X MULI F F T DIVI T F T ADDI X T X SUBI F F T MULI T 20 T ADDI X T X COPY X M 28. KING'S RANSOM ONLINE （王♂之救赎OL） 目标： 终止其他玩家的EXA 清除每个建筑的所有权 不留痕迹 补充说明： 文件300包含有表式“无主”的代号（P00000） 为了不留痕迹，在修改任意文件前请先终止其他EXA（KILL） 城堡文件（文件200）的格式：城堡名称，类型（城堡），所有权（代号），建筑文件的文件号 建筑文件的格式：建筑名称，类型（建筑），所有权（代号），[升级文件的文件号]（可能有） 升级文件的格式：升级名称，类型（升级），所有权（代号） 将所有文件的所有权代号都变成“无主” 程序： XA：GRAB 300 COPY F X DROP LINK 800 COPY 800 T REPL LINKS COPY 801 T REPL LINKS COPY 804 T REPL LINKS COPY 805 T REPL LINKS COPY 802 T REPL LINKS COPY 803 T REPL LINKS # COPY 0 M COPY 0 M COPY 0 M COPY 0 M COPY 0 M COPY 0 M HALT # MARK LINKS LINK T KILL KILL KILL COPY M T GRAB 200 SEEK 2 COPY X F # MARK LOOPUSR COPY F T REPL REWRITER TEST EOF FJMP LOOPUSR # MARK REWRITER GRAB T SEEK 2 COPY X F TEST EOF TJMP END COPY F T REPL REWRITER # MARK END 29. KGOG-TV （KGOG电视台） 目标： 让天线对齐指定卫星 文件300给定了方位，高度，频率三个参数 频率直接写入#FREQ就行 方位和高度需要使用步进马达（#MOTR）来调整 #MOTR只接受1和-1两个值，1正转，-1反转，正转使对应值升高，反之亦然 调整到#AZIM，#ELEV，#FREQ跟目标值相同即可 加密发送EMBER-2的语音数据 文件199是密钥文件，读完了回头重读 文件301是数据文件，从第2个值开始是数据 加密方法： 从文件199读取1个密钥，记为M 从文件301读取1个数据，记为N 加密后的数据=M+N（有可能会溢出，仅保留后四位） 将加密后的数据写入到#DATA，完成发送 不留痕迹 程序： XA：GRAB 300 LINK 800 LINK 799 SEEK 1 COPY F X LINK 800 # MARK ADDAZIM TEST X > #AZIM FJMP SUBAZIM COPY 1 #MOTR JUMP ADDAZIM MARK SUBAZIM TEST X < #AZIM FJMP ENDAZIM COPY -1 #MOTR JUMP SUBAZIM MARK ENDAZIM LINK -1 # SEEK 1 COPY F X LINK 801 MARK ADDELEV TEST X > #ELEV FJMP SUBELEV COPY 1 #MOTR JUMP ADDELEV MARK SUBELEV TEST X < #ELEV FJMP ENDELEV COPY -1 #MOTR JUMP SUBELEV MARK ENDELEV LINK -1 # SEEK 1 COPY F #FREQ WIPE XB：GRAB 301 LINK 800 VOID F # MARK ENCRYPT COPY F X SEEK -1 MODE COPY M T MODE COPY X M COPY T M COPY X M COPY T M COPY M F TEST EOF FJMP ENCRYPT KILL KILL REPL WIPE400 LINK 799 SEEK -9999 # MARK LOOPFILE COPY F #DATA TEST EOF FJMP LOOPFILE WIPE HALT # MARK WIPE400 GRAB 400 WIPE XC：LINK 800 MAKE # MARK ISOF COPY M X TEST X > -9999 FJMP END COPY M T ADDI X T F SUBI X T F SEEK -2 TEST F = 9999 FJMP NOOF # MARK YESOF SUBI M 5000 X SUBI M 5000 T ADDI X T M JUMP ISOF # MARK NOOF COPY M X ADDI M X X COPY X M JUMP ISOF # MARK END WIPE XD：LINK 800 GRAB 199 # MARK LOOPFILE COPY F X COPY X M TEST EOF FJMP LOOPFILE SEEK -9999 JUMP LOOPFILE 30. EQUITY FIRST BANK （公平第一银行） 目标： 添加EMBER-2的账户 往EMBER-2的账户中存款 从其他账户扣款 不留痕迹 补充说明： 文件301包含了2个单词：CREDIT（贷款方），DEBIT（放贷方） 文件300是EMBER-2的账户文件 文件199包含了当前主机中所有账户文件的文件号 每个账户文件的格式： 账户ID，姓名，2，* [财务信息] [财务信息] …… 财务信息格式：账户ID，类型（借/被借），金额整数部分，金额小数部分 你要做的是给每个账户添加一条向EMBER-2借款1.00元的财务信息 然后记下账户ID，在EMBER-2的账户中增加被借款1.00元的财务信息 最后将EMBER-2的账户文件丢入银行主机中 别忘了往文件199中写入EMBER-2的账户文件号 程序： XA：GRAB 300 COPY F X LINK 800 LINK 800 DROP GRAB 199 REPL RECEIVEID MODE # MARK LOOPUSER COPY F T REPL ADDUSER NOOP NOOP TEST EOF FJMP LOOPUSER MODE SEEK -9999 COPY M X # MARK LOOPUSER2 COPY F T REPL ADDDETAIL TEST EOF FJMP LOOPUSER2 COPY 300 F HALT # MARK ADDUSER GRAB T COPY F M SEEK 9999 COPY X F DROP HALT # MARK ADDDETAIL GRAB T SEEK 9999 COPY X F COPY 1 F COPY 0 F HALT # MARK RECEIVEID GRAB 300 SEEK 9999 COPY M X MODE MARK RECEIVEIDLOOP COPY M F COPY X F COPY 1 F COPY 0 F NOOP TEST MRD TJMP RECEIVEIDLOOP XB：GRAB 301 COPY F M COPY F M 31. AXIOM VIRTUALNETWORK+ （AXIOM虚拟网络+） 说明： 这是是一个地图编辑器 可以创建自己的地图并上传创意工坊 有兴趣自行研究，这里就不展开了 32. THE WORMHOLE （蠕虫巢穴） 说明： 这是一个对抗地图，可以找好友或者和电脑对抗 得分方式： 你需要尽可能多的占据主机中的空位 每1个周期统计在所有网络主机中的EXA，1个EXA+1分 使用1次KILL指令-1分 100个周期结束得分高者获胜 程序（仅能战胜电脑）： XA：LINK 800 LINK 11 LINK 5 LINK 7 KILL REPL REPL KILL KILL HALT MARK REPL LINK 3 KILL KILL KILL XB：LINK 800 REPL REPL # MARK REPL REPL 11 REPL 5 REPL 3 REPL 7 REPL 13 REPL 2 HALT # MARK 11 LINK 11 JUMP REPL MARK 5 LINK 5 JUMP REPL MARK 13 LINK 13 JUMP REPL MARK 3 LINK 3 JUMP REPL MARK 7 LINK 7 JUMP REPL MARK 2 LINK 2 JUMP REPL 33. TEC EXA-BLASTER™ MODEM （EXA-BLASTER™调制解调器） 目标： 链接到所有网络主机 文件300中包含1个网络主机的号码 往#DIAL中输入对应号码可以建立到对应主机的链接 1次只能链接1个主机 往#DIAL中输入-1来断开建立的链接 在每个网络主机中，文件200是地址簿 地址簿格式：主机名，11位号码 地址簿给出的号码可能是无效的，需要有应对机制 不留痕迹 程序： XA：GRAB 300 LINK 800 SEEK 9999 COPY -1 F SEEK -9999 # MARK DIALER COPY F X SEEK -1 VOID F TEST X = -1 TJMP DIALONCEEND COPY X #DIAL TEST EOF FJMP DIALER TJMP DIALEND # MARK DIALONCEEND REPL LINKER NOOP TEST MRD FJMP ISEOF VOID M VOID M SEEK 9999 JUMP RECEIVENUM # MARK ISEOF TEST EOF FJMP DIALER WIPE HALT # MARK RECEIVENUM COPY M F NOOP NOOP NOOP TEST MRD TJMP RECEIVENUM SEEK -9999 COPY -1 #DIAL JUMP DIALER # MARK DIALEND WIPE HALT # MARK LINKER LINK 800 COPY 0 M GRAB 200 SEEK 1 MODE REPL RECORDER MARK LOOPPHONE TEST EOF TJMP EXIT COPY F X TEST X > -9999 FJMP TXT MARK NUM COPY X M JUMP LOOPPHONE MARK TXT COPY -1 M JUMP LOOPPHONE MARK EXIT COPY -2 M HALT # MARK RECORDER MAKE MARK RECORDLOOP COPY M X TEST X = -2 TJMP RECORDEND COPY X F JUMP RECORDLOOP MARK RECORDEND COPY -1 F MODE COPY 0 M SEEK -9999 MARK LOOPNUM COPY F M TEST EOF FJMP LOOPNUM WIPE 34. LAST STOP SNAXNET （终点站：零食工厂） 目标： 按正确顺序关闭调节器 左上角的主机中#ZGC0~#ZGC4对应右边5个调节器 每个#ZGCX寄存器的数值表示对应调节器内的压力 每次只能关闭压力最高的调节器 将对应调速器内的#POWR置为0即可关闭 重复操作，直到所有调节器都被关闭 不留痕迹 程序： XA：LINK 800 LINK 799 MAKE # MARK 01 COPY #ZGC0 F SEEK -1 TEST F > #ZGC1 SEEK -1 TJMP 012 COPY #ZGC1 F SEEK -1 COPY 1 X # MARK 012 TEST F > #ZGC2 SEEK -1 TJMP 0123 COPY #ZGC2 F SEEK -1 COPY 2 X # MARK 0123 TEST F > #ZGC3 SEEK -1 TJMP 01234 COPY #ZGC3 F SEEK -1 COPY 3 X # MARK 01234 TEST F > #ZGC4 SEEK -1 TJMP END COPY #ZGC4 F SEEK -1 COPY 4 X # MARK END TEST F = 0 TJMP ALLEND SEEK -1 COPY X T REPL POWEROFF VOID M COPY 0 X JUMP 01 # MARK ALLEND WIPE HALT # MARK POWEROFF LINK -1 LINK 798 # MARK LINKS FJMP LINKSEND LINK 800 SUBI T 1 T JUMP LINKS # MARK LINKSEND COPY 0 #POWR COPY 0 M 35. MITSUZEN HDI-10 （神经网络） 目标： 生成正确的信号 规则如下： 首先统计右下角9个#NERV中大于-55的数的个数，记为N 计算N * 5 - 75 将计算结果写入上方的#NERV中 感谢 18111398 提醒 程序： -XA： LINK 800 LINK 1 LINK 3 # MARK LOOP REPL STARTTEST @REP 9 ADDI X M X @END MULI X 5 X SUBI X 75 X COPY X #NERV COPY 0 X JUMP LOOP # MARK STARTTEST LINK -3 REPL TEST REPL R # MARK L LINK -1 JUMP TEST # MARK R LINK 1 JUMP TEST # MARK DOWN LINK -3 # MARK TEST TEST #NERV > -55 COPY T M JUMP DOWN 36. HOLMAN DYNAMICS （霍尔曼动力） 目标： 在你的主机生成指定的文件 在文件199中包含有一个信用卡卡号 卡号符合规则 奇数次位数*2，大于9的位数减9，相加 偶数位相加 总和刚好被10整除（用MODI命令得0） 找到卡号，将其逐位写入文件，并丢到自己的主机中 不留痕迹 程序： XA：LINK 800 LINK 802 LINK 799 # GRAB 199 MARK LOOPFILE COPY F M TEST EOF FJMP LOOPFILE COPY -9999 M XB：MAKE MARK RECEIVELIST COPY M F SEEK -1 TEST F = -9999 TJMP LISTENDFIRST ADDI X 1 X JUMP RECEIVELIST # MARK LISTENDFIRST MODE MARK LISTEND TEST X > 15 FJMP CLEARLIST # MARK VALIDATE COPY 16 T REPL VALIDATER SEEK -9999 # MARK SEND16NUM MULI F 2 M COPY F M SUBI T 2 T TJMP SEND16NUM MODI M 10 T FJMP FINDIT # MARK NEXTLIST SEEK -16 VOID F SUBI X 1 X JUMP LISTEND # MARK FINDIT SEEK -9999 COPY 16 T REPL WRITECARDNUM MARK SENDNUM COPY F M SUBI T 1 T TJMP SENDNUM WIPE HALT # MARK WRITECARDNUM MAKE MARK WRITECARDNUMLOOP COPY M F SUBI T 1 T TJMP WRITECARDNUMLOOP DROP LINK 800 LINK 802 LINK 799 KILL HALT # MARK CLEARLIST WIPE MAKE COPY 0 X MODE JUMP RECEIVELIST # MARK VALIDATER COPY 0 X MAKE MARK VALIDATELOOP COPY M F SUBI T 1 T TJMP VALIDATELOOP SEEK -9999 # MARK GREATER10 COPY F X TEST X > 9 TJMP SUBI9 TEST EOF FJMP GREATER10 # SEEK -9999 COPY 0 X MARK SUM ADDI X F X SUBI T 1 T TEST EOF FJMP SUM COPY X M WIPE HALT # MARK SUBI9 SEEK -1 SUBI X 9 F JUMP GREATER10 COPY X M 37. ABERDEEN（阿伯丁） 说明： 这是一个对抗地图，可以找好友或者和电脑对抗 得分方式： 尽可能多的在网络主机中保存EXA 每1个周期分别统计含有某一方EXA的网络主机的数量，多的一方+1分 使用1次KILL指令-1分 往#NUKE（核弹）中写任意值，将引爆该网络主机中的所有EXA 100个周期结束得分高者获胜 程序（仅能战胜电脑）： XA：LINK 800 LINK 801 LINK 799 COPY M X XB：NOOP LINK 800 REPL 801 REPL 802 # MARK NUKE REPL 800 JUMP NUKE # MARK 800 LINK 800 COPY 0 #NUKE # MARK 801 LINK 801 REPL LOOP LINK 800 REPL LOOP # MARK 802 LINK 802 REPL LOOP LINK 800 REPL LOOP LINK 800 # MARK LOOP JUMP LOOP 38. US. GOVERNMENT （美国政府） 目标： 按照要求修改DNA文件 在文件300中包含两个政府官员的姓名 在最上面的主机中，文件200包含了官员姓名与对应DNA储存位置的索引 索引第一位代表主机(1~5代表801~805，5台主机) 索引第二位代表文件号(0~4对应200~204，5个文件) 索引第三位代表DNA在文件中的位置(0为第一行，以此类推) 将文件300中第二个官员的DNA用第一个官员的DNA改写 不留痕迹 程序： XA：GRAB 300 LINK 800 REPL INDEXREADER COPY F M COPY F M # COPY 100 T MARK DNARECEVERLOOP COPY M F SUBI T 1 T TJMP DNARECEVERLOOP # SEEK -9999 SEEK 2 MODE COPY 0 M MODE # COPY 100 T MARK DNASENDERLOOP COPY F M SUBI T 1 T TJMP DNASENDERLOOP WIPE HALT # MARK INDEXREADER LINK 801 GRAB 200 MODE REPL RECORDER MARK INDEXREADER2 MODE COPY M X MODE MARK LOOPINDEX TEST X = F TJMP GETINDEX SEEK 10 JUMP LOOPINDEX HALT # MARK GETINDEX COPY 10 T MARK REPLSENDER COPY F M SUBI T 1 T TJMP REPLSENDER SEEK -9999 JUMP INDEXREADER2 # MARK RECORDER MAKE COPY 20 T MARK RECORDERLOOP COPY M F SUBI T 1 T TJMP RECORDERLOOP KILL LINK -1 SEEK -9999 # COPY 10 T MARK REPLDNAREADER COPY F X REPL DNAREADER COPY M X SUBI T 1 T TJMP REPLDNAREADER # COPY M X COPY 10 T MARK REPLDNAWRITER COPY F X REPL DNAWRITER COPY M X SUBI T 1 T TJMP REPLDNAWRITER WIPE HALT # MARK DNAREADER SWIZ X 3 T ADDI T 800 T LINK T SWIZ X 2 T ADDI T 200 T GRAB T SWIZ X 1 T MULI T 10 T SEEK T MODE COPY 10 T MARK DNAREADERLOOP COPY F M SUBI T 1 T TJMP DNAREADERLOOP JUMP DNAEREND # MARK DNAWRITER SWIZ X 3 T ADDI T 800 T LINK T SWIZ X 2 T ADDI T 200 T GRAB T SWIZ X 1 T MULI T 10 T SEEK T MODE COPY 10 T MARK DNAWRITERLOOP COPY M F SUBI T 1 T TJMP DNAWRITERLOOP # MARK DNAEREND DROP LINK -1 MODE COPY 0 M 39. UNKNOWN NETWORK 2 （未知网络2） 目标： 消灭网络中的所有EXA 要注意，外围主机中的EXA有攻击性 一旦受到攻击，会在下一tick反击，并且切断该主机的所有连接通道 将中央主机中EXA持有的文件带回自己的主机 所持文件号未知，介于200到300之间 不留痕迹 程序： XA：@REP 5 LINK 800 @END @REP 6 KILL @END COPY 200 X MARK GETFILE REPL TAKEBACKFILE ADDI X 1 X TEST X = 300 FJMP GETFILE # COPY 4 T MARK LINKANDKILL LINK -1 REPL KILLER SUBI T 1 T TJMP LINKANDKILL # MARK TAKEBACKFILE GRAB X MARK L LINK -1 JUMP L # MARK KILLER NOOP NOOP KILL KILL 40. TEC EXA-BLASTER™ MODEM（EXA-BLASTER™调制解调器） 目标： 往每个传呼机上写入指定的消息 文件300包含了要写入的消息 文件301包含了所有传呼机的号码 往#DIAL中输入对应号码可以建立到对应主机的连接 1次只能链接1个主机 往#DIAL中输入-1来断开建立的连接 将文件300中的消息写入每个主机中的#DATA中 同时激活所有传呼机 往#PAGE中写入任意值就能激活该传呼机 这里需要设计1个计时器来让所有EXA在同一时刻激活 不留痕迹 程序： XA：GRAB 301 LINK 800 # MARK FIRSTROUND MARK DIALER COPY 11 T MARK DIALERLOOP COPY F #DIAL SUBI T 1 T TJMP DIALERLOOP # COPY 0 M VOID M COPY -1 #DIAL TEST EOF FJMP DIALER # MARK SECONDROUND SEEK -9999 COPY 141 X MODE MARK DIALER2 COPY 11 T MARK DIALERLOOP2 COPY F #DIAL SUBI T 1 T TJMP DIALERLOOP2 # COPY X M SUBI X 20 X COPY -1 #DIAL TEST EOF FJMP DIALER2 WIPE XB：GRAB 300 LINK 800 # COPY 8 X MARK SENDMSG VOID M # MODE REPL REGISTER MARK SENDMSGLOOP COPY F M TEST EOF FJMP SENDMSGLOOP # COPY 0 M MODE COPY 0 M SEEK -9999 SUBI X 1 X TEST X = 0 FJMP SENDMSG WIPE HALT # MARK REGISTER LINK 800 MARK WRITEMSGLOOP COPY M T FJMP MSGEND COPY T #DATA JUMP WRITEMSGLOOP MARK MSGEND # COPY M T MARK WAITLOOP SUBI T 1 T TJMP WAITLOOP COPY 1 #PAGE 41. MITSUZEN HDI-10 （神经网络） 目标： 在你的主机中生成指定的文件 文件是一个主机名和主机内#NERV值的列表 该列表按主机号码从小到大排序 每一关的网络拓扑都不一样 不留痕迹 程序： XA：LINK 800 REPL LINK3 REPL LINK3N REPL SENDHOSTNAME # MARK LINK1 LINK 1 REPL LINK1 REPL LINK3 REPL LINK3N JUMP SENDHOSTNAME # MARK LINK1N LINK -1 REPL LINK1N REPL LINK3 REPL LINK3N JUMP SENDHOSTNAME # MARK LINK3 LINK 3 REPL LINK3 REPL LINK1 REPL LINK1N JUMP SENDHOSTNAME # MARK LINK3N LINK -3 REPL LINK3N REPL LINK1 REPL LINK1N # MARK SENDHOSTNAME COPY #NERV X HOST M XB：MAKE @REP 10 NOOP @END MARK RECEIVEHOSTLOOP TEST MRD FJMP RECEIVEEND COPY M F JUMP RECEIVEHOSTLOOP # MARK RECEIVEEND MODE SEEK -9999 # MARK SORTHOST COPY F X SEEK -1 MARK SORTHOSTLOOP COPY F T TEST X > T FJMP NEXT MARK MIN SEEK -1 COPY F X MARK NEXT TEST EOF FJMP SORTHOSTLOOP # MARK ONESORTEND COPY X M SEEK -9999 MARK REMOVEHOSTLOOP TEST X = F TJMP REMOVEHOST FJMP REMOVEHOSTLOOP # MARK REMOVEHOST SEEK -1 VOID F SEEK -9999 TEST EOF FJMP SORTHOST # MARK SORTHOSTEND COPY 0 M XC：MAKE MARK RECEIVE COPY M X TEST X = 0 TJMP END MODE REPL HOSTGETNERV COPY X F COPY M F MODE JUMP RECEIVE # MARK HOSTGETNERV LINK 800 REPL LINK3 REPL LINK3N REPL SENDHOSTNAME # MARK LINK1 LINK 1 REPL LINK1 REPL LINK3 REPL LINK3N JUMP SENDHOSTNAME # MARK LINK1N LINK -1 REPL LINK1N REPL LINK3 REPL LINK3N JUMP SENDHOSTNAME # MARK LINK3 LINK 3 REPL LINK3 REPL LINK1 REPL LINK1N JUMP SENDHOSTNAME # MARK LINK3N LINK -3 REPL LINK3N REPL LINK1 REPL LINK1N # MARK SENDHOSTNAME HOST T TEST X = T FJMP END COPY #NERV M MARK END 主线完结撒花✿✿ヽ(°▽°)ノ✿ [post cid="471" /]