Generáljunk hamis adatokat
2004-et írunk, amikor a Napster már kivérzett de a DC++ épp megjelent. A DC++ volt évekig az illegális fájlcsere eszköze, ami ma nagyjából a torrent.
A Direct Connect úgy működött, hogy voltak szerverek szerte a világban, amikre be lehetett kapcsolódni (egyszerre akár többre is). Nyilván a legpraktikusabb volt valami földrajzilag közeli szerverhez csatlakozni, mert a többi közeli felhasználó is azon lesz. Így lehetett egymástól letölteni a legújabb filmeket, programokat, zenéket relatív gyorsan.
Voltak azonban korlátozások és szabályok, amiket be kellett tartani. Az egyik például az volt, hogy ha nem volt legalább 20GB-nyi anyagod megosztva, akkor azonnal ki lettél rúgva. A protokol hátránya volt továbbá, hogy amikor valaki tőled töltött le, akkor a te sávszélességed annyival csökkent. Így ha volt nálad valami népszerű, gyakran találtad magad a pattintott modemkorszakban, amikor a három perces zeneszám pont három perc alatt töltődött le.
Én az a fajta felhasználó vagyok, aki nem szívesen osztja meg az anyagait mással (tekintve, hogy az még párszáz usernél is megvan), másrészt, mint tudjuk, Magyarországon a letöltés ugyan nem illegális, de a jogdíjköteles anyagok feltöltése igen.
Három problémát akartam egyszerre megoldani: nem megosztani a dolgaimat, nem sérteni törvényt és megtartani a jól megérdemelt sávszélességemet magamnak.
Létezett egy VirtualCD (később DaemonTools) nevű eszköz, amivel tetszőleges ISO fájlt lehetett egy rendszermeghajtóra csatlakoztatni (manapság ezt már a Windows megoldja). Korábban már belefutottam abba a problémába, hogy a hibás floppyk néha hülyeségeket írnak ki a fájlok méretére: lehetett valami többszáz MB is egy hibás szektornak köszönhetően, holott fizikailag nem lehetséges. Ez adta az ötletet: mi lenne, ha az ISO tartalmában a fájlok méretei nem lennének valósak? Lehetne egy 100 bájtos fájl is 700 MB-os, ha ez szerepel az ISO nyilvántartásában. Tettem egy kísérletet és sikerült!
Innentől készen volt a terv: készítsünk egy könyvtárstruktúrát az alábbiakból:
- filmek
- zenék
- programok
Természetesen egyiket sem a saját nevén nevezzük, mert akkor más felhasználók könnyen belenéznének, ezért:
- musics -> mjuzaksz
- movies -> movajsz
- warez -> www.a.rez
Soha, senkinek nem támadt az az ötlete, hogy ezekbe a semmitmondó könyvtárakba belenézzen. Ez már félsiker, de gondolni kell a másik opcióra is: a keresés akkor is megtalálja, ha ilyen buta nevű struktúrában vannak a "dolgaim". Következő fokozat: nevezzük el az anyagokat lehetőleg úgy, hogy a keresőben se bukkanjanak fel: azaz ezer éves filmek elírt vagy magyar névvel, noname dj-k mixei (mert a mixek lehetnek nagy méretűek is), vélhetően ismeretlen szoftvernevek.
Majd ezekből összevissza generáljunk sorszámos, dátumos és a többi fájlokat viszonylag reális méretekkel, hogy emberi szem (pl. DC++ szerver adminisztrátor) számára első ránézésre semmi kétséget ne ébresszen.
Most, hogy a tartalom felépítése megvan, a következő problémán kell dolgozni, azaz, hogyan legyen ezekből több gigabájtnyi? Na erre kellett egy szoftvert írni, ami a kamu struktúrába generált kamu anyagok méreteit megváltoztatja az ISO fájlok belsejéban. A módszer az alábbi volt:
- avi fájlok -> 700 MB +/- 40 MB
- mp3 fájlok (mixek) -> 67 MB +/- 14 MB
- szoftverek (rar, r00, r01, stb fájlok): 6 MB +/- 4 MB
A fájlok nevei és mérete teljesen hihető volt, megtalálni soha nem lehetett, viszont teljesült minden szabály és kritérium, amit a DC++ általában támasztott a felhasználói felé.
Forráskód és a fake.iso fájl a githubon.
Mi történt, ha valaki mégis rájött? Mivel a DC++ szerverek nagyon lazák, a kitiltás után egy másik névvel és IP címmel bármikor vissza lehetett menni és folytatni a megszakadt letöltéseket. Olyannal nem találkoztam, aki külön figyelt volna az én hamis adataimra. De ezt is megkerültem: a DC++ szerverekenk volt több központi listája. Ezeket a listákat a DC++ szerverek tulajdonosai folyamatosan frissen tartották, azaz volt egy párszázas lista mindig, ahova lehetett kapcsolódni.
Így hát programindítás előtt mindig letöltöttem ezt a listát, generáltam egy új random nevet magamnak és becsatlakoztam kb. 100-150 szerverre egyidőben. Alig volt anyag, amit vadászni kellett, szinte mindig mindent megtaláltam. Bónuszként pedig korlátlan sávszélességem lehetett, mert a nálam lévő dolgokat senki nem akarta letölteni.
egy átlagos nap