测试电脑配置玩游戏想更新主要玩游戏求神仙指点

当然是人类历史上第一个程序BUG&br&&br&&figure&&img src=&https://pic1.zhimg.com/50/1e5f46c37cedc7a82c2b9aa_b.jpg& data-rawwidth=&720& data-rawheight=&567& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/50/1e5f46c37cedc7a82c2b9aa_r.jpg&&&/figure&&blockquote&你看到的是人类历史上的第一个程序Bug——烧糊的蛾子一枚。 1947年,哈佛大学的计算机哈佛二代(Harvard Mark II)突然停止了运行,程序员们费尽周折找到了这具虫子尸体,程序错误从此被称作Bug。 原来,哈佛二代当时还没有二极管和晶体管,它是一部继电器计算机,无数个喀哒作响的电磁开关在其中运作。当开关断开的时候会有电弧发出闪光,于是这只妖蛾子奋不顾身地飞了上去,用节肢动物的鲜血开辟了脊索动物的Debug史,从此名垂千古,永远地保存在了华盛顿的美国国家历史博物馆中。&br&&/blockquote&&br&P.S. 有人指出是存于美国国家档案馆
答主特意查找了下貌似没有直接证据证明是这样
由于原文转自网络
目前貌似所有版本都是国家历史博物馆
欢迎知情知友前来指明
当然是人类历史上第一个程序BUG 你看到的是人类历史上的第一个程序Bug——烧糊的蛾子一枚。 1947年,哈佛大学的计算机哈佛二代(Harvard Mark II)突然停止了运行,程序员们费尽周折找到了这具虫子尸体,程序错误从此被称作Bug。 原来,哈佛二代当时还没有…
&figure&&img src=&https://pic3.zhimg.com/v2-ce6df238a68fbf061348_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/v2-ce6df238a68fbf061348_r.jpg&&&/figure&&p&也许你已经读过许多区块链的资料,浏览过很多项目的开发文档,却依然对区块链的运行原理感觉云里雾里,无法进行区块链的相关开发。伟大前辈陆游教导我们“纸上得来终觉浅,绝知此事要躬行”,自己动手从头构建一个区块链系统是探索区块链运行原理的非常好的途径。&/p&&p&这次《从零开始构建一个区块链》将会有一系列文章,从一开始构建一个最简单的可运行的区块链,到后面逐步加入POW/共识/API/UTXO...等等许多比特币中已有的特性。 预计节奏是每周至少更新一篇,总共应该会有十篇左右。&/p&&p&本系列中所有代码均采用JavaScript语言实现,项目地址见:&a href=&https://link.zhihu.com/?target=https%3A//github.com/liangpeili/testcoin& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&liangpeili/testcoin&/a&&/p&&h2&一、区块(Block)&/h2&&p&区块是构建区块链的基本单位。一个区块至少要包含以下信息:&/p&&ul&&li&index: 区块在区块链中的位置;&/li&&li&timestamp: 区块产生的时间;&/li&&li&transactions: 区块包含的交易;&/li&&li&previousHash: 前一个区块的Hash值;&/li&&li&hash: 当前区块的Hash值;&/li&&/ul&&p&其中最后两个属性 previousHash 和 hash 是区块链的精华所在。区块链的不可篡改特性正是由这两个属性保证。&/p&&p&根据上面的信息,我们来构建一个 Block 类: &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&const SHA256 = require('crypto-js/sha256');
class Block {
constructor(index, timestamp) {
this.index =
this.timestamp =
this.transactions = [];
this.previousHash = '';
this.hash = this.calculateHash();
calculateHash() {
return SHA256(this.index + this.previousHash + this.timestamp + JSON.stringify(this.transactions)).toString();
addNewTransaction(sender, recipient, amount) {
this.transactions.push({
recipient,
getTransactions() {
return this.
&/code&&/pre&&/div&&p&&br&&/p&&p&在上面的 Block 类的实现中,我们实用了crypto-js里的SHA256来作为区块的 Hash 算法,这也是比特币中实用的算法。transactions为一系列交易对象的列表。每笔交易的格式为:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{
sender: sender,
recipient: recipient,
amount: amount
&/code&&/pre&&/div&&p&calculateHash方法根据当前区块的信息计算出Hash值。&/p&&p&&br&&/p&&h2&二、 区块链(Blockchain)&/h2&&p&区块构建完成后,下一步就是如何把区块组装成一个区块链了。我们可以这样设计:一个区块链就是一个列表,列表中的每个元素都是一个区块。区块链需要一个创世区块(Genesis Block),它是区块链的第一个区块,需要手工生成。&/p&&p&区块链可以通过以下代码实现:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&class Blockchain {
constructor() {
this.chain = [this.createGenesisBlock()];
createGenesisBlock() {
const genesisBlock = new Block(0, &01/10/2017&);
genesisBlock.previousHash = '0';
genesisBlock.addNewTransaction('Leo', 'Janice', 520);
return genesisB
getLatestBlock() {
return this.chain[this.chain.length - 1];
addBlock(newBlock) {
newBlock.previousHash = this.getLatestBlock().
newBlock.hash = newBlock.calculateHash();
this.chain.push(newBlock);
isChainValid() {
for (let i = 1; i & this.chain. i++){
const currentBlock = this.chain[i];
const previousBlock = this.chain[i - 1];
if(currentBlock.hash !== currentBlock.calculateHash()){
if(currentBlock.previousHash !== previousBlock.hash){
&/code&&/pre&&/div&&p&在Blockchain 这个类中,我们实现了一个创建创世区块的方法。在创世区块中,由于它并没有前一个区块,因此previousHash设置为0。而假定这一天是Leo和Janice的结婚纪念日,Leo给Janice发了一个520元的红包,产生了一笔交易并记录到创世区块中。最后我们把这个创世区块添加到构造函数中,这样区块链就包含一个创世区块了。getLatestBlock和addBlock含义比较明显,这里不再解释。最后一个isChainValid方法用于检测区块链是否有效。如果已经添加到区块链的区块被篡改,那么该方法返回为false。我们会在下一部分试验这个场景。&/p&&p&&br&&/p&&h2&三、测试区块链&/h2&&p&现在我们已经完成一个最简单的区块链啦!是不是很不可思议?在这一部分,我们会创建一个区块链,向该区块链中添加两个完整的区块,并通过修改区块的信息来展示区块链的不可篡改的特性。Here we go!&/p&&p&我们将要创建一个名字叫做testCoin的区块链。首先使用Blockchain类新建一个对象,此时它应该只包含创世区块。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&const testCoin = new Blockchain();
console.log(JSON.stringify(testCoin.chain, undefined, 2));
运行该程序,结果为:
&index&: 0,
&timestamp&: &01/10/2017&,
&transactions&: [
&sender&: &Leo&,
&recipient&: &Janice&,
&amount&: &520&
&previousHash&: &0&,
&hash&: &cd07f9bcf9c9147cca329dec76d7b544e&
&/code&&/pre&&/div&&p&我们新建两个区块,依此添加到该区块链中。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&block1 = new Block('1', '02/10/2017');
block1.addNewTransaction('Alice', 'Bob', 500);
testCoin.addBlock(block1);
block2 = new Block('2', '03/10/2017');
block2.addNewTransaction('Jack', 'David', 1000);
testCoin.addBlock(block2);
console.log(JSON.stringify(testCoin.chain, undefined, 2));
&/code&&/pre&&/div&&p&可以得到以下结果:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&[
&index&: 0,
&timestamp&: &01/10/2017&,
&transactions&: [
&sender&: &Leo&,
&recipient&: &Janice&,
&amount&: 520
&previousHash&: &0&,
&hash&: &cd07f9bcf9c9147cca329dec76d7b544e&
&index&: &1&,
&timestamp&: &02/10/2017&,
&transactions&: [
&sender&: &Alice&,
&recipient&: &Bob&,
&amount&: 500
&previousHash&: &cd07f9bcf9c9147cca329dec76d7b544e&,
&hash&: &32b96fa0bba9ad822fb0c1f89c8459cb44dbc5d0f1&
&index&: &2&,
&timestamp&: &03/10/2017&,
&transactions&: [
&sender&: &Jack&,
&recipient&: &David&,
&amount&: 1000
&previousHash&: &32b96fa0bba9ad822fb0c1f89c8459cb44dbc5d0f1&,
&hash&: &3a0b9aff93306cfc26be7f854a36dc4fea92018db2&
&/code&&/pre&&/div&&p&testCoin现在包含三个区块,除了一个创世区块以外,剩下的两个区块是我们刚刚添加的。注意每一个区块的previousHash属性是否正确的指向了前一个区块的Hash值。&/p&&p&此时我们使用isChainValid方法可以验证该区块链的有效性。&/p&&p&console.log(testCoin.isChainValid())的返回结果为true。&/p&&p&区块链的防篡改性体现在哪里呢?我们先来修改第一个区块的交易。在一个区块中,Alice向Bob转账500元,假设Alice后悔了,她只想付100元给Bob,于是修改交易信息:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&block1.transactions[0].amount = 100;
console.log(block1.getTransactions())
&/code&&/pre&&/div&&p&Alice查看区块链的交易信息,发现已经改成了100元,心满意得的走了。&/p&&p&Bob看到后,发现交易遭到了篡改,于是开始收集证据,他怎么证明block1的那笔交易不是最初的交易呢?首先,Bob可以调用isChainValid方法,来证明目前的testCoin是无效的因为testCoin.isChainValid()返回值为false。但是testCoin.isChainValid()为什么会返回false呢?这就要从它的实现方式上来看了:首先Alice修改了交易的内容,这个时候block1的Hash值肯定和通过之前交易计算出的Hash值是不同的。这两个值的不同会触发isChainValid返回为false,也就是&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&if(currentBlock.hash !== currentBlock.calculateHash()){
&/code&&/pre&&/div&&p&这部分代码实现的功能。&/p&&p&那既然如此,Alice在修改交易内容的同时修改block1的hash不就可以了吗?于是Alice多了一个步骤:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&block1.transactions[0].amount = 100;
block1.hash = block1.calculateHash();
console.log(testCoin.isChainValid())
&/code&&/pre&&/div&&p&怎么最后还是返回false?还是没有通过验证?原因是因为这段代码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&if(currentBlock.previousHash !== previousBlock.hash){
&/code&&/pre&&/div&&p&每一个区块都存储了上一个区块的Hash值,只修改一个区块是不够的,还需要修改下一个区块存储的previousHash。如果我们事先安全存储了block2的hash值,那无论如何Alice都是不可能在不被发现的情况下篡改已有数据的。在真实的区块链项目中,修改一个区块必须修改接下来该区块之后的所有区块,这也是无法办到的事情。区块链的这个“哈希指针”的特性,保证了区块链数据的不可篡改性。&/p&&p&一个简单的区块链完成了,如何把工作量证明(Proof-Of-Work)添加进去呢? 敬请关注下一篇更新。&/p&&p&&br&&/p&&p&&br&&/p&&p&参考:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//www.savjee.be/2017/07/Writing-tiny-blockchain-in-JavaScript/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Writing a tiny blockchain in JavaScript&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//hackernoon.com/learn-blockchains-by-building-one-& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&hackernoon.com/learn-bl&/span&&span class=&invisible&&ockchains-by-building-one-&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//jeiwan.cc/posts/building-blockchain-in-go-part-1/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Building Blockchain in Go. Part 1: Basic Prototype&/a&&/p&&p&&/p&&p&&/p&&p&&/p&&p&&/p&
也许你已经读过许多区块链的资料,浏览过很多项目的开发文档,却依然对区块链的运行原理感觉云里雾里,无法进行区块链的相关开发。伟大前辈陆游教导我们“纸上得来终觉浅,绝知此事要躬行”,自己动手从头构建一个区块链系统是探索区块链运行原理的非常好的…
&figure&&img src=&https://pic3.zhimg.com/v2-a406d532b5_b.jpg& data-rawwidth=&1228& data-rawheight=&602& class=&origin_image zh-lightbox-thumb& width=&1228& data-original=&https://pic3.zhimg.com/v2-a406d532b5_r.jpg&&&/figure&&p&三种办法。如果你主要看前端项目的代码,直接看第三种。&/p&&p&&br&&/p&&p&1,用Chrome插件Octotree,左侧会出现树形结构,方便你浏览源代码。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d26c4b7b877a60ea0db19e116dc724cb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-d26c4b7b877a60ea0db19e116dc724cb_r.jpg&&&/figure&&p&地址:&/p&&a href=&https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc& data-draft-node=&block& data-draft-type=&link-card& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&chrome.google.com/webst&/span&&span class=&invisible&&ore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc&/span&&span class=&ellipsis&&&/span&&/a&&p&类似的插件还有Sourcegraph:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c1e4fda46ced0ab0b55e1fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-c1e4fda46ced0ab0b55e1fc_r.jpg&&&/figure&&p&地址:&/p&&a href=&https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/sourcegraph/dgjhfomjieaadpoljlnidmbgkdffpack%3Futm_source%3Dchrome-ntp-icon& data-draft-node=&block& data-draft-type=&link-card& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&chrome.google.com/webst&/span&&span class=&invisible&&ore/detail/sourcegraph/dgjhfomjieaadpoljlnidmbgkdffpack?utm_source=chrome-ntp-icon&/span&&span class=&ellipsis&&&/span&&/a&&p&2,用Github Desktop桌面应用。方便把代码clone到本地,然后进行各种git操作。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f5ebddad28b57b6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1320& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/v2-f5ebddad28b57b6_r.jpg&&&/figure&&p&Github Desktop地址:&/p&&a href=&https://link.zhihu.com/?target=https%3A//desktop.github.com/& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic3.zhimg.com/v2-f1e06a1ec075eeda12cce2c30x120.jpg& data-image-width=&1920& data-image-height=&1320& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Simple collaboration from your desktop&/a&&p&至于为什么不提SourceTree,是因为我的题目是高效阅读Github源代码,Github Desktop是官方提供用来操作Github的工具。虽然当然并不仅限于Github上托管的git库,但是用于Github毕竟更方便。&/p&&p&&br&&/p&&p&3,如果你开发前端(Angular,React,ES6,Typescipt),&b&那么最推荐这种方式&/b&!直接把Chrome变成一个在线IDE。帮你把npm包都准备好,直接可以运行。&/p&&p&只要把github地址改成&a href=&https://link.zhihu.com/?target=https%3A//stackblitz.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&stackblitz.com/&/span&&span class=&invisible&&&/span&&/a&github开头就可以了。&/p&&p&例如下面视频中,Github项目地址是&/p&&div class=&highlight&&&pre&&code class=&language-http&&&span&&/span&&span class=&err&&https://github.com/gothinkster/angular-realworld-example-app&/span&
&/code&&/pre&&/div&&p&改成&/p&&div class=&highlight&&&pre&&code class=&language-http&&&span&&/span&&span class=&err&&https://stackblitz.com/github/gothinkster/angular-realworld-example-app&/span&
&/code&&/pre&&/div&&a class=&video-box& href=&https://link.zhihu.com/?target=https%3A//www.zhihu.com/video/170560& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/80/v2-be7bca92ccc_b.jpg& data-lens-id=&170560&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/80/v2-be7bca92ccc_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/170560&/span&
&p&&br&&/p&&p&Stackblitz官方地址:&/p&&a href=&https://link.zhihu.com/?target=https%3A//stackblitz.com/& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic4.zhimg.com/v2-e8f746f9d7_180x120.jpg& data-image-width=&150& data-image-height=&106& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Online VS Code IDE for Modern Web Applications&/a&&p&Stackblitz可以算是一个在线VS Code,关于Stackblitz等多内容可以看:&/p&&a href=&https://link.zhihu.com/?target=https%3A//blog.angular.io/run-angular-cli-repos-directly-in-your-browser-4& data-draft-node=&block& data-draft-type=&link-card& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&blog.angular.io/run-ang&/span&&span class=&invisible&&ular-cli-repos-directly-in-your-browser-4&/span&&span class=&ellipsis&&&/span&&/a&&a href=&https://link.zhihu.com/?target=https%3A//medium.com/%40ericsimons/stackblitz-online-vs-code-ide-for-angular-react-7d& data-draft-node=&block& data-draft-type=&link-card& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&medium.com/@ericsimons/&/span&&span class=&invisible&&stackblitz-online-vs-code-ide-for-angular-react-7d&/span&&span class=&ellipsis&&&/span&&/a&&p&&br&&/p&&p&如果你觉得修改URL还是太麻烦,那么看这里:&/p&&a href=&https://link.zhihu.com/?target=https%3A//jdjuan.github.io/ng-now/& data-draft-node=&block& data-draft-type=&link-card& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&NG-NOW&/a&&p&拖拽左上角的图标成为Bookmark,以后只需要访问Github上的Angular项目,然后点击书签就可以了。&/p&&p&&br&&/p&&p&&br&&/p&&p&最后想说,用Stackblitz配合GitHub Pages开发个人主页什么的,那简直是太绝配了!!!你们想到了没有?&/p&&a href=&https://link.zhihu.com/?target=https%3A//pages.github.com/& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic3.zhimg.com/v2-3b40b9cb37daf99cb55038deae0d64aa_180x120.jpg& data-image-width=&1786& data-image-height=&784& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub Pages&/a&&p&&br&&/p&&p&--------------------------------------------------------&/p&&p&评论区有人指出第三种方法只适用于@angular/cli创建的项目,我试了一下,确实是:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b8c16a1352debce870f767_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2478& data-rawheight=&862& class=&origin_image zh-lightbox-thumb& width=&2478& data-original=&https://pic1.zhimg.com/v2-b8c16a1352debce870f767_r.jpg&&&/figure&&p&但是在官方文档里是这么写的:&/p&&blockquote&Yup, you can point directly at Github repos containing Angular/React projects and it'll automatically pull them down & run them.&/blockquote&&a href=&https://link.zhihu.com/?target=https%3A//stackblitz.com/docs%23open-and-embed-github-repos& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic4.zhimg.com/v2-a95ff87e06e6fc8c6ed3_180x120.jpg& data-image-width=&800& data-image-height=&549& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Documentation - StackBlitz&/a&&p&所以React的项目,敬请期待吧!&/p&&p&&br&&/p&&hr&&p&想学习Java Web开发,成为Web全栈?&/p&&p&服务器端想学习Spring Boot和Spring Cloud?&/p&&p&前端想学习Typescript和Angular?&/p&&p&不知道前后端如何分离如何配合?&/p&&p&请关注:&/p&&a href=&https://zhuanlan.zhihu.com/p/& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic2.zhimg.com/v2-71dab2dc1f5_180x120.jpg& data-image-width=&716& data-image-height=&500& class=&internal&&陈龙:用JHipster做Java Web全栈开发&/a&&p&&/p&
三种办法。如果你主要看前端项目的代码,直接看第三种。 1,用Chrome插件Octotree,左侧会出现树形结构,方便你浏览源代码。地址:类似的插件还有Sourcegraph:地址:2,用Github Desktop桌面应用。方便把代码clon…
&p&不仅免费软件可以不开源,开源软件的还可以不免费(没想到吧)。&/p&&p&&br&&/p&&p&&b&一般开源,目的有两个,&/b&&/p&&p&&b&1是当我自己资源不足无法完美完成项目时。期待使用了我开源软件的社区参与者,能贡献代码,找到并修复bug。&/b&&/p&&p&&b&2是当我把项目写的很好的时候,希望用这个项目的人能多多宣传我的项目。给我提升名气。&/b&&/p&&p&&br&&/p&&p&但实际上呢,大陆境内开源风气基本没有。最常见的行为是拿你的项目(&b&不限于程序&/b&),花费大量精力抹掉你的版权声明,然后自己用。&/p&&p&&b&更神经病的是,很多人宁可自己写一篇繁琐的博文教大家如何绕过软件bug,也不愿意主动来github上报告bug、更别提修复bug和添加新功能了。(然后这些文章毫不意外的又会被各种盗版)&/b&&/p&&p&&br&&/p&&p&这么搞开源就毫无意义了,不如设置成免费闭源,至少还能逼迫使用者联系我来修复bug。(也就是把免费使用者当作人肉debug测试机)&/p&
不仅免费软件可以不开源,开源软件的还可以不免费(没想到吧)。 一般开源,目的有两个,1是当我自己资源不足无法完美完成项目时。期待使用了我开源软件的社区参与者,能贡献代码,找到并修复bug。2是当我把项目写的很好的时候,希望用这个项目的人能多多宣…
&p&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ced055a105_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2160& data-rawheight=&1216& class=&origin_image zh-lightbox-thumb& width=&2160& data-original=&https://pic1.zhimg.com/v2-ced055a105_r.jpg&&&/figure&&p&&br&&/p&&h2&前言&/h2&&blockquote&写完这篇文章后已经卸载了PUBG,删除了虚拟机及相关文件,释放了服务器,本文仅仅是对我过去几天所遇到的一些问题的记录&br&&/blockquote&&p&&br&&/p&&ul&&li&已在steam中卸载:&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-24f51cfe85aac9b0ac5ea2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1104& data-rawheight=&660& class=&origin_image zh-lightbox-thumb& width=&1104& data-original=&https://pic2.zhimg.com/v2-24f51cfe85aac9b0ac5ea2_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&ul&&li&已经删除win7虚拟机:&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-b068c161704bed1b1d901ce2b6282986_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1532& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&1532& data-original=&https://pic3.zhimg.com/v2-b068c161704bed1b1d901ce2b6282986_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&ul&&li&已经释放掉相关服务器:&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-7e536c06fee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2560& data-rawheight=&1424& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&https://pic2.zhimg.com/v2-7e536c06fee_r.jpg&&&/figure&&p&&br&&/p&&p&这篇文章写完时是,截止到现在,本文谈及的几种方式依然适用,并且我从未被封号&/p&&p&下面开始正文内容:&/p&&p&虽然吃鸡火了很长一段时间了,但最开始接触吃鸡这个游戏是在寒假和朋友们一起吃鸡开黑吧。于是98买了个号然后踏上了我的“求生”之旅,到现在打了一个多月,玩了200小时,发现这个游戏只要分高点,神仙(挂壁)是真的多,都不带演的,而且甚是暴力,除了一般fps游戏常见的自瞄、透视,吃鸡的火爆程度与利益巨大的产业链带来了各式各样的外挂:&br&&a href=&https://link.zhihu.com/?target=http%3A//www.sohu.com/a/6298& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&sohu.com/a/&/span&&span class=&invisible&&6298&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e9f8c7bede3322bce3bae4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&197& data-rawheight=&159& class=&content_image& width=&197&&&/figure&&p&&br&&/p&&p&求生欲促使我开始了我的求生之路。在网上甚至游戏LeadBorad里,有各种卖挂加群什么的,但是稳定性未知,感觉会很容易被封号。其次,外挂的价格都不便宜,听说8元一小时?甚至&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-368cd26a046c170de43c98_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&598& data-rawheight=&565& class=&origin_image zh-lightbox-thumb& width=&598& data-original=&https://pic2.zhimg.com/v2-368cd26a046c170de43c98_r.jpg&&&/figure&&p&&br&&/p&&p&顺便说一句:开挂有风险,买挂需谨慎,尤其当心骗子。&br&知乎:21岁的少年贩卖游戏外挂都日入万元了!你还在往游戏里充钱?&br&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/p/29&/span&&span class=&invisible&&173323&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&不愧是黑产,这价格从来都不让我失望,那么我这种穷逼怎么办?于是我来到全球最大的同性交友网站github需求帮助,发现了几个不错的开源项目。&/p&&blockquote&在介绍我的科学吃鸡之路之前,先简单介绍下传统的外挂,以更好的突出后面要介绍的通过嗅探数据包的方式实现透视的优势所在,你可以略过这部分直接到后面看我是如何配置部署透视的&br&&/blockquote&&h2&传统外挂&/h2&&p&fps游戏都有一个共同的特点,大部分计算都是本地完成的,不可能每一个动作都和服务器交互,有几个原因:&/p&&p&&br&&/p&&ul&&li&会造成服务器负荷过大,提高运营成本&/li&&li&在对枪杀人时,几十ms的延迟可能会扭转战局&/li&&li&会极大影响游戏体验&/li&&/ul&&blockquote&信息安全的一个基本原则,永远不要相信用户的输入。这里的输入就是指在本地进行运算的结果。本地进行的计算越少,与服务器交互的越多,外挂利用难度更大。&br&&/blockquote&&p&由于大量的计算都是在本地完成的,而游戏又是运行在内存中,那么导致了我们有很多种方法进行利用。最简单的就是用CE修改内存里的数据,常规的有注入和Hook,还有各种奇淫技巧。单以注入为例,就有五花八门的注入技术。下面是《游戏外挂攻防艺术》一书中的提到的一些方法&/p&&p&&br&&/p&&ul&&li&注册表注入&/li&&li&远线程注入&/li&&li&依赖可信进程注入&/li&&li&APC注入&/li&&li&消息钩子注入&/li&&li&导入表注入&/li&&li&劫持进程创建注入&/li&&li&LSP劫持注入&/li&&li&输入法注入&/li&&li&ComRes注入&/li&&/ul&&h2&修改本地文件的PUBG外挂&/h2&&blockquote&由于我并没有开发过绝地求生的外挂,也没有仔细研究分析过程序,以下说法纯粹为个人在网上道听途说,外加一点点瞎猜。如果哪里说错了,各位就当做笑话看看吧&br&&/blockquote&&p&在网上看过几篇绝地求生外挂的帖子,大致都是通过修改游戏资源文件(.pak),来实现的各种功能,而PUBG采用BattlEye来实现反外挂,游戏运行时后台有个叫BEservice.exe的进程,进游戏后打开任务管理器就能看到两个很明显的PUBG logo的进程,另外一个叫TslGame.exe是游戏的进程。BEservice.exe对PAK修改的检测十分严格,而且不断在更新,这也是各种辅助有时在游戏更新后会失效的一个主要原因。而基本上一个外挂失效,也只用更新下过检测(BEservice.exe),就能满血复活了。关于过检测的一些旧方法,可以看大佬的经验分享(需要登陆吾爱破解的账号才有权限查看):&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//www.52pojie.cn/thread--1.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&52pojie.cn/thread-70375&/span&&span class=&invisible&&7-1-1.html&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&但是我从来没用过这种靠在本地的修改来获取仙力的外挂,因为:&/p&&p&&br&&/p&&ul&&li&我觉得这是很容易被检测到的,因为BattlEye的外挂检测机制对于我们来说是一个黑盒,我们不可能总是怀着侥幸心理,希望不被检测到。&/li&&li&这种多人fps游戏,其实一个透视就够了,而透视不一定要通过修改本地文件实现,可以对游戏的数据包进行嗅探分析实现,不像其他一些功能,如:自瞄,路飞挂,穿墙,无后,遁地什么乱七八糟的,大多都是必须要修改本地文件的&/li&&/ul&&blockquote&由于使用修改本地文件实现的外挂风险特别大,所以我选择了一种更不容易被PUBG察觉的方式,嗅探网络流量&br&&/blockquote&&h2&嗅探网络流量包的PUBG外挂&/h2&&p&首先,说下这种外挂为什么不容易被检测,更加稳定。&/p&&h2&大致原理&/h2&&blockquote&这里我们称运行PUBG的电脑为“游戏机”,嗅探流量实现透视的为“中间机”。&br&&/blockquote&&p&正常玩游戏时,我们的网络拓扑图是这样的&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-47faaffd9621_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&500& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic2.zhimg.com/v2-47faaffd9621_r.jpg&&&/figure&&p&&br&&/p&&p&在局域网中使用中间机嗅探流量后:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3ef74cd502b2ab2e6ebf810_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&589& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&589& data-original=&https://pic1.zhimg.com/v2-3ef74cd502b2ab2e6ebf810_r.jpg&&&/figure&&p&&br&&/p&&p&更高级点,也是我现在用的,买一个国外服务器,部署透视和Shadowsocks服务,同时实现游戏网络加速、透视加科学上网的效果&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-4dc6d0508a5dae7af9737_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&584& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&584& data-original=&https://pic3.zhimg.com/v2-4dc6d0508a5dae7af9737_r.jpg&&&/figure&&p&&br&&/p&&p&总的来说,个人认为通过嗅探网络流量包实现的透视有以下几个优势:&/p&&p&&br&&/p&&ul&&li&游戏机(运行PUBG的电脑)并不需要修改任何文件,使用任何软件,不用担心被本地检测,封号等&/li&&li&服务端无法察觉这种嗅探,因为嗅探的前后只会有小到可以忽略不计的延迟差异&/li&&li&实现分屏,游戏与透视分开,这种十分适合主播用,大家看过直播都懂的,主播们偶尔假装看下弹幕,你们怎么知道他是真的在看弹幕呢?然后还有各种开镜必有人的操作&/li&&li&不易被和谐,除非蓝洞加密通讯过程,或者更改通讯协议。但是通过逆向工程还是很容易去分析,改写的。除了投入大量人工成本去不断的更新以获得短期的和谐,蓝洞应该是没什么太好的办法去阻止这种通过嗅探完成的透视&/li&&/ul&&p&我并没有自己对PUBG的通信协议进行分析,于是我上全球最大的同性交友网站搜索有没有轮子,果然发现了几个近段时间热门的开源项目。有以下几个仓库很不错:&/p&&p&Kotlin版本:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//github.com/Jerry1211/RadarProject& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/Jerry1211/Ra&/span&&span class=&invisible&&darProject&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&nodejs版本:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//github.com/txchen/scichicken& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/txchen/scich&/span&&span class=&invisible&&icken&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&Kotlin版本&/h2&&p&这是我最开始所尝试的,透视界面大致为:&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-aae8fd811aa54244f4bab21e6a5fbf69_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1894& data-rawheight=&1010& class=&origin_image zh-lightbox-thumb& width=&1894& data-original=&https://pic2.zhimg.com/v2-aae8fd811aa54244f4bab21e6a5fbf69_r.jpg&&&/figure&&p&&br&&/p&&p&各种物资车辆人物透视应有尽有,项目Readme里面有详细的部署过程,且分为两种方式:&/p&&p&&br&&/p&&ul&&li&单机版:运行PUBG的游戏机后台再开一个虚拟机,但是这种还是比较容易被检测到的。听说现在只要检测到VM的进程直接就给你把游戏关了,我也从没尝试过这种办法&/li&&li&双机版:需要两台电脑,两台电脑使用网线或者VPN或者其他什么方式将网络相互连接起来,让游戏机的网络流量通过中间机,中间机就行嗅探并转发&/li&&/ul&&p&下面简单介绍下我的双机版部署过程,也可以参考:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//docs.google.com/document/d/1hrmnwMoVWmH7GTRwHEeOpGHgehKsETgJRQTacAtgIHQ/edit& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&docs.google.com/documen&/span&&span class=&invisible&&t/d/1hrmnwMoVWmH7GTRwHEeOpGHgehKsETgJRQTacAtgIHQ/edit&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&首先介绍下我的运行环境:&/p&&p&&br&&/p&&ul&&li&游戏机:组装台式电脑 + win10 + PUBG&/li&&li&中间机: MacBook Pro + VMware Fusion + win7 ultimate&/li&&li&连接方式:由于MacBook没有网线插口,我又没有usb网卡,所以我通过局域网VPN的方式连接&/li&&/ul&&p&win7是运行在MacBook的虚拟机上的,设置虚拟机的网络适配器为桥接,使其和游戏机同处于路由器的局域网环境下。在win7上,我们部署透视:&/p&&p&&br&&/p&&ul&&li&安装Java,配置系统环境变量,网上教程一大堆,自己搜吧&/li&&li&安装Maven,并配置所需要的环境变量,参考官网的安装介绍就行了:&a href=&https://link.zhihu.com/?target=https%3A//maven.apache.org/install.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&maven.apache.org/instal&/span&&span class=&invisible&&l.html&/span&&span class=&ellipsis&&&/span&&/a&&/li&&li&设置环境变量&code&MAVEN_OPTS&/code&为&code&-Xms256m -Xms2048m&/code&&/li&&li&&code&git clone https://github.com/Jerry1211/RadarProject.git&/code&&/li&&li&在项目根目录下,使用命令&code&mvn verify install&/code&进行打包编译&/li&&/ul&&p&然后我们在target文件夹下 会多出一个jar包&code&RadarProject-Jerry1211-FORK-jar-with-dependencies.jar&/code&,就OJBK了。&/p&&p&接着是配置我们的网络,使中间机能嗅探游戏机流量。&/p&&h2&中间机:&/h2&&p&&br&&/p&&ul&&li&网络与共享中心-更改适配器设置&/li&&li&按一下&code&ALT&/code&打开左上角菜单-文件-新建传入连接&/li&&li&按照提示选择用户什么的,然后选择IPv4的属性&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-1bcb0c0afba366211efbbc8622ede26d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&952& data-rawheight=&682& class=&origin_image zh-lightbox-thumb& width=&952& data-original=&https://pic2.zhimg.com/v2-1bcb0c0afba366211efbbc8622ede26d_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&ul&&li&根据自己的网络环境配置一下&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-986f9b7cdf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&616& data-rawheight=&446& class=&origin_image zh-lightbox-thumb& width=&616& data-original=&https://pic1.zhimg.com/v2-986f9b7cdf_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&ul&&li&控制面板-系统和安全-Windows防火墙-高级设置&/li&&li&入站规则-新建规则&/li&&li&选择“端口”,下一步&/li&&li&选择tcp,指定端口1723,其他的都默认&/li&&li&入站规则-新建规则&/li&&li&选择“自定义”,下一步&/li&&li&“协议和端口”中“协议类型”一项选择“GRE”,其他的都默认&/li&&/ul&&h2&游戏机:&/h2&&p&&br&&/p&&ul&&li&window设置-网络和Internet-vpn-添加一个VPN连接,服务器地址写win7的局域网地址&/li&&li&填好账号密码,然后连接&/li&&li&运行PUBG&/li&&/ul&&h2&启动透视&/h2&&p&在win7中,我们已经编译好了项目,我们用命令去运行,注意替换这里的两个ip,ip可以用命令&code&ipconfig&/code&查看 :&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&java -jar target\RadarProject-Jerry1211-FORK-jar-with-dependencies.jar &Middle PC IP& PortFilter &Game PC IP&
&/code&&/pre&&/div&&p&如果没什么问题的话,应该会出现一个新的窗口程序,上面是灰着的,那么离成功就差最后一步了。回到游戏机,运行游戏,这时应该能在win7中看到地图和人物透视了&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ec57df2a0c44ad4130893c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/v2-ec57df2a0c44ad4130893c_r.jpg&&&/figure&&p&&br&&/p&&h2&可能遇到的问题&/h2&&p&&br&&/p&&ul&&li&游戏启动后,程序还是灰着的:请检查ip地址是否正确,多尝试几次&/li&&li&加速器问题:网上说是可也用加速器的,但是得是虚拟一个网卡的那种,然后游戏机ip就填虚拟出的那个网卡的ip,如海豚加速器模式二,网易UU加速器模式三,我去注册了账号,领了试用的,然后试了一下,并没有成功&/li&&li&游戏Server too busy:没用加速器的原因,多重试几次就行了&/li&&li&没有NUMPAD(右边的小键盘)去开启关闭游戏的一些功能:用Windows自带的小工具“屏幕键盘”,选项中打开小键盘&/li&&/ul&&h2&nodejs版本&/h2&&p&上面那个版本需要在win7中运行,虽然好像更新过有MACos和Linux的配置文件,但是我编译安装一直失败。而我没有多的windows的电脑,只能用MacBook开一个win7虚拟机的方式去嗅探、实现透视,这种做法十分费电、且烧电脑,而且本身就是一个抓包嗅探,分析数据包,再用UI显示出来的过程,并不需要一定要用Windows系统。然后我发现了这个用nodejs实现的版本,比起上一个,我更喜欢这个,原因如下:&/p&&p&&br&&/p&&ul&&li&在三大操作系统(Windows,Liunx,MACos)上能很方便的部署运行,不会遇到太多问题&/li&&li&UI使用Web服务,只要用浏览器访问指定ip和端口就行了&/li&&li&界面更友好,物资显示更清楚、明朗,方便的开关&/li&&/ul&&p&效果图如下,这是没开比赛的,开始比赛后才会显示人物,物资:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b110166dca01a9c162ac4410801eaa14_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2560& data-rawheight=&1416& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&https://pic1.zhimg.com/v2-b110166dca01a9c162ac4410801eaa14_r.jpg&&&/figure&&p&&br&&/p&&h2&在MacBook上部署&/h2&&blockquote&部分命令请根据自己的网卡名称和网络环境自行修改&br&&/blockquote&&p&&br&&/p&&ul&&li&首先,安装nodejs和npm,并更新到最新版&/li&&li&允许转发流量&/li&&li&&code&sudo sysctl -w net.inet.ip.forwarding=1&/code&&/li&&li&&code&echo &nat on en0 inet from 192.168.1.0/24 to any -& 192.168.1.141& | sudo pfctl -v -ef -&/code&&/li&&li&克隆项目,部署安装&/li&&li&&code&git clone https://github.com/txchen/scichicken.git&/code&&/li&&li&&code&cd scichicken&/code&&/li&&li&&code&npm i&/code&&/li&&li&&code&npm i -g pino&/code&&/li&&li&运行项目&/li&&li&&code&node index.js sniff en0 192.168.1.200 | pino&/code&&/li&&/ul&&h2&设置游戏机网关&/h2&&p&&br&&/p&&ul&&li&网络与共享中心-更改适配器设置&/li&&li&选择你的适配器-右键属性-IPv4-属性&/li&&li&这里我设置ip地址为&code&192.168.1.200&/code&,网关设置MacBook的局域网地址,再随便搞个DNS地址上去,大概这样子&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-db4477eca197c6b2b1fe008_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&606& data-rawheight=&630& class=&origin_image zh-lightbox-thumb& width=&606& data-original=&https://pic4.zhimg.com/v2-db4477eca197c6b2b1fe008_r.jpg&&&/figure&&p&&br&&/p&&p&不出意外的话,你运行游戏后就能看到效果了&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-530e56812dbeee710cc11_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-530e56812dbeee710cc11_r.jpg&&&/figure&&p&&br&&/p&&p&但是怎么用加速器还是个问题,因为没有加速器的话,打起来毫无游戏体验。反正这个UI是使用Web服务的,索性把他部署到服务器上,然后随便找个设备用浏览器看不就行了。下面我将介绍本篇文章的重点:如何打造一台 “科学上网+游戏加速器+透视” 三合一的服务器。这也是我觉得最稳定,最方便,最好用的一种方式。&/p&&h2&打造自己的 “科学上网+游戏加速器+透视” 三合一服务器&/h2&&h2&选择服务器&/h2&&p&首先服务器的地区要选择没有墙的,然后延迟也要低,且稳定,才能达到游戏的加速效果。我选择了阿里云的香港服务器,配置信息如下:&/p&&p&&br&&/p&&ul&&li&CPU: 2核&/li&&li&内存: 8 GB&/li&&li&带宽计费方式: 按使用流量&/li&&li&当前使用带宽: 25Mbps(峰值)&/li&&li&操作系统: CentOS 7.4 64位&/li&&/ul&&p&当然,就一个简单的web服务,一般是不需要这么高的配置的,因为我是按流量计费,而且本来就是弄个服务器来研究一下的,没准备长期用,所以我选择了稍高点的配置,至于价格,玩一天也就大概一元RMB多点吧&/p&&h2&使用Shadowsocks链接服务器&/h2&&p&有了服务器,我们下一步就是想办法把游戏机链接到服务器,让服务器能嗅探到游戏的数据包,这里有很多种办法,如vpn、V2ray等,这是我使用较为简便的Shadowsocks。ssh链接上去执行以下命令&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2&&1 | tee shadowsocks-all.log
&/code&&/pre&&/div&&p&然后我选择python语言的,因为其支持udp转发,接着设置好密码,端口及加密方式,脚本会自动帮你安装完成。&/p&&p&安装好后,我们需要在阿里云的云服务器管理控制台更改下安全组规则,放行你的ss服务端口和项目的默认端口20086,如下:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-562b09d8bc8fb4a09ff29d322fd83ce5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1814& data-rawheight=&488& class=&origin_image zh-lightbox-thumb& width=&1814& data-original=&https://pic1.zhimg.com/v2-562b09d8bc8fb4a09ff29d322fd83ce5_r.jpg&&&/figure&&p&&br&&/p&&p&这时用游戏机试试能不能正常转发游戏的数据包以获得加速效果。然而ss的客户端是不支持udp转发的,所以我们下载软件&code&SSTap&/code&,网址:&a href=&https://link.zhihu.com/?target=https%3A//www.sockscap64.com/sstap/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&sockscap64.com/sstap/&/span&&span class=&invisible&&&/span&&/a&&/p&&p&安装好后,添加一个ss代理,根据你刚才填写的信息配置好,模式选择绝地求生,点击闪电符号测试一下udp转发,我们可以看到,阿里云的香港节点延迟还是很不错的,不亚于一些主流的加速器了,这时你可以把它当作一个游戏网络加速器去使用了,或者用他去看一看墙外的世界&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d6ed53bd8fa57f38986f9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1528& data-rawheight=&1094& class=&origin_image zh-lightbox-thumb& width=&1528& data-original=&https://pic2.zhimg.com/v2-d6ed53bd8fa57f38986f9_r.jpg&&&/figure&&p&&br&&/p&&h2&安装nodejs和npm&/h2&&p&我使用NVM(Node version manager)进行安装:&/p&&p&&br&&/p&&ul&&li&下载并安装NVM脚本&/li&&li&&code&curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash&/code&&/li&&li&&code&source ~/.bash_profile&/code&&/li&&li&选择版本安装,我选择v9.8.0&/li&&li&&code&nvm install v9.8.0&/code&&/li&&li&设置默认版本&/li&&li&&code&nvm alias default v9.8.0&/code&&/li&&/ul&&p&检查一下安装成功没&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f63e0deb5c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&570& data-rawheight=&176& class=&origin_image zh-lightbox-thumb& width=&570& data-original=&https://pic2.zhimg.com/v2-f63e0deb5c_r.jpg&&&/figure&&p&&br&&/p&&h2&安装libpcap&/h2&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&yum -y install gcc-c++
yum -y install flex
yum -y install bison
wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
tar -zxvf libpcap-1.8.1.tar.gz
cd libpcap-1.8.1
./configure
make install
&/code&&/pre&&/div&&h2&安装部署项目&/h2&&p&这里的网卡名称和ip地址根据自己的网络环境修改,,其中ip地址不是公网地址,是服务器的私有地址,也就是你ifconfig看到的那个&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&yum install git
git clone https://github.com/txchen/scichicken.git
cd scichicken/
npm i -g pino
node index.js sniff eth0 172.31.***.*** | pino
&/code&&/pre&&/div&&p&然后浏览器访问一下 &code&http://47.75.***.***:20086/&/code&,这里的ip是你服务器的公网地址,端口默认为20086。如果没什么问题,应该能正常显示页面了。&/p&&p&最后,我偏爱于将这个进程放到后台去运行,好让我去做一些其他操作,所以我是这么启动的:&/p&&p&&code&nohup node index.js sniff eth0 172.31.***.*** | pino & Pubglog.txt &&/code&&/p&&h2&体验&/h2&&p&我用这种方式体验了几把,效果还是很不错的,有以下几点:&/p&&p&&br&&/p&&ul&&li&很好的解决了游戏的延迟问题,而且阿里云的服务器,网络延迟也贼稳定&/li&&li&由于透视是通过web服务展现的,你可以将地址分享给队友,然后就相当于一个小队4人都开启了透视,但他们看到的都是你的视角。不过一般一个小队都不会走的太散,基本是没有影响的&/li&&li&我是佛性吃鸡的,不万不得已不杀人,就到处走野区搜搜东西吧,给大家看看我的场均装备&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-32e6aefed8ea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2160& data-rawheight=&1216& class=&origin_image zh-lightbox-thumb& width=&2160& data-original=&https://pic3.zhimg.com/v2-32e6aefed8ea_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&ul&&li&一定意义上的解决了跨平台,分屏等需求,你可以在任何终端上查看网页比如:笔记本,平板,手机等&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ced055a105_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2160& data-rawheight=&1216& class=&origin_image zh-lightbox-thumb& width=&2160& data-original=&https://pic1.zhimg.com/v2-ced055a105_r.jpg&&&/figure&&p&&br&&/p&&p&不过使用之后,感觉还是平板最方便,因为笔记本太大了,占位置,手机屏幕又太小了,如果不横屏,右边只有一小块是显示出来。&/p&&blockquote&值得一提的是,这种方式也极大的方便在直播中作弊:假装拿起手机看看微信,看看弹幕什么的,观众是很难察觉的。&br&&/blockquote&&h2&顺便谈谈鼠标宏&/h2&&p&鼠标宏我也是用过的,github上也有几个不错的开源项目,如:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//github.com/liantian-cn/logitech-pubg& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/liantian-cn/&/span&&span class=&invisible&&logitech-pubg&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&一般是需要罗技的鼠标的,我的是G502。不过弄好打了一局后发现根本不好用,这枪越压越飘,还不如没用压的好,然后就删了&/p&&h2&最后的声明&/h2&&p&&br&&/p&&ul&&li&首先说明,本人从未参与任何外挂开发,制作过程,只是看到几个开源项目,然后部署试用了一下,用完后现已将所有有关文件删除,虚拟机删除,相关服务器也已经释放了&/li&&li&本人从未使用任何外挂获取一分钱的盈利,也从未向他人分享过外挂使用,本人只是作为研究目的尝试使用过几把&/li&&li&请勿将本文所谈到的办法用于任何商业目的&/li&&li&本文只是分享我的部署过程,及使用中碰到的一些问题,并不是鼓励大家去开挂&/li&&li&个人也很反感外挂,每次搜了一大波野区,苟了半天,然后就都送快递给神仙了&/li&&li&我知道很多人会喷我开挂,但是在我这开挂测试的几把里,为了其他玩家的游戏体验,我一般都是尽可能都是绕着他们走的,贯彻佛性吃鸡。&/li&&/ul&
前言写完这篇文章后已经卸载了PUBG,删除了虚拟机及相关文件,释放了服务器,本文仅仅是对我过去几天所遇到的一些问题的记录 已在steam中卸载: 已经删除win7虚拟机: 已经释放掉相关服务器: 这篇文章写完时是,截止到现在,本文谈及的几种方式依…
&p&C 语言单个 &img src=&//www.zhihu.com/equation?tex=%5Ctexttt%7Bif%7D& alt=&\texttt{if}& eeimg=&1&&
暴力版。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-14ade1b1806628dbebd03_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&720& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/50/v2-14ade1b1806628dbebd03_r.jpg&&&/figure&&div class=&highlight&&&pre&&code class=&language-c&&&span class=&cp&&#include &stdio.h&&/span&
&span class=&cp&&#include &stdlib.h&&/span&
&span class=&cp&&#define A(k) ((i && (k && 1)) & 3)&/span&
&span class=&kt&&int&/span& &span class=&nf&&main&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&i&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&n&&i&/span& &span class=&o&&&&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&mi&&20&/span&&span class=&p&&;&/span& &span class=&n&&i&/span&&span class=&o&&++&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kt&&int&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&4&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&p&&{&/span& &span class=&mi&&0&/span& &span class=&p&&},&/span& &span class=&n&&cmin&/span& &span class=&o&&=&/span& &span class=&mi&&10&/span&&span class=&p&&,&/span& &span class=&n&&cmax&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&j&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&n&&j&/span& &span class=&o&&&&/span& &span class=&mi&&10&/span&&span class=&p&&;&/span& &span class=&n&&j&/span&&span class=&o&&++&/span&&span class=&p&&)&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&n&&j&/span&&span class=&p&&)]&/span&&span class=&o&&++&/span&&span class=&p&&;&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&j&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&n&&j&/span& &span class=&o&&&&/span& &span class=&mi&&4&/span&&span class=&p&&;&/span& &span class=&n&&j&/span&&span class=&o&&++&/span&&span class=&p&&)&/span& &span class=&n&&cmin&/span& &span class=&o&&=&/span& &span class=&n&&cmin&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&n&&j&/span&&span class=&p&&]&/span& &span class=&o&&?&/span& &span class=&nl&&cmin&/span& &span class=&p&&:&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&n&&j&/span&&span class=&p&&];&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&j&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&n&&j&/span& &span class=&o&&&&/span& &span class=&mi&&4&/span&&span class=&p&&;&/span& &span class=&n&&j&/span&&span class=&o&&++&/span&&span class=&p&&)&/span& &span class=&n&&cmax&/span& &span class=&o&&=&/span& &span class=&n&&cmax&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&n&&j&/span&&span class=&p&&]&/span& &span class=&o&&?&/span& &span class=&nl&&cmax&/span& &span class=&p&&:&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&n&&j&/span&&span class=&p&&];&/span&
&span class=&k&&if&/span& &span class=&p&&((&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&!=&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&))&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&))&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&))&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&&&/span& &span class=&n&&c&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&])&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&n&&abs&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&mi&&1&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&n&&abs&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&mi&&1&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&n&&abs&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&mi&&1&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&7&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&3&/span& &span class=&o&&&&&/span& &span class=&n&&abs&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span&
&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span& &span class=&o&&&&&/span& &span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&))&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&1&/span& &span class=&o&&&&&/span& &span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&5&/span&&span class=&p&&))&/span& &span class=&o&&!=&/span& &span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&4&/span&&span class=&p&&))&/span& &span class=&o&&||&/span&
&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&mi&&2&/span& &span class=&o&&&&&/span& &span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&o&&==&/span& &span class=&n&&A&/s

我要回帖

更多关于 玩游戏电脑配置 的文章

 

随机推荐