冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 1885|回覆: 1

[開源] 分享個 CSO反視覺抖動

  [複製鏈接]

6

主題

0

好友

10

積分

新手上路

Rank: 1

UID
232374
帖子
16
主題
6
精華
0
積分
10
楓幣
80
威望
8
存款
0
贊助金額
0
推廣
0
GP
15
閱讀權限
10
性別
保密
在線時間
32 小時
註冊時間
2018-4-20
最後登入
2023-10-14
發表於 2018-5-8 18:20:09 |顯示全部樓層
我記得這個功能以前有人開源過 鼠標地址+xx 寫0 需要開個線程循環寫 非常浪費CPU資源

目前可以用以下這幾種方法實現
第壹種 HOOK V_CalcRefdef
對pparams->punchangle 清零操作 我目前就是用的這種方法
if (g_Vars.AibBot.Enable && g_Vars.AibBot.AntiJitter )
                {
                        VectorClear(pparams->punchangle);
                }

第二種 對寫0地址Nop

bool g_AntiJitterError = false;
void AntiJitter()
{
       
        static bool InitData = false;
        static DWORD dwAddres, dwAddres2;
        static char* Buff[4] = { nullptr,nullptr,nullptr,nullptr };
        static bool IsOK = false;
        if (!InitData)
        {
                InitData = true;
                if (AntiHookGetScanCode((char*)("f3 0f 11 05 ?? ?? ?? ?? F3 0F 10 8F 78 01 00 00"), dwAddres, (HMODULE)Engine::g_Offset.GetHwBase()))
                {
                        DWORD dwOldProtect;
                        VirtualProtect((void*)dwAddres, 1024, PAGE_EXECUTE_READWRITE, &dwOldProtect);
                }
                else
                {
                        LPSTR Msg = UnicodeToUTF8(L"AntiJitter Error1!");
                        g_Util.GameCsoMsg(Msg);
                        g_AntiJitterError = true;
                        return;
                }
                if (AntiHookGetScanCode((char*)("F3 0F 10 81 A0 00 00 00  F3 0F 11 05"), dwAddres2, (HMODULE)Engine::g_Offset.GetHwBase()))
                {
                        DWORD dwOldProtect;
                        VirtualProtect((void*)dwAddres2, 1024, PAGE_EXECUTE_READWRITE, &dwOldProtect);
                }
                else
                {
                        LPSTR Msg = UnicodeToUTF8(L"AntiJitter Error2!");
                        g_Util.GameCsoMsg(Msg);
                        g_AntiJitterError = true;
                        return;
                }
        }
        else
        {
                if (g_Vars.AibBot.AntiJitter)
                {
                        if (Buff[0] == nullptr)
                        {
                                Buff[0] = new char[8];
                                for (int i = 0; i < 8; i++)
                                {
                                        Buff[0][i] = *(byte*)(dwAddres + i);
                                }
                                Buff[1] = new char[8];
                                for (int i = 0; i < 8; i++)
                                {
                                        Buff[1][i] = *(byte*)((dwAddres+0x24) + i);
                                }
                                Buff[2] = new char[0x18];
                                for (int i = 0; i < 0x18; i++)
                                {
                                        Buff[2][i] = *(byte*)((dwAddres2) + i);
                                }
                        }

                        if (!IsOK)
                        {
                                IsOK = true;
                                for (int i = 0; i < 8; i++)
                                {
                                        *(byte*)(dwAddres + i) = 0x90;
                                }
                                for (int i = 0; i < 8; i++)
                                {
                                        *(byte*)((dwAddres + 0x24) + i) = 0x90;
                                }
                                for (int i = 0; i < 0x18; i++)
                                {
                                        *(byte*)((dwAddres2)+i) = 0x90;
                                }
                                LPSTR Msg = UnicodeToUTF8(L"AntiJitter OK!");
                                g_Util.GameCsoMsg(Msg);
                        }

                }
                else
                {
                        //恢复
                        if (IsOK && Buff[0] != nullptr)
                        {
                                IsOK = false;
                                for (int i = 0; i < 8; i++)
                                {
                                        *(byte*)(dwAddres + i) = Buff[0][i];
                                }
                                for (int i = 0; i < 8; i++)
                                {
                                        *(byte*)((dwAddres + 0x24) + i) = Buff[1][i];
                                }
                                for (int i = 0; i < 0x18; i++)
                                {
                                        *(byte*)((dwAddres2)+i) = Buff[2][i];
                                }
                                LPSTR Msg = UnicodeToUTF8(L"AntiJitter off!");
                                g_Util.GameCsoMsg(Msg);
                        }
                }
        }

/*374308E0 - F3 0F11 05 A0757E39   - movss [397E75A0],xmm0
374308E8 - F3 0F10 8F 78010000   - movss xmm1,[edi+00000178]
f3 0f 11 05 ?? ?? ?? ?? F3 0F 10 8F 78 01 00 00

F3 0F 10 45 CC F3 0F 11 05 ?? ?? ?? ??

37517736 - F3 0F10 81 A0000000   - movss xmm0,[ecx+000000A0]
3751773E - F3 0F11 05 A0757E39   - movss [397E75A0],xmm0
37517746 - F3 0F10 81 A4000000   - movss xmm0,[ecx+000000A4]
3751774E - F3 0F11 05 A4757E39   - movss [397E75A4],xmm0

F3 0F 10 81 A0 00 00 00  F3 0F 11 05*/

}

第三種就是循環寫0啦 就不多說了
反正各有優缺點 這個功能只是視覺上沒有後坐力


[發帖際遇]: 死神007 因在微軟「PPT」部門工作,遭到某「八大」妓女提告,支付訴訟費 1 楓幣 幸運榜 / 衰神榜
已有 1 人評分楓幣 收起 理由
幻想 + 5 推一個

總評分: 楓幣 + 5   查看全部評分

複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

29

主題

1

好友

432

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
100894
帖子
480
主題
29
精華
0
積分
432
楓幣
5156
威望
401
存款
0
贊助金額
0
推廣
0
GP
43
閱讀權限
100
性別
在線時間
617 小時
註冊時間
2015-4-27
最後登入
2024-3-25

Android勳章 Apple勳章 2019年紀念勳章 2019中秋節紀念勳章 發帖達人 積分勳章 性別(女) 性別(男)

發表於 2018-5-8 18:32:49 |顯示全部樓層
开源过这功能的是jses40813

不过鼠标+xx 的三个基址有两个已经没有作用
Amateur programmer w/ GameHacking、Full Stack Dev
點評回覆

使用道具 舉報

高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-3-28 23:12

回頂部