Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => [WIP]Work in progress => Temu započeo: ZlaPatofna poslato Jun 22, 2025, 18:19:17 POSLE PODNE

Naslov: SA:MP - AntiCheat + Auto Video Recording - BETA
Poruka od: ZlaPatofna poslato Jun 22, 2025, 18:19:17 POSLE PODNE
Mnogi vlasnici manjih SA:MP servera se vrlo cesto susrecu sa raznim vrstama citeva, Zbog manjeg broja admina ili jednostavno neaktivnosti tokom noci.

Ovo je BETA verzija skripte, Ne znam koliko bi bila funckionalna danas 2025 godine,zamisljena je jos davne 2020-2021 ali nikada nije dozivela svetlost dana. Pa bih voleo da cujem diskusije,predloge,kritike... i vredili je zavrsiti do kraja.

Skripta je prvobitno namenjena serverima koji nemaju aktivnu administraciju tokom dana/noci ili u odredjenom periodu.

Da bi skripta bila funkcionalna potrebno je imati:

1. AntiCheat unutar gamemod-a koji je uredjen na nacin da funkcionise zajedno sa cleo skriptom ( razlog ce biti ocigledan u nastavku teksta)
2. ACC koji ce jedini imati pristup skripti
3. Program za snimanje Fraps
4. Racunar koji u odredjenom periodu mora biti ukljucen i prisutan na serveru
5. Cleo
6. SAMPFUNCS

......

Dacemo primer da se nas nalog koji ima ulogu administratora za otkrivanje citera zove AntiCheat_Enabled,
AntiCheat_Enabled je potreban da bude prisutan na serveru u periodu u kojem mu mi odredimo i njegov jedini zadatak, odnosno jedini zadatak tok ACC-a na serveru je da iscitava poruke. Kada dobije Alert od strane servera da je npr... Marko_Markovic Moguce koriscenje Hack-a, Nakon toga nas ACC AntiCheat_Enabled automatski krece da posmatra ( spec ) igraca za kojeg se sumnja da ima Hack narednih 5 minuta.

Nakon sto pokrene /spec nad igracem, skripta automatski pokrece komandu F8 koja bi u nasem slucaju bila komanda za pokretanje snimanja u programu FRAPS, Nakon isteka od 5 minuta skripta prekida snimnaje, snimanje se cuva na nasem racunaru na kojem je prijavljen AntiCheat_Enabled ACC.

Nakon toga nas AntiCheat_Enabled acc ceka sledeci alert kako bi nastavio snimanje sledeceg igraca i na taj nacin, moguce citere snima tokom koriscenja odredjenog cita dok nema administracije na serveru i ako oni o tome u tom trenutku ne znaju nista.

Takodje, skripta pored video zapisa, automatski kreira i LOG koji jednostavno mozemo pregledati, a log izgleda ovako:

Primer moguciciteri.log:

Marko_King - 22.06.2025 15:45:12
Luka_Pro - 22.06.2025 15:52:48

Za jednostavniji i brzi pregled, nakon cega pregledamo video zapise i ukoliko se ispostavi da je igrac snimljen tokom koriscenja odredjenog cita, takav igrac u daljem periodu bude adekvatno sankcionisan.

Nadam se da moj tekst nije previse konfuzan i da iz njega mozete proceniti da li ovo vredi nastavljati ili jednostavno uraditi DELETE.

Cleo mod je trenutno u izradi i izgleda ovako.

{$CLEO}
0000:

repeat
    wait 0
until SAMP.Available()
// CREDITS ZlaPatofnica 2020
//  Proveri korisničko ime
0AC8: my_name = allocate_memory_size 24
SAMP.GetPlayerNickname -1 to my_name  // -1 = lokalni igrač

if 0AD4: 1@ = scan_string my_name format "%s" text_match "AntiCheat_Enabled"
else
    0AC6: free_memory my_name
    0A93: terminate_this_custom_script
end

0AC6: free_memory my_name

// Aktivaciona promenljiva (da spreči pokretanje više puta u 5 min)
0@ = 0

while true
    wait 500

    if 0@ == 0
    then
        if SAMP.IsChatOpen() == false
        then
            0AC8: chat_line = allocate_memory_size 256
            0AC8: name_string = allocate_memory_size 256
            0AC8: spec_command = allocate_memory_size 256
            0AC8: log_line = allocate_memory_size 256

            for 1@ = 0 to 19
                SAMP.GetChatString 1@ color 1 text_to chat_line

                if 0AD4: 2@ = scan_string chat_line format "%s" text_match "Moguc Hack" // Moguc Hack je alert koji bi trebao server da ispisuje
                then
                    // Izvuci ime igrača pre ":"
                    3@ = 0
                    4@ = 0
                    0AF9: len = strlen chat_line

                    while true
                        0A8D: char = read_char chat_line at 3@
                        if char == 58 // ":"
                        then break

                        0A8C: write_char char to name_string at 4@
                        4@ += 1
                        3@ += 1

                        if 3@ >= len
                        then break
                    end

                    0A8C: write_char 0 to name_string at 4@

                    // Pošalji komandu /spec [ime] Ili preimenujte u vašu komandu za specanje
                    0AD3: format spec_command "spec %s" name_string
                    SAMP.SendChat spec_command

                    wait 500

                    // Pritisni F8 odmah
                    0C34: key_down 0x77
                    wait 100
                    0C35: key_up 0x77

                    // Loguj ime + vreme
                    0AA6: call 0x4EEBE0 num_params 0 pop 0
                    0A8D: hour = read_memory 0xB70153 size 1 virtual_protect 0
                    0A8D: minute = read_memory 0xB70154 size 1 virtual_protect 0
                    0A8D: second = read_memory 0xB70155 size 1 virtual_protect 0
                    0A8D: day = read_memory 0xB7014E size 1 virtual_protect 0
                    0A8D: month = read_memory 0xB7014D size 1 virtual_protect 0
                    0A8D: year = read_memory 0xB7014C size 2 virtual_protect 0

                    0AD3: format log_line "%s - %02d.%02d.%d %02d:%02d:%02d" name_string day month year hour minute second
                    0AD3: write_string log_line to_file "cleo\\moguciciteri.log"

                    // Blokiraj aktivaciju na 5 minuta
                    0@ = 1
                    wait 300000

                    // Kraj snimanja F8
                    0C34: key_down 0x77
                    wait 100
                    0C35: key_up 0x77

                    0@ = 0 // Ponovo omogući skriptu
                    break
                end
            end

            0AC6: free_memory chat_line
            0AC6: free_memory name_string
            0AC6: free_memory spec_command
            0AC6: free_memory log_line
        end
    end
end

Naslov: Odg: SA:MP - AntiCheat + Auto Video Recording - BETA
Poruka od: ! Jovcha™ poslato Jun 22, 2025, 20:12:00 POSLE PODNE
Pa iskreno nastavi da radis, jer ce pomognes nekima koji otvaraju servere.
Naslov: Odg: SA:MP - AntiCheat + Auto Video Recording - BETA
Poruka od: V01D poslato Jun 23, 2025, 15:46:31 POSLE PODNE
Zanimljiva zamisao, ali mislim da u startu vidim jedan problem. Fraps sam po sebi uzima oko 4GB memorije za video od jedan minut ( mozda malo manje ), u prevodu ako bi svaki snimak trajao 5 minuta, to je u proseku 15-20gb. E sada, ostavih ga upaljenim 6 sati i recimo da neko koristi speed hack i radi posao. Uglavnom igraci speed pale i gase, sto bi znacilo da bi se s' vremena na vreme izbacio anticheat, pa bi "bot" krenuo da ga snima. Zamisli da taj igrac hoce da ostane celu noc budan dok nema admina i samo radi taj posao. Taj koji "hosta" tog istog bota bi ostao bez memorije na racunaru jako brzo. To bi mozda bilo resivo kada bi se koristio neki cloud server, gde bi stajali samo ti snimci, ali opet mislim da je izbor programa los. Ako bi postojala mogucnost koristiti necega drugog za snimanje, bila bi mnogo bolja opcija.

Takodje bi bilo dobro da moze vise "botova" da se koristi. Na primer, ostavi par admina upaljen racunar preko noci na serveru, i svaki snima. Ali u tom slucaju treba uzeti u obzir koji ce bot sta da snima. Da se belezi koji acc snima kog igraca. Ako neki bot vec snima nekog igraca, da ostali botovi ne snimaju istog.

Koliko vidim promena programa za snimanje je moguca, ali opet ostaje problem sa memorijom. Ovo lako moze da se abuse-a tako da taj koji snima ostane bez prostora jako jako brzo.

Ukoliko znam da taj anticheat ima na serveru, ako vremenom bi se skontalo, pogotovo ako server ima malo igraca, ako bi koristio fraps, igrac bi tom istom u sat vremena mogao da napuca 240GB video sadrzaja. Znaci za 6 sati bi teoretski mogao da mu skine vise od 1TB sa racunara xD. To je u slucaju FRAPS-a.

Nisam siguran kakvo je stanje sa drugim programima ( Bandicam, OBS... ), oni uzimaju drasticno manje memorije, Bandicam za 5 minuta ne bi trebao uzeti vise od 2GB, zavisi od kvalietata videa, ali opet, isti problem. Mislim da je bolja solucija srediti sam anticheat na serveru, a ovako nesto povremeno paliti na koji satic.

Sve u svemu, zanimljiva zamisao, bilo bi dobro realizovati :D
Naslov: Odg: SA:MP - AntiCheat + Auto Video Recording - BETA
Poruka od: xLanmi poslato Jun 23, 2025, 17:25:10 POSLE PODNE
Zanimljivo ali kao sto VOID kaze FRAPS zauzima previse memorije za jedan obican klip i sta ako bude fake detect? Ode memorija.
Ali ima i za to nacina napisati VIDEO reviewer u pythonu , C++ kad vec kodiras automate onda napravis cron job da automatski pogleda video po osnovu i da naprimer geta speed ako cemo za speed hack da geta normal speed kad se radi posao i da proverava u snimku na osnovu brzinomera dole i getspeed funkcije da li je veca od normale pa tek onda da sacuva video za next review.

Drugo je da mozda odradis to na nekom VPS gde je Windows da se podaci sacuvaju u cloudu i da preko web app mogu admini da gledaju te videove i da naprimer obrisu ili auto delete posle nekog vremena.
Takodje mozes da napravis poziv API da ako naprimer ispama 10 puta Speed Hack Speed Hack da prestane snimanje i da mu das priority variablu da admin mora da pogleda taj video jer je veci priority od ostalih itd...

Zanimljivo, keep coding bro
Naslov: Odg: SA:MP - AntiCheat + Auto Video Recording - BETA
Poruka od: ZlaPatofna poslato Jun 23, 2025, 20:10:30 POSLE PODNE
@! Jovcha™

Hvala na podrsci, da li mozda imas neke predloge?

@V01D

Fraps je predstavljen kao jedan od poznatijih programa za snimanje, ali se sustinski moze koristiti bilo koji program koji ima mogucnost pokretanja snimanja na osnovu tastera ( Imaju ih skoro svi )

Sto se tice vise razlicitih botova za snimanje, to je moguce izvesti, ali je problem sto bi takvo koriscenje tehnicki zahtevalo dva,tri,cetri racunara odnosno za svakog bota po jedan... Tako da za sada ostaje 1 bot koji nadgleda server, sto je mislim sasvim ok za prosecan server 50-70 igraca.

Sto se tice prostora, to je problem koji je lako resiv zamenom programa za snimanje, takodje moze se korigovati rezolucija tako da vide bude dovoljno jasan a da sa druge strane ne zauzima preterano puno prostora na HDD.

@xLanmi

Moguce je to uraditi u pythonu, ali se trudim da koristim sto jednostavnije stvari, kako bi pocetnicima bilo sto lakse a isto tako ukoliko neko zeli da nadogradi skriptu da to moze takodje sto jednostavnije da uradi.

Sto se tice VPS-a i Cloud-a, ovo je projekat koji je namenjen niskobudzetnim serverima tako da se to ovde ne uklapa. A cela zamisao je da ovaj bot bude povremeno aktivan par sati ili tokom noci... Ovo svakako ne moze biti potpuna zastita ali moze dosta doprineti bezbednosti servera.

------------------------------------

Trenutno je u izradi logovanje, Odnosno sada je u logu dodato pored imena igraca da ispisuje i za koji moguci hack je alert, kako bi tokom pregleda snimka moglo lakse da se utvrdi o cemu se radi.

Trenutno je u izradi Filterscript koji simulira anticheat, odnosno salje alert igracu koji nosi nick AntiCheat_Enabled,
Pa mozete predloziti koje hackove bi mogao da detektuje: Trenutno je uradjeno, Health Hack, Armor Hack, Weapon Hack, TP Hack, Vehcile Hack, Aim-bot.

Slobodno mozete ostaviti predloge meni ce to puno znaciti a i onima koji ce evenutalno koristiti skriptu, Na kraju cu uraditi detaljan tutorial, kako povezati,instalirati i editovati skriptu po svojim zeljama.