i春秋作家:奶权

前言

 玩吃鸡时间长的鸡友们 应该都知道现在的游戏环境非常差 特别在高端局 神仙满天飞 搞得很多普通玩家非常没有游戏体验

 因为吃鸡的火爆 衍生出了一条巨大的外挂利益链 导致市面上出现了各式各样的外挂http://news.17173.com/z/pubg/content/12072017/144924727.shtml

正是因为现在的神仙满天飞 像我这种菜逼实在没办法生存下去 我的报复欲促使我开始了科学研究

 先给大家介绍一下现在市面上的外挂种类

传统外挂

fps游戏都有一个共同的特点,大部分计算都是本地完成的,不可能每一个动作都和服务器交互,有几个原因:

    • 会造成服务器负荷过大,提高运营成本
    • 在对枪杀人时,几十ms的延迟可能会扭转战局
    • 会极大影响游戏体验

信息安全的一个基本原则,永远不要相信用户的输入。这里的输入就是指在本地进行运算的结果。本地进行的计算越少,与服务器交互的越多,外挂利用难度更大。”>信息安全的一个基本原则,永远不要相信用户的输入。这里的输入就是指在本地进行运算的结果。本地进行的计算越少,与服务器交互的越多,外挂利用难度更大。由于大量的计算都是在本地完成的,而游戏又是运行在内存中,那么导致了我们有很多种方法进行利用。最简单的就是用CE修改内存里的数据,常规的有注入和Hook,还有各种奇淫技巧。单以注入为例,就有五花八门的注入技术。下面是《游戏外挂攻防艺术》一书中的提到的一些方法:

    • 注册表注入
    • 远线程注入
    • 依赖可信进程注入
    • APC注入
    • 消息钩子注入
    • 导入表注入
    • 劫持进程创建注入
    • LSP劫持注入
    • 输入法注入
    • ComRes注入

修改本地文件的PUBG外挂

本篇文章就是基于这种方法实现的,原理是通过修改本地游戏资源(*.pak),来实现的各种功能,而PUBG采用BattlEye来实现反外挂,游戏运行时后台有个叫BEservice.exe的进程,进游戏后打开任务管理器就能看到两个很明显的PUBG logo的进程,另外一个叫TslGame.exe是游戏的进程。BEservice.exe对PAK修改的检测十分严格,而且不断在更新,这也是各种辅助有时在游戏更新后会失效的一个主要原因。而基本上一个外挂失效,也只用更新下过检测(BEservice.exe),就能满血复活了。

外挂介绍来自:https://bbs.ichunqiu.com/thread-37371-1-1.html?from=timeline&isappinstalled=0

科学研究

 上面说了基本上通过修改pak文件的外挂失效只需要更新一下过检测就行了

自从前几天的游戏大更后 市面上很多过检测的方法都已经失效了 查了很多资料实验了很多次后 找到了个目前来说还算是稳定的方法:

复制一份PUBG目录 以下称bypass目录将PUBG目录重命名为PUBG1使用mklink命令创建bypass目录的软链接命名为PUBG使用mklink命令创建功能pak文件的软链接 将其放入PUBG这个软链接中的paks目录登steam 随便开一局游戏 上飞机后 删除第四步在paks目录里创建的软链接删除第三步创建的PUBG软链接将PUBG1目录重命名回PUBG

 这样就大功告成了 前4步是初始化 后3步才算是过检测 复制完的bypass目录在不进行大更新的情况下可以不删除 也就是说如果你退出了游戏 就需要从第2步重新开始

发明科技

 要完成这个科技其实非常简单 只需要一些简单的文件操作基础即可 这里就不多bb了 直接上成品

#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
@ Author : NNNNNaiquan
@ Mail   : misitenq@gmail.com
"""
import config
import os
import shutil class bypass():
   def __init__(self, steamapps_path):
       self.steamapps_path = steamapps_path
       self.pubg_path      = steamapps_path + 'PUBG'
       self.bypass_path    = steamapps_path + 'bypass'
       if not os.path.exists(self.bypass_path):
           l('Info',unicode('正在初始化','utf-8').encode('gbk'))
           shutil.copytree(self.pubg_path,self.bypass_path)                    #step 1
       shutil.move(self.pubg_path,self.steamapps_path + 'PUBG1')               #step 2
       l('Info',unicode('初始化完成','utf-8').encode('gbk'))    def make_link(self, ):
       pubg_pak_path = self.pubg_path + '\\TslGame\\Content\\Paks\\TslGame-WindowsNoEditor_ui1.pak'
       l('Info',unicode('正在创建软链接','utf-8').encode('gbk'))
       os.popen('mklink /j "' + self.pubg_path + '" "' + self.bypass_path + '"')       #step 3
       os.popen('mklink  "' + pubg_pak_path + '" "' + config.FUNC_PAK_PATH + '"')      #step 4
       l('Info',unicode('软链接创建成功','utf-8').encode('gbk'))    def clean(self, ):
       bypass_pak_path = self.bypass_path + '\\TslGame\\Content\\Paks\\TslGame-WindowsNoEditor_ui1.pak'
       l('Info',unicode('正在过检测','utf-8').encode('gbk'))
       os.remove(bypass_pak_path)                                          #step 5
       os.popen('rd /s /q "' + self.pubg_path + '"')                       #step 6
       shutil.move(self.steamapps_path + 'PUBG1',self.pubg_path)           #step 7
       l('Info',unicode('成功过检测 开始奔放吧','utf-8').encode('gbk')) def l(s,message):
   print '[%s] %s'%(s,message) def main():
   steamapps_path = config.STEAM_PATH + 'steamapps\\common\\'
   if os.path.exists(steamapps_path + 'PUBG'):
       obj = bypass(steamapps_path)
       obj.make_link()
       l('Info',unicode('上飞机后切回来按任意键开始过检测','utf-8').encode('gbk'))
       os.system('pause')
       obj.clean()
   else:
       l('Warning',unicode('请检查配置文件中的游戏目录是否正确','utf-8').encode('gbk')) if __name__ == '__main__':
   main()

 运行脚本前需要在同目录下创建一个config.py文件 里面需要放steam与功能pak的路径 格式:STEAM_PATH = '...\\Steam\\',FUNC_PAK_PATH = '...\\*.pak'

科学实验

 用了个主播无后的pak来测试

最后

这里我就不提供带功能的pak给大家了 虽然有心的话是能找到的 另外本人不敢保证不会封号 也不提倡大家使用外挂 就这样

下期预告:我相信现在大部分玩家的Rank分都挺高的 进几把前十再吃几次鸡 Rank就差不多到1500-1600这样了 然后再要对枪对赢人就没那么容易了 毕竟大家的分都差不多实力也就差不多 这时候掉分的作用就来了 掉到鱼塘分段 体验炸鱼的乐趣 敬请期待 利用Python做绝地科学家(掉分篇)

利用Python做绝地科学家(外挂篇)的更多相关文章

  1. [Python] 利用Python做定时任务, 及时了解互联网动态

    前言 本人因为比较喜欢看漫画和动漫, 所以总会遇到一些问题, 因为订阅的漫画或者动漫太多, 总会忘记自己看到那一章节或者不知道什么时候更新. 故会有这么一个需求, 想记录自己想看的漫画或动画并在其更新 ...

  2. 利用redis做频率限制第一篇

    public Result checkRateLimit(String clientIp, int ipTime, int ipCount) { // 每个ip的redis的key都不一样 Strin ...

  3. 利用python做矩阵的简单运算(行列式、特征值、特征向量等的求解)

    import numpy as np lis = np.mat([[1,2,3],[3,4,5],[4,5,6]]) print(np.linalg.inv(lis)) # 求矩阵的逆矩阵 [[-1. ...

  4. python打怪之路【第三篇】:利用Python实现三级菜单

    程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...

  5. python idea 利用树莓派做家庭报警系统

    1 利用树莓派做家庭报警系统idea 功能如下: 1.程序家侧人不在家(7:00-6:00) 2.树莓派搭配摄像头,对这门进行图像识别,如果变化,门开了,就报警: 3.报警的方式是给我发短信,采信,或 ...

  6. python做量化交易干货分享

    http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...

  7. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  8. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  9. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

随机推荐

  1. vue2.0 移动端,下拉刷新,上拉加载更多插件 转:

    转自:http://www.cnblogs.com/gmajip/p/7204072.html <template lang="html"> <div class ...

  2. ubuntu彻底删除apache2 再重装

    删除apache2不彻底,导致用 apt-get install apache2 重新装时总是不成功.下面是如何彻底删除apache2 1. 删除apache 代码: $ sudo apt-get - ...

  3. Eclipse的maven项目一直无故报错

    maven项目里面没报错,就是项目名称上有红色的叉叉,看着很不舒服: install都成功,但还是有红叉,刷新也没有用,最后搞了好一会才好: 操作步骤: 1.先把项目clean下: 选中要清理的项目, ...

  4. IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA环境搭建,JPA注解@ManyToOne使用详情;JPA外键设置

    一.数据库原型 数据库模型如图所示,而现在需要根据数据库模型,建立对应的实体类,这在项目重构老数据库,采用新的框架重构上应该是比较常见的. 数据库脚本如下: CREATE TABLE `bomsub` ...

  5. 详细解读 :java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed,Java报错之Connection is read-only.

    问题分析: 实际开发项目中,进行insert的时候,产生这个问题是Spring框架的一个安全权限保护方法,对于方法调用的事物保护,一般配置如下: <!-- 事务管理 属性 --> < ...

  6. BZOJ 2120 数颜色 (带修莫队)

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit: 6367  Solved: 2537[Submit][Status][Discuss] ...

  7. 2.2.2synchronized同步代码块的使用

    当两个并发线程访问同一个对象object中的synchronized(this)同步代码块时,一段时间内只能有一个线程执行,另一个线程必须等待期执行完才能执行. package com.cky.bea ...

  8. Ng第一课:引言(Introduction)

    Machine Learning(机器学习)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. 它是人工智能的核心,是使计算机具有智能的根本 ...

  9. hibernate之三种时态之间的转换

    判断状态的标准 oid  和    session相关性 public class HibernateUtils { private static SessionFactory sessionFact ...

  10. web-day3

    第3章WEB03- JS篇 今日任务 使用JS完成图片轮播效果 使用JS完成页面定时弹出广告 使用JS完成表单的校验 使用JS完成表格的隔行换色 使用JS完成复选框的全选效果 使用JS完成省市联动效果 ...