warcraft 3 TFT + ROC, warcraft III,

Replaysowa strzałka Polskie Centrum Replayów - top
Replay Tygodnia / Best Replay
Nie ma żadnych replayów spełniających te wymogi.

Nowy, nielepszy antyhack.

Kilka dni temu pojawił się nowy program przeciw hackom. Ludzie się rzucili na to jak szczerbaty na suchary – pozornie cudowne rozwiązanie. W artykule oczywiście będzie krytyka tego rozwiązania, od samego założenia po wykonanie.
 
Główną funkcją tego programu jest robienie zrzutów ekranu, tak na oko gdzieś co dwie minuty (testowałem na single player dla oszczędności czasu). Już w pierwszym komentarzu możemy przeczytać opinię zwykłego użytkownika:
„I think taking screenshots is the best "anti-hack" there could be (…) „ – „Uważam, że zrzuty ekranu to najlepszy antyhack jaki może być”. Oczywiście zupełnie się z takim twierdzeniem nie zgadzam. Jest kilka rzeczy, powodujących, że zrzuty ekranu to fatalne rozwiązanie.
  1. Zrzuty są duże, praktycznie nie da się zejść poniżej rozmiaru pojedynczego replaya 100KB. Ludzie posiadający lepsze sprzęty muszą robić ogromne, dochodzące do megabajtów zrzuty. Skoro mają lepsze sprzęty to może niech robią? Imho nie.
  2. Wszyscy z grubsza posiadają podobne łącza. Jeśli ktoś ma słabe łącze to będzie musiał spędzić dłuższy czas na wysyłaniu, może nawet więcej niż na graniu. Nadal jesteście nieprzekonani?
  3. Karty graficzne mają taką właściwość, że „odebranie” z nich obrazu jest „wąskopasmowe”. Wszystkie szokujące parametry transferu z pamięci wyrażane w GB/s dotyczą praktycznie tylko transferu pomiędzy modułami zainstalowanymi na karcie i GPU. Przekazanie danych do pamięci systemowej jest zazwyczaj wykonywane przez wąskie gardło o przepustowości w okolicy 130MB/s.
  4. Przeciętny obraz przed kompresją do jpg ma kilka MB. Nie istnieje żaden program zdolny wykonać kompresję takiej ilości danych przy dobrej jakości szybciej, niż wynosi różnica pomiędzy klatkami w grze. Oczywiście ten program robi to w tle, ale obciążenie procesora może się dawać we znaki, szczególnie posiadaczom słabego sprzętu.
  5. Jest tylko kilka funkcji w systemie, które mogą pobierać zrzuty ekranu. Człowiek szukający miejsca, w którym może zaatakować cały system, podmieniając obraz lub wyłączając na czas robienia zrzutu hack ma bardzo proste zadanie do rozwiązania.
 
Wracając do punktu czwartego, można bardzo łatwo policzyć, ile czasu zajmuje robienie zrzutu pojedynczej klatki. Wystarczy włączyć fraps, zacząć nagrywać i mierzyć FPS. Obraz jest wyciągany z karty graficznej nieskompresowany, więc przeliczenie rozmiaru robi się tak:
Rozmiar = rozdzielczość x * rozdzielczość y * bajty zajmowane przez pojedynczy piksel
Przykłady:
640*480*3 (24-bitowy kolor)
1024*768*2 (dla 16-bitowego koloru)
1280x1024*4 (dla 32-bitowego koloru)
 
Co jest najciekawsze, ponieważ pasmo karta graficzna->procesor jest ograniczone, uzyskamy stałą liczbę. Jeśli dysk wyrabia, inaczej otrzymamy maksymalną przepustowość dysku – zazwyczaj daje radę, bo zapis jest w postaci skompresowanej, która przeciętnie daje 1/4 początkowego rozmiaru. Ponieważ zazwyczaj mamy do czynienia z liczbą ~130MB/s, większość dysków nie sprawi problemu aż dojdziemy do 60MB/s (laptopy 20-40MB/s).
 
Przepustowość=FPS*rozmiar. Jednostka: fps (klatki/sekundę) * rozmiar (bajty/klatkę) = bajty/sekundę. Czyli otrzymujemy przepustowość karty graficznej „w drugą stronę” niż podawana na reklamach. Oczywiście zazwyczaj interesuje nas wartość wysyłania, a nie odbierania – ale przy nagrywaniu występuje właśnie ten odwrotny, szczególny przypadek. Na pojedynczym komputerze otrzymamy stałą liczbę, niezależnie od rozdzielczości. Wyjątkiem od reguły mogą być słaby dysk lub głębia koloru (nie jestem na 100% pewien, czy pobieranie następuje tylko w 32-bitowym kolorze i potem jest wszystko zamieniane, czy też jest możliwość wykonania konwersji kolorów przez grafikę. Jakby nie wychodziło, to najprawdopodobniej przy nagrywaniu 24-bit przy ustawieniu w grze 32-bit).
 
Wynika z tego, że przy obecnych kartach graficznych, które posiada 99% ludzi, każda próba pobierania zrzutów ekranu, a już na pewno całego filmiku, jest skazana na porażkę. Ponieważ zrzuty pobierane są rzadko, co kilka minut, to dostrzeżenie tego efektu jest pozornie trudne. W rzeczywistości widoczny jest mały lag, który może drażnić graczy (około 200ms).
 
Punkt piąty w prosty sposób sprawia, że suma kontrolna obrazu, która służy do sprawdzenia autentyczności, jest tylko fałszywym poczuciem bezpieczeństwa. Jeśli hack przechwycił odpowiednie wywołanie systemowe, używane do wykonania zrzutu, to suma będzie poprawna (bo jest liczona „zbyt późno”). Oczywiście samo to, że suma jest liczona i sprawdzana po stronie gracza sprawia, że można wyciągnąć jej algorytm i napisać program, który będzie ją obliczał i przez to „autoryzował” dowolne obrazki. Nie stanowi to więc dodatkowego zabezpieczenia samo z siebie. Tak samo nie zwiększa go zaszyfrowanie późniejszego archiwum zip i podobne pomysły – od momentu podmiany jest już za późno na cokolwiek. Można liczyć najwyżej na złapanie Spike’a :)
 
 
Jakby tego było mało, sam program nie wygląda na rozwojowy. Plik exe jest spakowany programem UPX, a po rozpakowaniu można przejrzeć jego zawartość, co odkrywa, że został napisany przy pomocy języka skryptowego AutoIt. O ile rzeczywiście wszystko działa, to trudno wyobrazić sobie dodanie jakichś trudniejszych trików, stanowiących wyzwanie dla hackerów. Szczerze mówiąc trudniejszy poziom stanowią te wbudowane, które przecież są z łatwością omijane (nie chodzi mi tutaj o system Warden, ale o te kilka trików, które posiada gra nawet bez połączenia z internetem).
Na początek wypadałoby pozbyć się denerwującego przełączania zadań w momencie kompresji (wyskakujące okienko, jeśli jest duże obciążenie procesora), może jeszcze plików tymczasowych (można przecież prosto z pamięci pakować do archiwum, zamiast dwukrotnie zapisywać to samo na dysku). Jeśli uważacie że ta krytyka jest zbyt surowa, to wyślijcie ten program na stronę z hackami. Zapewniam, że nie zostanie na nim sucha nitka.
 
Według mnie, takie rozwiązanie nie posiada żadnych zalet ponad nagrywaniem z kamerki. O ile tutaj jest problem z przesłaniem dużego pliku, to można łatwo utworzyć skrypt, lub nawet instrukcję obsługi VirtualDub, który wyjmuje losowe klatki. Cały proces można stosować tylko do podejrzanych graczy, dla oszczędności czasu. Autoryzacja zamiast sumy kontrolnej to oczywiście ludzkie oczy – wiadomo, że nie jest łatwo podrobić ekran gry nagrywanej z zewnątrz. Omija to także wąskie gardło karty graficznej, bo kamerki są przystosowane do szybkiego transferu swoich danych do zwykłej pamięci (a nie tylko dedykowanej na karcie), więc obciążają znacznie mniej przy porównywalnym FPS.
Oczywiście takie rozwiązanie również posiada słabości – mogą stać się popularne hacki korzystające z drugiego monitora, trudniej jest wszystko ustawić, kamerki są często zabugowane, no i część osób musiałaby posprzątać w pokoju. Jest też niebezpieczeństwo, że przewrócona przypadkiem kamerka pokaże coś, co wypali psychikę młodych graczy.

Zamieścił: pyton, dnia: 17:53:12, Wednesday 03. September 2008

Komentarze:

[19:25:29, Wednesday 03. September 2008]

[20:09:07, Wednesday 03. September 2008] , Zgłoś do moderacji
Taa nice xD :D

[13:57:19, Friday 05. September 2008] , Zgłoś do moderacji
gg wp ! swietnie napisany art ;) i tyle z tego anty-hacka

4: pyton, Support
[16:29:40, Friday 05. September 2008] , Zgłoś do moderacji

[16:37:50, Friday 05. September 2008] , Zgłoś do moderacji
wg mnie przydalby sie art o rejestrze, usprawnieniu pecka etc :p jakies ciekawe programy jakie polecasz do roznego rodzaju bajerow i tym podobne..

a no i mam do ciebie pytanie: czy da sie tak zrobic, ze odpalasz jakis program i go nie bedzie w procesach windowsa?

6: pyton, Support
[18:30:32, Friday 05. September 2008] , Zgłoś do moderacji

7: Winc
[20:03:48, Friday 05. September 2008] , Zgłoś do moderacji
Idealny tekst zeby przetlumaczyc i wyslac gosciowi :D
gj

8: pyton, Support
[20:33:59, Friday 05. September 2008] , Zgłoś do moderacji

9: Prezesozord, moderator
[15:17:41, Saturday 06. September 2008] , Zgłoś do moderacji

10: pyton, Support
[16:03:19, Saturday 06. September 2008] , Zgłoś do moderacji

11: Berig
[18:26:14, Monday 08. September 2008] , Zgłoś do moderacji

[08:17:49, Saturday 13. September 2008]
a dane wysylane nie moga byc analizowane przez serwer battle.net tylko przez obu graczy ?

13: pyton, Support
[09:14:19, Saturday 13. September 2008] , Zgłoś do moderacji

[23:51:31, Saturday 13. September 2008] , Zgłoś do moderacji
a nie mozna zrobic tak ze wysylane sa wszystkie dane na serwer battle.net odnosnie jednostek a ten analizuje i wysyla tylko te ktore moglby zobaczyc drugi gracz i na odwrot ?

15: pyton, Support
[09:29:41, Sunday 14. September 2008] , Zgłoś do moderacji

[16:36:33, Monday 15. September 2008] , Zgłoś do moderacji
chodzi mi o dane na bierzaco. Tak samo wszystko dziala jak teraz tylko ze + ta analiza serwera. Nie wiem jak moze nabic kilka mb danych jezeli teraz nie nabija.
Mi chodzi o caly system gry sie rozgrywa tak samo tyle ze serwer analizuje widocznosc graczy. Raczej jesli sie przesle mniejsza ilosc jednostek to bedzie mniej danych do przeslania a jezeli cala armia

17: pyton, Support
[16:53:45, Monday 15. September 2008] , Zgłoś do moderacji

[19:48:03, Monday 15. September 2008] , Zgłoś do moderacji

19: pyton, Support
[20:14:22, Monday 15. September 2008] , Zgłoś do moderacji

[22:34:57, Monday 15. September 2008] , Zgłoś do moderacji
ok teraz rozumiem. Czy wybudowana jednostka jest przesylana ?

21: pyton, Support
[07:28:03, Tuesday 16. September 2008] , Zgłoś do moderacji

[08:02:13, Tuesday 16. September 2008] , Zgłoś do moderacji
nie o to chodzi. Jest pewien ums w ktorym wychodzi po 20 unitow naraz i i jakos daje rade. Zobacz defend of lich king

23: pyton, Support
[08:12:13, Tuesday 16. September 2008] , Zgłoś do moderacji

[18:03:52, Wednesday 14. January 2009] , Zgłoś do moderacji
na metin2 mam anwiazanie z gm i mowie o ahckach

Więcej?

Chcesz znaleźć informacje na konkretny temat? Przejrzyj hasła, których najczęściej dotyczą dodane ostatnio nowości! WC3L, TURNIEJ, WCG, NETWARS, LCW, WORLD CYBER GAMES, TERROR, DOTA, GRUBBY, MYM, PALADYN, WYWIAD, REPPACK, WARCRAFT, BLIZZARD, MOON, PORADNIK, POL-TEAM, BIOT, POLSKA, ESL, KONKURS, LIGA, WORLD ELITE, FUZJA, NGL-ONE, ENC, NGL, TOD, TDEL, SPQR, SLH, MOUZ, PGS, TOUR, GFO, WILQ, BRONZE, KODE5, WILDA, PATCH, TEAM FIGHTING, LADDER, REPREZENTACJA, SILVER, HEADSHOT, EXTREME MASTERS, HEYAH, FLY100%, VOODOO, LYN, KUJA, BIOHAZARD-TEAM, BVG, WICKED, ESWC, ALMOST, TH000, ACIS, KWAKI, CYKLOP, SHOW, KLIMO, REPLAYPACK, INCUP, CLAN BASE, HOORAI, SASE, ELIMINACJE, FINAłY, FNATIC, POLTEAM, SHOWMATCH, WCG 2006, IEST, SRS, FINAł, CYBERSPORT, WE.EU, PLD, SKY, PRAE, REMIND, JAGR, CASIN, LAN, REPLAYS.PL, CHALLENGE, ANIMATOR, 2007, BATTLENET, CARMAC, HAPPY, NATIONS, STARCRAFT, PEDAL, KONKURSIWO, W3ARENA

Copyright © Wszelkie prawa zastrzeżone,
kopiowanie tylko za zgodą właściciela.
2003/2007 by: CyklOP, Muzami, Julas [ Mapa Strony ]
Replayów w bazie: 19538 Kont użytkowników: 11428

Pomysł, oskryptowanie, administracja: CyklOP [jak kupić zagraniczne akcje] [Jak wypełnić W-8BEN] [Jak tanio wymienić walutę] [deutschtests]
Design: Muzami, art w topie strony nadesłał Z4buZa
Skrypt obsługujacy replaye: Juliusz 'Julas' Gonera [ Replay Parser ]
Wykonano w czasie 0.36544299125671 sekund