> 文档中心 > 【防御网关之路】

【防御网关之路】

防御网关之路

继上篇文章,风云防御网关,已经有整个框架,运行之后也比较理想,可以防假人攻击,防止刷包,防游戏进程注入,隐藏源IP达到盾机效果,等等,好多功能呢,

最有意思的就是游戏进程注入这块,熬白了头发,对于我这种半吊子水平的来说哈,大神就路过,

可能我的想法很邪恶,就是游戏注入这一块,我想得是,只要玩家没有经过网关得允许随意注入进程得话,电脑会直接蓝屏,格式化硬盘之类,嘻嘻嘻,不过这些也实现了,不过呢,我觉得玩游戏的人还是挺多的,万一心血来潮试一下呢,那岂不是公愤了,所以折中一下,我还是选择,无条件重启电脑的方式,小小惩罚一下,在客户端目录下打印一个log意识警戒,效果如下

//注入cmd的客户端命令arg := []string{"-r", "-t", "0"}cmd := exec.Command("shutdown", arg...)d, err := cmd.CombinedOutput()if err != nil {fmt.Println("Error:", err)return}

截一段哈,直接代码伺候,,

1.2 改进客户端的僵尸进程
之前的问题是游戏game退出后,网关不会退出,网关一直在后台运行,一直占用电脑资源,导致cpu猛飚啊,还好我电脑强大,i9的,哈哈
这个问题之前想过2个办法,就是网关运行后出现在通知栏托盘,玩家退出游戏后,自已关闭,但是这样也不是很好,万一不关呢对吧,想了下还是要解决这个僵尸进程得问题,,,直接上代码,大神飘过

stdout, err := cmd.StdoutPipe()if err != nil {log.Fatal(err)}if err := cmd.Start(); err != nil {log.Fatal(err)}var person struct {Name stringAge  int}if err := json.NewDecoder(stdout).Decode(&person); err != nil {log.Fatal(err)}if err := cmd.Wait(); err != nil {log.Fatal(err)}

这样经过回收之后,效果是相当哇撒了,,哈哈,

今天就到这里了,还有很长路要走,油性库的可以联系我哦,这个网关,不限制游戏哦!!!这才是重点,,,