Hikayeler

Reklam vermek için turkmmo@gmail.com

c++taraflı anti-cheat

muhendisbey22

Level 1
Üye
Katılım
7 Ocak 2024
Konular
4
Mesajlar
10
Online süresi
2g 13907s
Reaksiyon Skoru
6
Altın Konu
0
Başarım Puanı
17
TM Yaşı
2 Yıl 3 Ay 13 Gün
MmoLira
368
DevLira
9

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Neler yapacağız
1-Client taraflı harekat ve saldırı hızı limitliycez.
1.1 lalakeratiyi engelliycez
1.2 lalaker prodamage fix
2-moblock mesafesini kısaltıcaz navicat sql taraflı.
7xleri engelliycez sql taraflı (bu biraz kusurlu kod eklnerek düzenlenebilir)bunu yapınca kılıç çevirme 1 karaktere işliyor 4 karaktere birden işlemiyor locna savaşlarında ve toplu savaşlarda sıkıntı olabilir.
4-anismayonla yapılan hileleri engelliycez.
mesela yerden kalkma animasyonu falan.

kod blokların yerini bulun olduğu gibi değiştirin.


1-
ActorInstance.cpp
Kod:
void CActorInstance::SetAttackSpeed(float fAtkSpd)
{//anticheat01
 
    if(m_fAtkSpd > 1.7f){m_fAtkSpd = 1.7f;return;}//anticheat01
 
    m_fAtkSpd=fAtkSpd;
 
    //anticheat01
}

void CActorInstance::SetMoveSpeed(float fMovSpd)
{
    //anticheat01
 
    if(m_fMovSpd > 2.0f){m_fMovSpd = 2.0f;return;}//anticheat01
 
    if (m_fMovSpd==fMovSpd)
        return;

    m_fMovSpd=fMovSpd;

    if (__IsMoveMotion())
    {
        Stop();
        Move();
    }
 
    //anticheat01
}

ActorInstanceBattle.cpp

Kod:
void CActorInstance::__RunNextCombo()
{

    //anticheat01
    if(m_fAtkSpd > 1.7f)
    {
        SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)NULL);
        __asm{
            mov eax,0x444
            jmp eax
        }
    }
    //anticheat01


ActorInstanceEvent.cpp

Kod:
void CActorInstance::__OnMove()
{
 
    //anticheat01
    if(m_fMovSpd > 2.0f)
    {
        __asm{
            mov eax,0x444
            jmp eax
        }
    }
    //anticheat01


Void CActorInstance::__OnAttack(WORD wMotionIndex)
{
 
    //anticheat01
    if(m_fAtkSpd > 1.7f)
    {
        __asm{
            mov eax,0x444
            jmp eax
        }
    }
    //anticheat01

PythonNetworkStream.h

Kod:
        bool SendSyncPositionElementPacket(DWORD dwVictimVID, DWORD dwVictimX, DWORD dwVictimY);

    //    bool SendAttackPacket(UINT uMotAttack, DWORD dwVIDVictim);
        bool SendAttackPacket(DWORD zz, UINT uMotAttack, DWORD dwVIDVictim, DWORD charmeineaici);//anticheat01



PythonNetworkStreamPhaseGame.cpp


Kod:
//    pInstance->SetWalkSpeed(SpeedPacket.walking_speed);
//    pInstance->SetRunSpeed(SpeedPacket.running_speed);
    return true;
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Recv
//anticheat01
bool CPythonNetworkStream::SendAttackPacket(DWORD zz, UINT uMotAttack, DWORD dwVIDVictim, DWORD charmeineaici)
{
 
    if (zz != 5)
        return false;
    if (!__CanActMainInstance())
        return true;
    if (charmeineaici != 241224)
        return false;

PythonPlayerEventHandler.cpp

Kod:
        rkStream.SendAttackPacket(5, uSkill, dwVIDVictim, 241224);//anticheat01
    }

    if (!rkActorVictim.IsPushing())
        return;

    extern bool IS_HUGE_RACE(unsigned int vnum);
    if (IS_HUGE_RACE(rkActorVictim.GetRace()))
        return;

1.1 lalakerati

Kod:
bool IsWall(unsigned race)
{
    switch (race)
    {
        case 14201:
        case 14202:
        case 14203:
        case 14204:
            return true;
            break;
    }
    return false;
}

//////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////
//anticheat01

#include <windows.h>
#include <process.h>
#include <Tlhelp32.h>
#include <winbase.h>
#include <string.h>
void killProcessByName(const char *filename)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
    PROCESSENTRY32 pEntry;
    pEntry.dwSize = sizeof (pEntry);
    BOOL hRes = Process32First(hSnapShot, &pEntry);
    while (hRes)
    {
        if (strcmp(pEntry.szExeFile, filename) == 0)
        {
            HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0,
                                          (DWORD) pEntry.th32ProcessID);
            if (hProcess != NULL)
            {
                TerminateProcess(hProcess, 9);
                CloseHandle(hProcess);
                MessageBox(0, "Lalaker Detected !", "MessageBox caption", MB_OK);
                exit(0);
            }
        }
        hRes = Process32Next(hSnapShot, &pEntry);
    }
    CloseHandle(hSnapShot);
}
/////////////////////////////////////////////////////

//anticheat01

1.2 lalaker prodamage

ActorInstance.h

Kod:
                virtual void OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket, bool s8OmuT0ozFlh9mkGNE) = 0;//anticheat09

                virtual void OnChangeShape() = 0;

ActorInstanceEvent.cpp

Kod:
            virtual void OnHit(UINT uMotAttack, CActorInstance& rkActorVictim, BOOL isSendPacket, bool s8OmuT0ozFlh9mkGNE) {}//anticheat09

            virtual void OnChangeShape() {}

Kod:
//anticheat09
void CActorInstance::__OnHit(UINT uSkill, CActorInstance& rkActorVictm, BOOL isSendPacket)
{
    
    IEventHandler& rkEventHandler=__GetEventHandlerRef();
    rkEventHandler.OnHit(uSkill, rkActorVictm, isSendPacket, true);
    
}
//anticheat09
void CActorInstance::__OnClearAffects()
{
    IEventHandler& rkEventHandler=__GetEventHandlerRef();
    rkEventHandler.OnClearAffects();
}
PythonPlayerEventHandler.h

Kod:
        virtual void OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket, bool s8OmuT0ozFlh9mkGNE);//anticheat09

        void FlushVictimList();

PythonPlayerEventHandler.cpp


Kod:
    //anticheat09
void CPythonPlayerEventHandler::OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket, bool s8OmuT0ozFlh9mkGNE = false)
{
    //block lalaker1prodmg
    if (s8OmuT0ozFlh9mkGNE == false){
        TraceError("HACK GASIT -cenzurat-");
        return;
    }
  
  
    //anticheat09
    DWORD dwVIDVictim=rkActorVictim.GetVirtualID();

2-navicat skill protada en sağ gelin.
  • eSkillType : Effect of dammage (splash etc...)
  • iMaxHit : Number of mobs/player hit by the skill. 0 for no limit.
  • szSplashAroundDamageAdjustPoly : Multiplication of skill dammage (first take 100% and the other take a part of this one by splash)
  • dwTargetRange : Max range of the skill
  • dwSplashRange : Max range of the splash.

  • eSkillType : Hasar etkisi (sıçrama vb...)
    iMaxHit : Becerinin vurduğu çetelerin/oyuncu sayısı. Sınırsız olarak 0.
    szSplashAroundDamageAdjustPoly : Beceri hasarının çarpımı (önce %100'ünü alır ve diğeri sıçrayarak bunun bir kısmını alır)
    dwTargetRange : Yeteneğin maksimum aralığı
    dwSplashRange : Maksimum sıçrama aralığı.

  • oyunda şöyle bir özellik var bi skil atarsan sınırsız nesneye çarpabilir bunun sınırı sql den 0 olarak ayarlandığı için (0 sınırsız demek)
    adamlar hile yaparak sınırsız kere vurabiliyor.
    nasıl mesela packlardan 1 kere skil atıp durma ayarlı normali.
    adam oynanmış packlarla 7kere skil at dur olarka ayarlayınca sınırsız oluyor.

    şöyle birşey yapabiliriz bu sınırı 1 e çekersek 1 kere skil atar.
    ek olarak moblock yaptığında herkezi içine çektiğinde herkeze skil atamaz.
    şöyle sorunlar yol açabilir toplu yaratıklar ve toplu kılıç çevirme işe yaramaz.

  • iMaxHit burdan sınır verebilirsiniz.

  • dwTargetRange burdanda skil mesafesini ayarlarsınız örneğin adam 2000 metre ilerdeyse ruh vuruşu mob lcok sayesinde damage atabiliyor çüğnkü moblcokda yanında gözükür mesafeyi kısaltırsanız uzaktaki adama damage atamaz.


    4.animasyonla yapılan hileleri şöyle engelleyebiliriz.

    1-foxfs
    2-foxfs keylerini değiştiricez herkez açamıycak.
    3-tümpackların uzatılarını ve packdaki isimleri değiştircez.


    örnek.
    pack değitşirme ve metin değitşirme toplu oalrak yapan programlar var bunları kullanıp packalrın ve metinlerin ismini değitşiricez.


    ilk başta yapmanız gereken tüm packları açmak.
    tümpackları açtıkdan sonra.
    tüm uzantıalrı değiştirme programıyla şunu yapıcaksınız.​
  • .gr2
    humekh.gr2
    olarak değiştirceksiniz.
    sonra tüm metin değiştirme programıyla.
    .gr2​
  • humekh.gr2
    olarak değiştiriceksiniz.
    aynı şekilde .msa ları değiştiriceksiniz.​
 

Ekli dosyalar

  • Client.7z
    17.6 MB · Görüntüleme: 0
Son düzenleme:
thanks for sharing
 
Paylaşım için teşekkürler, Normal dosya olarak da paylaşırsanız çok iyi ekleme kolaylığı olur.
 
Paylaşım için teşekkürler, Normal dosya olarak da paylaşırsanız çok iyi ekleme kolaylığı olur.
normal dosya olarak ekledim içinde korayın anticheatide ekli anticheat olarak tüm dosyaalrda arama yaparsanız nereye ne ekledim görmüş olursunuz.

 
güvenli alanda damage engellemeyide burdan ayarlayabilirsiniz.
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst