[原创]csgo数据查找实现透视

您所在的位置:网站首页 csgo回放开透视 [原创]csgo数据查找实现透视

[原创]csgo数据查找实现透视

2022-05-11 07:26| 来源: 网络整理| 查看: 265

比较简单,大牛飘过~~~~ 通过耍玩游戏可以发现,当队友或自己 被敌人 打中后,此游戏(csgo)会给敌方人物或队友上个光的渲染(我就拿我已经修改好透视的了。。。),如下图: 那好,我们暂且姑且这是一个全局开关,bool类型,亮的时候为1,暗的时候为0,然后用CE搜索。。。 实际情况比较复杂,先要开个无人的房间,然后加入一个敌方单位,然后不断测试,不断测试,不断测试。。。。 在讲这个问题之前,我们首先要搞清楚一个游戏的类是需要生成对象的(实体),我们把自己的人物 我这里叫做人物基址 图内的其他单位(包括自己)的对象 叫做 实体对象。。。。 0x1 寻找人物基址 如何寻找?写过游戏的都知道,譬如一个关于人物信息的结构体,他一定有人物HP,MP,人物ID之类的。。如下: struct MyEntity {         int id;         int hp;         int mp;         char name[10]; };   思路是这样的,我们找到人物HP的地址,然后减去人物HP在结构体中的偏移,得到的首地址就是人物对象地址,通过人物对象地址,找到指向 人物对象地址的指针,这个指针就叫做人物基址。。当然也可能是多级指针,为了好理解,我用代码解释一下: MyEntity *pBase = new MyEntity(); pBase->hp = 0; 上述代码 其中的pBase的值就是人物对象的首地址,通过人物对象首地址+hp的偏移处地址的内容设置为0,这样人物血量就会为0了。。。 那么so easy了,开个单人房,通过控制台命令hurtme+血量,改变自身的血量,然后最终可以找到血量偏移为0xfc,人物基址为client.dll+A6E444,然后我们可以修改我们自身的血量为0,然后就死了,这当然仅限于单机模式了。。。 0x2 寻找实体对象列表基址 通过人物基址找到人物对象地址,那么这个人物对象地址一定包含在图内实体对象列表地址中,你可以认为是数组,也可以是链表,实际上是链表。。用CE搜索谁指向了人物对象地址,找到4个常量指针 当然了,第一个是人物基址,我们看看第二个吧,也许就是实体对象列表基址呢? (由于这些图不是一气呵成的,所以有写地址可能对不上号) 实际上是的是的。。看下面的图,此时游戏中就我一个对象: 我现在加入2个bot,看看看。。。 嗯,很明显啊,第一个就是我们的人物对象地址,300203D0,这个结构体的大小为16字节。。大概结构体描述下 struct EntityInfo {         PVOID entityObj;         DWORD id;         EntityInfo *pPre;         EntityInfo *pNext; }; 下面就是遍历整个实体对象了。。。 一个双向链表是吧,结束的标志就是entity->pPre==entity->pNext(这个是因为根据只有一个对象的时候 观察出来的) so,实体对象列表的基址为client.dll+4a5c9c4 0x3 寻找发光基址 到这里,又回到开头了,我这里已经搜到1了。。。用CE搜索谁访问了这个地址,可以得到如下代码段: client.dll+39E8AA - 51                    - push ecx client.dll+39E8AB - E8 E0E1F5FF           - call client.dll+2FCA90 client.dll+39E8B0 - 8B 87 60A80000        - mov eax,[edi+0000A860] client.dll+39E8B6 - 8D B7 58A80000        - lea esi,[edi+0000A858] client.dll+39E8BC - 80 88 B0030000 02     - or byte ptr [eax+000003B0],02 client.dll+39E8C3 - 8B 4E 08              - mov ecx,[esi+08] client.dll+39E8C6 - 85 C9                 - test ecx,ecx client.dll+39E8C8 - 74 13                 - je client.dll+39E8DD client.dll+39E8CA - 56                    - push esi client.dll+39E8CB - 81 C1 A0030000        - add ecx,000003A0 client.dll+39E8D1 - E8 BA67E1FF           - call client.dll+1B5090 client.dll+39E8D6 - C7 46 08 00000000     - mov [esi+08],00000000 client.dll+39E8DD - 8B B7 00A30000        - mov esi,[edi+0000A300] client.dll+39E8E3 - E8 C8B1F0FF           - call client.dll+2A9AB0 client.dll+39E8E8 - 8D 14 F5 00000000     - lea edx,[esi*8+00000000] client.dll+39E8EF - 89 45 D0              - mov [ebp-30],eax client.dll+39E8F2 - 2B D6                 - sub edx,esi client.dll+39E8F4 - 8B 08                 - mov ecx,[eax] client.dll+39E8F6 - 8B 45 F8              - mov eax,[ebp-08] client.dll+39E8F9 - 88 44 D1 24           - mov [ecx+edx*8+24],al client.dll+39E8FD - 8B 45 D0              - mov eax,[ebp-30] client.dll+39E900 - 8B 00                 - mov eax,[eax] client.dll+39E902 - C6 44 D0 25 00        - mov byte ptr [eax+edx*8+25],00 client.dll+39E907 - 8B B7 00A30000        - mov esi,[edi+0000A300] client.dll+39E90D - E8 9EB1F0FF           - call client.dll+2A9AB0 client.dll+39E912 - 8D 0C F5 00000000     - lea ecx,[esi*8+00000000] client.dll+39E919 - 2B CE                 - sub ecx,esi client.dll+39E91B - 8B 00                 - mov eax,[eax] client.dll+39E91D - C7 44 C8 2C 00000000  - mov [eax+ecx*8+2C],00000000 client.dll+39E925 - 8B B7 00A30000        - mov esi,[edi+0000A300] client.dll+39E92B - E8 80B1F0FF           - call client.dll+2A9AB0 client.dll+39E930 - F3 0F10 45 F4         - movss xmm0,[ebp-0C] client.dll+39E935 - 8D 0C F5 00000000     - lea ecx,[esi*8+00000000] client.dll+39E93C - 2B CE                 - sub ecx,esi client.dll+39E93E - 80 7D F8 00           - cmp byte ptr [ebp-08],00 client.dll+39E942 - 8B 00                 - mov eax,[eax] client.dll+39E944 - F3 0F11 44 C8 04      - movss [eax+ecx*8+04],xmm0 client.dll+39E94A - F3 0F10 45 F0         - movss xmm0,[ebp-10] client.dll+39E94F - F3 0F11 44 C8 08      - movss [eax+ecx*8+08],xmm0 client.dll+39E955 - F3 0F10 45 EC         - movss xmm0,[ebp-14] client.dll+39E95A - F3 0F11 44 C8 0C      - movss [eax+ecx*8+0C],xmm0 client.dll+39E960 - 74 0F                 - je client.dll+39E971 client.dll+39E962 - F3 0F10 45 E8         - movss xmm0,[ebp-18] client.dll+39E967 - F3 0F59 05 2CE4261B   - mulss xmm0,[client.dll+9FE42C] client.dll+39E96F - EB 03                 - jmp client.dll+39E974 client.dll+39E971 - 0F57 C0               - xorps xmm0,xmm0 client.dll+39E974 - 8B B7 00A30000        - mov esi,[edi+0000A300] client.dll+39E97A - F3 0F11 45 E8         - movss [ebp-18],xmm0 client.dll+39E97F - E8 2CB1F0FF           - call client.dll+2A9AB0 client.dll+39E984 - F3 0F10 45 E8         - movss xmm0,[ebp-18] client.dll+39E989 - 8D 0C F5 00000000     - lea ecx,[esi*8+00000000] client.dll+39E990 - 2B CE                 - sub ecx,esi client.dll+39E992 - 8B 00                 - mov eax,[eax] client.dll+39E994 - F3 0F11 44 C8 10      - movss [eax+ecx*8+10],xmm0 client.dll+39E99A - 5F                    - pop edi client.dll+39E99B - 5E                    - pop esi client.dll+39E99C - 8B E5                 - mov esp,ebp client.dll+39E99E - 5D                    - pop ebp client.dll+39E99F - C3                    - ret 请观察上述蓝色表明出: 1.mov [ecx+edx*8+24],al 这条语句,若al为1,则开启人物发光,为0则关闭,sososososo 这里搜索ecx,可以找到指向ecx的指针,我这里就叫做发光基址吧。。 edx是一个人物的类似ID的玩意儿,向上看,可以知道  lea edx,[esi*8+00000000] sub edx,esi 而esi是在这里赋值的mov esi,[edi+0000A300] ,这个edi其实就是实体对象地址,我们之前已经找到过了是吧 那很好搞了,也就是说  (发光对象地址+[实体对象地址 + 0xa300]*0x8-发光对象地址+[实体对象地址 + 0xa300])*0x8+0x24 处 化简下,就是发光对象地址+[实体对象地址 + 0xa300]*0x38+0x24 的内容修改为1,就好了喽?? 但是实际上并没有,因为这个只是一个开关,但是颜色的画还是不会画出来的,颜色的ARGB分别是这4条代码:   movss [eax+ecx*8+04],xmm0 movss [eax+ecx*8+08],xmm0 movss [eax+ecx*8+0C],xmm0 movss [eax+ecx*8+10],xmm0 然后。。。xmm明显是float对吧,写上你喜欢的颜色就好了。。。 最后有个问题就是,上面修改后,只能看到敌方,虽说已经够了,其实要看到我方的话,修改这调语句:   mov byte ptr [eax+edx*8+25],00 强制为0就好了,虽然这里是0,但是可能其他敌方的代码改了这个数值。。。。。 0x4 检测机制 这个比较简单,国外的游戏不会很坑爹,找到kernel32的那条线程,暂停或结束都可以,然后就OK了。。。对了,顺便说下,被人举报的话,是不会立马封号的。。。有个类似审核期,大概再作弊被发现后的1-2个月内会把你处理。。为什么我这么清楚,因为我被ban id了。。。。哈哈哈哈哈哈

【公告】 [2022大礼包]《看雪论坛精华22期》发布!收录近1000余篇精华优秀文章!

上传的附件: 1.jpg (88.13kb,82次下载) 2.png (3.18kb,26次下载) 3.png (10.41kb,17次下载) 4.png (4.38kb,27次下载)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3