Loading... > 为了开挂,无所不能不其用 <img src="https://www.itggg.cn/usr/themes/handsome/assets/img/emotion/aru/pouting.png" class="emotion-aru"> > 绝地求生可以通过修改``PAK``文件的方式能实现诸如无后座、人物上色、早都不是什么秘密了。这也是很多市面上的插件用的方法,但是对于``PAK``文件如何修改 > 无论国内外都鲜有介绍的教程。 <div class="tip inlineBlock warning"> 本文的目的在于探讨如何修改``PAK``,并综合了UnknownCheats论坛的论坛的一些成果。 </div> **目前知道的信息**: - **1**.吃鸡正式服截止目前时间`UE4`引擎版本为` 4.16 `故``PAK``打包及解包方式都应基于此版本(目前还无法使用`UE4`引擎修改`PAK`) - **2**.目前的``PAK``加密及解密`key`为 `45DD15D6DD2DA50AEB71CE7A5284CF8EA498B2EC3D52B7E336F3EA0071CE44B3` - **3**.解包要通过`QuickBms` 以及一个`bms`的脚本和上面的key实现解密。打包需使用`UE4`引擎自带的`UnrealPAK.exe`来进行。 解包结果如下: 这是一个提取自插件的无后座``PAK``解包 包含两个文件夹 `Blueprints `和 `Animations` 图为 `Blueprints` 内的文件 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=" data-original="https://img-1259793745.itggg.cn/20210302184824.png" alt="image-20210302183052630" style="zoom: 50%;" /> - **4**.对``PAK``的修改是研究的重点。`UnknownCheats`论坛上有人这么说:使用十六进制编辑器对解密出来的武器`uexp`文件 在`160h-200h`修改即可修改武器后坐力。 - **5**.``PAK``的加载机制。遍历游戏目录`content\PAKs\`下的所有``PAK``文件后 全部加载。 **问题:** 1.游戏自带的`252`个``PAK``文件目前还未发现包含类似上图的文件。(是给枪械附加了一条无后座数据吗?而非修改武器文件的方式吗?) ## 2021.1.20研究进展 - **1**.游戏对``PAK``的加载分为同步加载和异步加载2种。 - **2**.后坐力文件位于`PAKchunk1000-WindowsNoEditor_bps.PAk`现在来看是原本的.``PAK``文件内后坐力文件被覆盖了实现的无后座。 - **3**.大更新后/``PAK``s/目录下多了 一个.js文件 如需添加``PAK``文件必须在js文件内加入自己的``PAK``文件名。 发点不知道有什么用的东西。 写了个`SSDT`钩子监视``PAK``文件的加载情况。读取同一个文件会对同一个文件打开四次 即产生四个文件句柄。 目测其中有玄机.... 待研究..  ## 2021.2.2研究进展 到处搜索,最开始我、在`github`上面看到了章鱼的一套源码,利用的是`minifliter`来实现的,原理就是注册一个微过滤驱动,并且在读的回调里,判定操作对象和上线文,对`PUBG`访问``PAK``进行拦截,但是好像这种方法已经被和谐,我试着编译了一个,果然牺牲了一个绝地的号,然后我就想,绝地肯定是要读这个文件的,我又尝试用独占``PAK``的方法来锁,但是但是现在ban的非常厉害 基本都是在线25 全局封禁。 我专门抓了一下 知道了大概的思路,微软提供的`Procmon`还是蛮好用的 不会被反调试检测到...但是功能比较弱 对付``PAK``检测流程足够了 首先 在`PUBG` init的时候 有一个动作 很少见。 ```c++ createfile \`pak`s ``` `createfile`可以打开设备对象,文件,其实还有目录,知道可以打开目录 但是真正的从来没有用过。`PUBG`用这种方式把所有的``PAK``文件读入内存 如果丢进去一个编辑过的``PAK``文件 可以实现各种什么无后座 除草遁地。 其实我一直觉得这样读文件真TM S B...但是也可能是这个位置代码不好改 一动就动全身 不过讲道理 你每次更新恨不得比游戏本体都大,这点代码不会改? `PUBG`在这里加了一个检测,第一个圈缩完的时候 差不多这个时候吧 检测开始 ```c# createfile ntqeuryinfomationfile ``` 这两个函数,那么思路来了,做掉这两个函数 应该就能规避掉他的检测。参数我也找出来了,5和14 、MSDN查了一下 **FileStandardInformation和FilePositionInformation** **具体见**: [https://docs.microsoft.com/en-us ... ueryinformationfile](https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntifs/nf-ntifs-ntqueryinformationfile) 看起来没什么比较特殊的 具体内部不知道 但是应该不会上传服务器验证 只是本地一个校验 我没有去搞反反调试 我的WIN7除了点问题 我不想在物理机上各种加载驱动。 这次抓了一下`API` CALL以后差不多想通了`PUBG`的SB思路了。`createfile`遍历 然后读取整个目录的文件 依次读出来 然后进行验证 这就给了隐藏文件的用处,隐藏文件内核里面走的`API`其实是`ntquerydrietoryfile`.根据`infomation`会返回不同结构 大部分结构中都包含一个链表 其实只要写一个minifilter驱动 把链表中的文件移出去 就跟以前隐藏进程一样 就能实现隐藏文件。 方法的确是有效的 但是ban的也快 我觉得是特征码被抓了,于是我尝试了加壳、隐藏驱动、删服务、删注册表、都无效 我说句实话 `PUBG`这个游戏敢去扫内核内存?我是不太信的...这事实在是有点太危险了...在隐藏驱动之后`(pchunter`查不到)的情况下 想抓出来一个驱动很难 扫内核内存? 不怕蹦么... 所以我开始甩锅给`minifilter `我觉得是检查了微过滤的特征,然后我饶了一条远路 艹PG 然后上内核钩子,结果还真的绕过去了... **上图**:就做了个除草,染色,无后座。至于具体怎么过滤,`windbg`挂上去,看看这两个函数的参数 ,大概就懂了! <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=" data-original="https://img-1259793745.itggg.cn/20210302184826.png" alt="" style="zoom:50%;" /> ## 2021.2.28研究进展 现在绝地求生对``PAK``修改的检测越来越严,导致很多辅助不能用了,现在来说一下现在的一些过检测方法。 吃鸡是一款通用游戏引擎制作的游戏,这款引擎跟经典游戏植物大战僵尸引擎极其相似。 该引擎会指定一个资源文件夹(吃鸡里就是``PAK``s文件夹),搜索该文件夹及子目录里面所有``PAK``文件然后加载,加载顺序是按照文件名排序的,当出现重名文件时,新加载的文件会覆盖旧加载的文件。 于是在最早没有``PAK``检测的版本,最早的吃鸡无后坐方法就是用修改后的``PAK``文件放进去,游戏就会自动加载。 然后为了对抗这种无后坐,吃鸡团队开始检测``PAK``文件。 最早的检测方法很简单:看看``PAKs``文件夹里面有没有多余的``PAK``文件,于是当时的方法就是进游戏以后删掉修改过的``PAK``文件。 那么问题来了:文件正在占用,怎么删掉? 当时本人做了第一个方法:`mklink`建立软链接,进游戏后解除软链接就可以了。 这个方法发现是受到网吧下载的`Steam`启发——吃鸡是不允许放在中文文件夹的,但是网吧的可以。盖伦下载器下载的吃鸡在中文文件夹,但是不影响运行。研究发现是因为用软链虚拟到`C:\steam`里面了。 这个方法稳定了很长时间,直到方法被人抄袭传的遍网都是,这个方法基本上凉凉了。 因为吃鸡开始检测``PAK``文件夹有没有软链。 于是有人发现了新方法(别人发现的):把``PAK``文件夹复制一份重命名,进游戏前修改的文件夹改名``PAK``S放进修改的文件,进游戏后文件夹名字改回来。 这个方法稳定了得有一个半月,直到2月22更新后,这个方法作废了。 **其实还有个办法,但是该办法不稳定:** 进游戏跳伞落地以后,暂停`BEservice.exe`进程(冻结,不是终止),打完一局退出以前再终止该进程重启`BEservice`服务。该方法目前仍然能用,但是冻结时机必须好好掌握,否则很容易出现提示:BEservice反作弊服务没有运行。 有国外大神提供方法,不是冻结进程,而是冻结线程:BEservice的主线程是保留的,只把检测线程暂停。 苦于本人能力有限,不知道怎么做到全自动实现这个功能,只能按照国外方法手动冻结。 到现在已经过去一个多月,该方法目前是否有效不得而知。 2月22日更新后,放入``PAK``和修改``PAK``S文件夹的方法也凉了,现在初始加载就会记录加载了多少个``PAK``文件,有多余的``PAK``文件是不行的。并且吃鸡会着重检测两个重要的``PAK``文件有没有修改 **细心的发现:** - 1:`TslGame-WindowsNoEditor_erangel_lod.PAK` 这个文件是多余的,可以删掉。 - 2:`TslGame-WindowsNoEditor_ui.PAK` 这个文件不会被检测是否修改 - 3:`TslGame-WindowsNoEditor_ui.PAK`调用很晚,可以修改。 于是新方法诞生了: 第一步:删掉原来的`TslGame-WindowsNoEditor_erangel_lod.PAK`文件 ,第二步,将原来的`TslGame-WindowsNoEditor_ui.PAK`改名为`TslGame-WindowsNoEditor_erangel_lod.PAK`,第三步:将修改文件(比如无后坐文件)改名为`TslGame-WindowsNoEditor_ui.PAK`放入``PAKs``文件夹。 说下为什么不直接把修改文件改名为`TslGame-WindowsNoEditor_erangel_lod.PAK:` 因为上面说了,``PAK``文件是按顺序加载,新加载的文件会覆盖旧文件,`TslGame-WindowsNoEditor_erangel_lod.PAK`加载顺序比较靠前,修改后的文件会被后加载的原版文件覆盖失效。 <div class="tip inlineBlock info"> 这个方法也是目前相对来说稳定的一个方法,但是缺点是只有一个文件,同时实现多个功能不方便。 </div> 网上也有软件利用改文件同时实现无后坐和除草2个功能,需要安装`python-2.7`,其实知道的的人都知道,python-2.7可以用来打包``PAK``文件的,他用的方法就是把需要的功能(无后坐、除草)的文件解压出来,通过python-2.7的u4``PAK``.py打包成``PAK``文件,然后重命名为`TslGame-WindowsNoEditor_ui.PAK`,放入`PAKs`文件夹。 删掉`TslGame-WindowsNoEditor_erangel_lod.PAK` 然后修改`TslGame-WindowsNoEditor_ui.PAK`这个方法已经传开了,估计不久就会封掉。不知道下个版本,又能想出什么过检测的方法、东西已经放在网盘里了,有需自取。 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=" data-original="https://img-1259793745.itggg.cn/20210302184827.png" alt="" style="zoom:67%;" /> Last modification:March 2nd, 2021 at 07:11 pm © 禁止转载 Support 如果你想请我喝奶茶的话 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
6 comments
原来大佬会内核编程和反汇编,实属牛逼
哈哈,都是看着网上的教程改的,我也不会,都是现学,献丑了。老哥
现在还能使不?会不会秒封。再说你说放网盘,网盘链接呢
啊哈哈,忘记上传了,https://p.itggg.cn/ZIP(网盘地址)
现在还可以使,亲测过,但是没有敢玩多久,使用请小心,建议使用压枪脚本什么的,比较稳定,我几乎也是用的压枪脚本。
我想提取PUBG皮肤图片,但是我死活不会,可以教教吗
皮肤?在哪个页面的?