Domanda Come vengono rilevati gli script?

Omegalul1

Utente Iron
8 Aprile 2018
1
1
0
19
Non ho mai scriptato e vorrei chiedere a gente che lo fa in che modo agisce per non farsi scoprire xd
Se la riot usa dei programmi per identificare gli script credo sia impossibile non essere scoperti.. o no?
Che programma usate? bol è il migliore?
 
Avevo 3-4 script da usare sullo stesso bol e ti creava il perfetto dodge gratuito, comunque basta non farsi reportare per cheating.
Io che l'ho usato in passato posso dirti al 100% se un nemico avversario lo usa
E anche qualcuno che non lo ha può esserne in grado, se vedi un player 0/5 che fa schifo a giocare ma che riesce comunque a dodgare tutte le tue skill messe perfettamente, mentre altri che giocano meglio no.(Questo per quanto riguarda il dodge che secondo me è il più usato)
 
Non ho mai scriptato e vorrei chiedere a gente che lo fa in che modo agisce per non farsi scoprire xd
Se la riot usa dei programmi per identificare gli script credo sia impossibile non essere scoperti.. o no?
Che programma usate? bol è il migliore?
Gli script e le hack in generale vengono individuati dagli anti-cheat nel stesso modo in cui un antivirus rileva una minaccia, ha al suo interno una serie di firme che questi programmi utilizzano e segnalano l'account, per quelli più precisi controllano anche se dei programmi esterni interagiscono con la memoria ram in cui è allocato il gioco per essere eseguito, come per esempio il vacban che usa Valve che da rogne anche con programmi come CCleaner o Process Hacker che non sono programmi di quel tipo
 
L'anticheat di Riot è davvero molto complesso, tanto che ha diverse funzioni di controllo!

Come sempre quando parlo di anticheat, devo taggare @Dany Dollaro , il quale mi ha dato una mano con lo sviluppo del mio private server dedicandosi alla creazione di un anticheat, e fornendomi molte delle conoscenze che attualmente ho.

Ovviamente ci sono diversi modi per rilevare un hack, perchè ogni cheat che si rispetti ha un dialogo con l'applicazione, la quale può utilizzare diversi strumenti per capire se programmi esterni cercando di dialogare con l'applicazione finale, per "scopi non previsti" :asdangel::

1) Anzi tutto c'è un discorso di Handling del processo: per comunicare con un applicazione hai necessità di conoscere il suo PID e aprire un Handle su quest'ultimo (per farvela corta, un handle su un processo è come un canale di comunicazione che apri su quest'ultimo). Dany ad esempio ha creato un sistema che scannerizzava tutti gli handle e chiudeva quelli che richiedevano permessi speciali (anche perchè handle aperti con permessi speciali molto spesso sono sinonimo di "Memory write")
C:
//PRENDETELO CON LE PINSE, FA CAGARE STO CODICE, È SOLO DIMOSTRATIVO!
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
int main()
 
{
    HWND hwnd = FindWindowA(NULL, "Application NAME"); // Apri un handle partendo dal nome del processo
 
    if (hwnd == NULL) // controlla che l'handle sia aperto
   {
        cout << "Error !" << endl; 
        Sleep(5000);
        exit(-1);
    }
    else {
        DWORD procID;
        GetWindowThreadProcessId(hwnd, &procID);
        HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procID); // Modifica dei permessi, necessaria per chiamare l'api di memory write
 
        if (procID == NULL) {
            cout << "Error !" << endl;
            Sleep(3000);
            exit(-1);
        }
        else {
            DWORD pointerAddress = 0X07A86920;
            if (!ReadProcessMemory(handle, (LPVOID)pointerAddress, &pointerAddress, 4, NULL)) {
                cout << "ReadProcessMemory FAILED" << endl;
                return 0;
            }
        }
    }
}

2) Un altro esempio è l'hook di funzione: quando tenti di injectare una dll che modifica il normale flusso di esecuzione di un programma, vertendo quest'ultimo su una funzione scritta da noi da cui possiamo trarne vantaggio.

Ad esempio ... in uno sparatutto ipotetico, injectiamo una dll che per ogni colpo sparato incrementa le munizioni invece che diminuirle! È possibile verificare se qualcuno ha tentato di eseguire un hook di funzione con dei "semplici controlli in CRC"

3) È possibile sgamare comunque un injection utilizzando alcune tecniche, soprattutto nel caso di scripting che inviano segnali al gioco. Quest'ultimi potrebbero essere controllati e catalogati da sistemi automatizzati al fine di garantirne l'autenticità.


Quando si parla di bypass di sistemi così complessi, spesso e volentieri si parla di creazioni di driver. Mi fermo qua poichè la mia conoscenza è limitata, ma passo la parola a @JunkCoder o @Dany Dollaro che sicuro vi sanno dire di più!
 
  • Mi piace
Reazioni: nfvblog