Plugin pre cs 1.6 hook. Hook-FAQ: Pochopenie starých a nových spôsobov inštalácie systémových háčikov. Rôzne typy kopu z ľavej strany

Keďže mi veľa ľudí píše a pýta sa, kedy je Hook finálna verzia, rozhodol som sa napísať háčik, ale nie Ar4Mode.
Rozhodol som sa, že svoj starý háčik neposerem (pretože kód je tam hrozný), tak som sa rozhodol napísať nový. S určitými zmenami.

V archíve je háčik pre: Ar4Mode, JBE, UJBL, JBM, ako aj pre iné mody (ale nie sú použité žiadne natívne).
Existuje aj háčik bez uloženia (treba ho zmeniť v plugins-iHOOK.ini).

Rozdiely od starého háku:
[-] Nastavenie farby háčika.
[+] Ukladanie podľa databázy (MsQl).
[+] Cez nastavenie súboru: rýchlosť, typ. veľkosť, koniec spritu.
[+] Môžete nastaviť konkrétny háčik na konkrétny príznak.
[+] Cez nastavenie príznaku súboru: pavučiny/menu/ovládanie/vypnutie.
[+|-] Vizuálne zmeny.
[+] Pridané nové sprity/zvuky (aj keď to môžete urobiť sami).
[+] Cez súbor môžete nastaviť typ konca háčika (scatter alebo single sprite).
[+] (JBE) V čase pátrania si môžete vybrať, komu sa háčik odoberie (od každého alebo len od osoby na zozname hľadaných).
[+] Pekný kód.

Príkazy konzoly:
1) povedzte / hák - webová ponuka
2) +hák / +lano - aktivácia webu

Domorodci:
native_iHOOK_menu(id) - otvorenie ponuky.
native_iHOOK_get_hook_sett(id, iType) - získajte nastavenia háku [ iType: 1 - web sprite / 2 - zvuk / 3 - sprite na konci webu / 4 - veľkosť / 5 - vzhľad / 6 - rýchlosť ]
bool:native_iHOOK_get_hook_player_have(id) - získajte prítomnosť háku.
================================================================

Web v cs1.6 alebo hák pre cs 1.6, nazvite si to ako chcete - ale to je už pomerne bežný plugin vo vašom pulte. Samotný webový plugin v cs vám dáva možnosť pohybovať sa po mape, ako keby ste boli pavúk a lietali so sieťou. To znamená, že sa pohybujete na webe. Samotné nastavenie webového pluginu v cs1.6 umožňuje urobiť ho nielen pre adminov, prípadne pre iné osoby, ale pre všetkých hráčov. Samozrejme, ak ste škodlivý admin, tak webový plugin v cs, môžete si ho nastaviť len pre seba. Teda oplotenie noobov, aby lietali po mape ako živé mäso. Samotným nápadom, tento webový plugin v cs sa už dlho používa aj v quake2, už v roku 2001. A toto je háčik - plugin hook pre cs 1.6 bol predstavený neskôr. Ale to nič nemení na nálade.

Ako používať web v cs:
Aby ste mohli spustiť web v cs1.6, musíte v konzole napísať kľúčovú väzbu. Napríklad, vezmite "r"

Viazať "r" "+lano"

Potom stlačte "r" a môžeme lietať ako pavúk na webe.

Cvars pre webový doplnok v cs:

amx_rope - Povoliť|Zakázať webový doplnok.
amx_rope_count - Koľkokrát môžete použiť web za kolo.

Ako je uvedené vyššie, pre váš server cs existuje ďalší doplnok. Toto je zásuvný modul pre cs.
Používa sa hlavne pre mod prokreedz, aby sa naučil správne skákať.

Ako nainštalovať hook plugin pre cs:
1) Skopírujte súbory doplnkov prokreedz_hook.amxx do kategórie cstrike/addons/amxmodx/.
2) Ďalej otvorte súbor doplnku ( plugins.ini cstrike/addons/amxmodx/configs/) a napíšte tam prokreedz_hook.amxx aby to fungovalo.

Ako používať hák v cs:
Naviažte gombík na háčik a leťte.

Viazať "r" "+háčik"

To je všetko. Môžete si vybrať ktorýkoľvek z dvoch doplnkov a použiť ich na pohyb po mape.

Archív obsahuje súbory webových doplnkov pre cs1.6 a súbory zásuvných modulov pre cs

Sme radi, že vás môžeme privítať na stránke, ktorá je venovaná jednému z najviac populárne hry vo svete - Counter Strike. Naša stránka obsahuje veľa rôzne súbory pre túto hru, rôzne mody, nové záplaty, pluginy.
Web v Counter Strike 1.6 je veľmi populárny plugin. Samotný webový plugin vám umožňuje pohybovať sa po mape, ako keby ste boli pavúk a pohybovať sa po webe. Webový plugin pre cs 1.6 môže byť dostupný nielen pre správcov, ale aj pre bežných hráčov, ak je správne nakonfigurovaný. Prirodzene, ak ste škodlivý administrátor, webový plugin si nakonfigurujete len pre seba, čím zabránite noobom lietať po mape ako mäso. Myšlienka tohto doplnku sa používala už dlho, už v roku 2 (2001). Háčik plugin pre cs 1.6 bol predstavený o niečo neskôr, ale samotná nálada sa tým nemení.
Ako správne používať web v cs? V našom príbehu sa pokúsime dať presnú odpoveď na túto otázku.
Ak chcete spustiť web v cs 1.6, musíte napísať väzbu na konkrétny kľúč v konzole. Zoberme si napríklad tlačidlo „A“.
zviazať "A" + lano
Potom stlačením klávesu "A" môžete lietať ako pavúk.
Predstavujeme vám cvary pre webový plugin v cs:
amx_rope - zapína a vypína plugin;
amx_rope_count – ukazuje, koľkokrát môžete použiť web v jednom kole.
Existuje ďalší plugin pre váš CS - hák. Spravidla sa používa pre prokreedz-mod, aby sa naučil správne skákať (podľa štandardov hry).
Na inštaláciu háku pre CS budete potrebovať:
1) Skopírujte prokreedz_hook.amxx do pluginov cstrike/addons/amxmodx/.
2) Otvor (plugins. ini cstrike/addons/amxmodx/configs/) a aby to fungovalo, napíš tam prokreedz_hook.amxx.
Neviete ako použiť háčik? Je to jednoduché, priviažte gombík na háčik a lietajte ako pavúk - naviažte "A" "+ háčik".
Dúfame, že sme dali jasnú odpoveď pre všetky stránky a držiteľov herné servery na veľmi populárnu a často vznesenú otázku, ako správne používať web na COP, ako na ňom lietať. Tento doplnok otvára nové možnosti pre hru a robí ju ešte zaujímavejšou, najmä preto, že je taká jednoduchá! Objavte nové príležitosti, sledujte najnovší Counter Strike a naučte sa veľa nových a zaujímavých vecí.

Pred vami - kompletný sprievodca o správnom použití ľavého bočného kopu (ľavý hák). Tento článok pomôže tým začínajúcim boxerom, ktorí nemajú radi svoj ľavý hák, a možno aj odborníkom, ktorí chcú zosilniť a vyladiť už umiestnený úder. Preskúmať 4 odlišné typyľavý hák a nacvičte si jeho správne načasovanie.

S boxermi som pracoval dosť dlho na to, aby som vedel, že pre niektorých nie je zaskočenie ľavého kopu žiadny problém, zatiaľ čo pre iných je to veľmi ťažké. Je to ako beh alebo tanec. Niektorí ľudia majú vrodené údaje a ich telo má vynikajúcu mechaniku a krásne sa pohybuje, zatiaľ čo iní sú od prírody „drevení“. Dobrou správou je, že môžete dať ľavý hák.

odlišné typy kop z ľavej strany

Pre mnohých môže byť prekvapením, že existuje niekoľko druhov kopov ľavou stranou. Niektoré druhy sa obliekajú ľahšie, niektoré ťažšie. Odporúčam cvičiť a učiť sa všetky typy pre svoj vlastný prospech.

  1. Ľavý hák napájania- do úderu sa opriete (položíte telo), hlava sa posunie mierne dozadu a doprava, celé telo je v pohybe a jeho váha sa prenáša na zadnú nohu. Tomu hovorím elektrický hák.
  2. Prienikový ľavý hák- počas úderu ide hlava dopredu, ale zostáva blízko súpera; telo sa otáča (skrútené). Zvyčajne je tento úder aplikovaný na telo protivníka v boji na blízko (vaša hlava je vedľa súpera a preto je pre neho ťažké kontrovať). Dobrá vec na penetračnom háku je, že sa môže opakovať znova a znova, pretože vaše telo takmer nikdy nie je mimo pozície na ďalší úder. (Niektorí boxeri hádžu tento úder vo forme "hookercut" - t.j. ako kríž medzi ľavým hákom a ľavým horným strihom)
  3. Hák na rotáciu- pri podaní tohto úderu boxer otáča telom okolo ľavej nohy - t.j. sa pohybuje v smere hodinových ručičiek a opúšťa líniu odvetného úderu nepriateľa. Tento úder môže byť veľmi silný a zároveň vám umožní vyhnúť sa protiútoku. Ide o skvelý protiúder, ktorý vám pomôže „roztočiť“ súpera v ringu.
  4. Hák vo výpade- Keď hodíte tento úder, urobíte výpad dopredu a natiahnete svoje telo smerom k súperovi a vaša ľavá ruka letí pozdĺž okraja slučky. Ľavá ruka vychádza z vašej tváre, potom sa rýchlo pohne doľava a vyletí smerom k súperovej tvári. Zvláštnosťou tohto úderu je, že vaša ľavá ruka je natiahnutá čo najviac, aby ste dosiahli súpera. Tento ľavý hák je skôr ako ľavý kríž. Niektorí boxeri sa týmto úderom trochu predklonia a použijú chrbát ako pružinu na vytlačenie ľavej ruky von. Tento úder nepatrí medzi údery, ktoré sa učia v halách, no pri dobrom načasovaní je veľmi nebezpečný a účinný.

Dokonalým príkladom silového ľavého háku je Mike Tyson alebo Arturo Gatti. Pozrite sa, ako dali celé telo do ľavého háku.

Dokonalým príkladom prenikavého ľavého háku je Marco Antonio Barrera, Mickey Ward alebo Ricky Hatton. Všimnite si, že hlava zostáva na mieste, keď sa telo otáča v momente nárazu.

Ideálnym príkladom ľavého háku na otočku by bol Miguel Cotto (v skutočnosti je dobrý s tromi typmi háku), Wladimir Klitschko, Floyd Mayweather Jr.

Dokonalé príklady výpadu ľavého háku môžete vidieť u Rickyho Hattona, Roya Jonesa Jr., princa Nassima.

Pre tých, ktorým je ťažké alebo bolestivé hodiť ľavý hák k telu

Dôvod, prečo vás bolí alebo je pre vás nepríjemné trafiť si ľavý hák do tela, je ten, že vaša ľavá ruka nezískala potrebný tvar.

Pozrite si nasledujúce informácie:

  • Neudierajte do háku striktne vodorovne. Skúste hádzať polovičné háky a polovičné horáky. Nech dôjde k nejakému pohybu nahor („hookercut“) v údere.
  • Uvoľnite sa a pri dopade na telo spustite rameno a lakeť.
  • Obe nohy by sa mali pri náraze otočiť a pozrieť sa doprava.
  • Vaša ruka sa príliš pohybuje. Vykonajte viac pohybu telom (krútenie) a nie pažou.
  • Na začiatku úderu neberte ruku späť, ale spustite ju pred seba a udrite z tejto pozície.

Poradie ľavého háku (pre silný záber tela)

  1. Zaujmite svoj normálny postoj.
  2. Mierne pokrčte kolená, hlavu a ľavú ruku mierne posuňte doľava a dole.
  3. Rýchlo otočte telo doprava a zároveň natiahnite ľavú ruku.
  4. Celé telo sa otočí doprava spolu s vaším hákom.
  5. Vaša pravá päta by mala byť na podlahe a ľavá sa zdvihne z podlahy a vytlačí ruku.
  6. Päsť sa zatvorí takmer v momente kontaktu so súperom a hneď po údere ZASTAVÍ.
  7. Zastavte úder skôr, ako sa vaše telo skrúti, inak narazíte na protiúder. Nie je potrebné zasiahnuť s maximálnou amplitúdou.
  8. Na konci úderu by vaša hlava, ľavá päsť a nohy mali byť „obrátené“ doprava.

Poznámka: úder sa robí pri výdychu, otočte nohy čo najviac doprava a nezabudnite sa vrátiť na stojan.

Ak hádžete penetračný hák, otočte telo, ale hlavu držte na mieste. Vo väčšine prípadov je najlepšie dostať hlavu dole blízko k súperovmu lakťu, aby ste mohli skutočne zasiahnuť a netrápiť sa príliš možným protiúderom súpera pravou rukou. Môžete skúsiť nahodiť tento hák vo forme "hookercut", aby úder dostal skutočne prenikavý efekt. Skús to!

Ak hádžete otočný hák, nechajte ruku lietať trochu rovnejšie. To znamená, že to bude skôr ľavý kríž ako hák. Na posilnenie úderu musí byť ľavá ruka odhodená z tváre. Pri hádzaní tohto háku sa otáčate celým telom, ľavú ruku vyhodíte rovno pred seba a zároveň pravú nohu idete doľava a dozadu. Takto opúšťate čiaru protiútoku. Vaše telo sa bude otáčať okolo ľavej nohy o 60-80 stupňov v smere hodinových ručičiek.

Pri hádzaní výpadového ľavého háku rýchlo vyhoďte ruku dopredu a okamžite ju vráťte na svoje miesto. Tento úder je podobný výstrelu z praku. Tento hák je opäť veľmi podobný ľavému krížu. Vo chvíli, keď udriete, skočíte dopredu (alebo sa jednoducho natiahnete dopredu) a vaša hlava sa pohybuje priamo na protivníka, čo je dobrý cieľ pre silný protiúder. Počas úderu vyhoďte ruku v priamej línii - tým sa zvýši vzdialenosť úderu.

Opakujúce sa háky

Ak ste experimentovali s vyššie uvedenými návrhmi, pravdepodobne ste si uvedomili, že hodiť dva silné ľavé háky za sebou je veľmi ťažké. Najbežnejší spôsob, ako pristáť dva háky za sebou, je hodiť najskôr penetračný hák a potom silový hák.

Takže posuniete hlavu doľava a dopredu a hodíte prenikavý hák, pričom hlavu necháte na mieste, a potom urobíte prudký pohyb hlavou a celým telom doprava a hodíte silový hák. Môžete priložiť penetračný hák k telu a následne rotujúci hák k hlave. Pozrite sa, ako Shane Moseley boxuje. Veľmi rád hádže tri prenikavé ľavé háky za sebou.

Tipy pre ľavý hák:

  • Slabé a silné„Nech je jeden z tvojich hákov slabý a druhý silný. Účelom prvého háku je prinútiť súpera postaviť obranný blok a pohnúť vestelom v nesprávny moment. Môžete tiež hodiť najprv silný hák a potom slabý hák.
  • Pomaly a rýchlo– Hoď pomalým hákom a potom hneď veľmi rýchlym. Môže to byť aj naopak.
  • nízke a vysoké- Hák na telo a druhý na hlavu. Môže to byť aj naopak.

Kedy hodiť ľavý hák

Mnoho boxerov má dobre umiestnený ľavý hák, no nikdy sa nenaučili, ako ho správne načasovať. Sú ochotní čakať celý deň na príležitosť hodiť ľavý hák, a nemusí. Ľavý hák je viac ako len zbraň. Dá sa použiť na spôsobenie poškodenia, prelomenie súperovej obrany (pre následné ťažké údery pravou rukou) a na rozptýlenie súpera. Je dôležité mať istotu a hádzať háčik bez strachu z pultu.

Skvelé kombinácie s ľavým hákom:

  • Po pravom kríži - Táto kombinácia je zrejmá. Takmer každý boxer hádže po pravom kríži ľavý hák.
  • Po ľavom háku - To je tiež samozrejmá vec. Každý je naučený brániť ľavo-pravý, takže dvojitý ľavý hák môže byť úspešný.
  • Hák na rotáciu a okamžite silný pravý kríž. Po háku nezabudnite položiť obe pätky na podlahu, aby ste zvýšili účinok silného pravého kríža.
  • Rýchly hák na telo, aby ste znížili súperovu ochranu a okamžite ho bodli do hlavy.
  • Silný telesný hák na zníženie súperovho stráženia (pravá ruka) a okamžite výpadový hák na hlavu. Po ňom - ​​rana podľa vlastného uváženia.
  • Ak váš protivník drží pravú rukavicu blízko tváre, hoďte svoj hák na rukavicu. Poškodenie bude stále citeľné.
  • Urobte bočný krok doprava a potom hoďte rýchly ľavý hák s rotáciou. To je účinné, keď vás súper prenasleduje so spustenými rukami. Môžete tiež znížiť obranu súpera znížením vlastnej, ale na zlomok sekundy.
  • Ľahký ľavý hák na hlavu a rýchly úder, po ktorom nasleduje pravý kríž.
  • Keď vás súper prenasleduje, alebo keď ste pripútaní k lanám, zohnite sa a priložte pravý bočný hák k telu a cúvajte s výpadom ľavým hákom k hlave.

Hneď ako si spomeniem na ďalšie tipy, určite napíšem, hoci v ringu už toho máte veľa nacvičeného. Teraz by ste už mali hlbšie rozumieť najlepšiemu knockoutovému úderu v boxe. Zvládnutím techniky ľavého háku z vás spraví „obojručného“ a teda aj efektívnejšieho bojovníka. Cvičte a hláste výsledky.

Chcete sa stať čiernym pánom svojho počítača? Chcete poznať všetky tajomstvá vývojárov malvéru a antivírusov? Prečítajte si článok, meditujte, pochopte základy zenu a nech na vás zostúpi osvietenie (kľudne všetci, znalosť Tao a perforácia Šambaly v dôsledku čítania tohto článku redakcia nezaručuje – pozn. red.)!

RTFM

čo je to háčik? Toto je mechanizmus, ktorý vám umožňuje sledovať nejakú udalosť v operačnom systéme. Vyvinuli ho strýkovia z Microsoftu s tým najlepším úmyslom – umožniť programátorovi efektívnejšie riešiť jeho problémy nastavením kontroly nad udalosťami klávesnice, myši a mnoho ďalšieho. Bol implementovaný pomocou známych funkcií: SetWindowsHook(Ex), UnhookWindowsHook(Ex) a CallNextHook(Ex).

Hák slúži na zachytenie určitých udalostí predtým, ako sa dostanú do aplikácie. Táto funkcia môže reagovať na udalosti a v niektorých prípadoch ich zmeniť alebo zrušiť. Funkcie, ktoré prijímajú upozornenia na udalosti, sa nazývajú „funkcie filtra“ a líšia sa typmi udalostí, ktoré zachytávajú. Príkladom je funkcia filtra na zachytenie všetkých udalostí myši alebo klávesnice. Aby systém Windows mohol volať funkciu filtra, musí byť táto funkcia nainštalovaná, to znamená, že musí byť pripevnená k háčiku (napríklad k háčiku klávesnice). Pripojenie jednej alebo viacerých funkcií filtra k háku sa nazýva nastavenie háku. Ak je k rovnakému háku pripojených viacero funkcií filtra, systém Windows implementuje front funkcií, pričom posledná pripojená funkcia je na začiatku frontu a prvá funkcia je na konci frontu.

Postupom času bol ušľachtilý koncept háku zvrátený, ktorého príčinou boli činy autorov vírusov a malvéru. Prvé vírusy boli, ako to mám povedať... asi naivné. Boli to samostatný exe súbor, ktorý priamo volal potrebné systémové funkcie. Čas plynul a antivírusy, ktoré sa objavili o niečo neskôr a zrazu sa stali komerčnými, sa rýchlo naučili zachytávať vírusy pomocou podpisov jednoduchým skenovaním Náhodný vstup do pamäťe alebo miesto na disku.

A tu, v zápale večného boja medzi autormi vírusov a ich „lapačmi“, sa objavil jeden jediný problém, ktorý je stále na programe dňa a bude aj v blízkej bezhraničnej budúcnosti – ide o otázku prežitia v operačnom systéme. Okrem toho je to dôležité aj pre antivírusy, pretože pre dobrého programátora systému písanie vírusov/ rootkity, odstránenie antivírusového procesu zo systému nie je príliš ťažké.

Preto môžeme bezpečne povedať, že jednou z úloh antivírusov je schopnosť udržať ich proces neporušený a bezpečný pred škodlivými činnosťami vírusu. Vo všeobecnosti by sa dnes háčiky mali chápať ako stanovenie kontroly nad hlavným systémových funkcií operačný systém, od ktorého závisí životaschopnosť akéhokoľvek programu - hovoríme spravidla o funkciách práce s procesmi, vláknami, sieťou a internetom atď.

"Ale čo SetWindowsHook?" - pýtaš sa ma. "Minulé storočie," odpovedám. Už nie je kóšer ich používať.

čo máme?

Najjednoduchší spôsob inštalácie háku do systému je vytvorenie takzvanej funkcie proxy. Inými slovami, musíte sa rozhodnúť, ktorú funkciu odpočúvate a nájsť adresu jej volania. Na tento účel sa funkcia GetProcAddress zvyčajne používa takto: GetProcAddress(GetModuleHandle("ntdll.dll"), "CsrNewThread").

Osvietení ľudia však vedia, že je takmer vždy zachytená avers a na nájdenie adresy funkcie používajú parsovanie importnej tabuľky konkrétnej knižnice, zvyčajne ntdll.dll, kernel32.dll (kernelbase.dll vo Windows7 ) alebo advapi32.dll.

int MyNewFunction(void *param1,
int param2, bool param3)
{
return OriginalFunction(param1,
param2, param3);
}

Potom by ste mali prepísať adresu volania OriginalFunction svojou vlastnou - to znamená MyNewFunction.

Teraz, ak chce niekto zavolať OriginalFunction na vykonanie, najprv sa zavolá vaša proxy funkcia MyNewFunction, ktorá potom prenesie riadenie na pôvodnú adresu. Takto jednoducho funguje asi 8 háčikov z 10. Tento spôsob je pohodlný len pre svoju jednoduchosť, no zároveň je to hrozný kolouch pre odporcov. Ako? Zamyslite sa sami - všetko, čo aver potrebuje, je porovnať bývalú, "legitímnu" adresu funkcie s tým, čo v skutočnosti je. Ak sa líšia, bijeme na poplach. Mimochodom, vyvstáva ďalšia otázka: kde získať práve túto adresu pôvodnej funkcie? Netreba príliš hádať – číta sa z požadovaný súbor na disku. Tento prístup je založený na predpoklade, že vírus neopraví exportnú tabuľku súboru na disku, pričom sa obmedzí na opravu virtuálnej pamäte.

Poďme teda ďalej. Ako som povedal, používanie háku ako funkcie proxy, aj keď je to pohodlná vec, je po prvé plavé a po druhé je vhodné len pre začiatočníkov. To nie je pre teba :). Najbežnejším typom háčika je spájanie. Toto slovo ste už určite počuli veľakrát. V našom prípade ide o záznam na začiatku funkcie päťbajtovej sekvencie, čo je príkaz jmp na adrese obsluhy odpočúvania. Tu je prvý bajt operačný kód jmp, zvyšné štyri bajty sú adresa vašej funkcie.

Ak potrebujete zavolať zachytenú funkciu, pred jej nahradením musíte uložiť jej počiatočné bajty a pred volaním ich obnoviť. Chyba túto metódu spočíva v nasledujúcom: ak po obnovení začiatku funkcie došlo k prepnutiu kontextu do iného vlákna aplikácie, potom bude môcť volať funkciu a obísť zachytávač. Tento nedostatok je možné opraviť zastavením všetkých bočných vlákien aplikácie pred hovorom a spustením po hovore. A samozrejme, spájanie, podobne ako funkcie proxy, je tiež ľahko detekované metódou skenovania pamäte, pretože bude okamžite jasné, že volanie funkcie ide niekam inam.

Vo všeobecnosti, pri pohľade do budúcnosti, musím širokej verejnosti oznámiť, že takmer všetky metódy zachytávania volaní funkcií sú nejakým spôsobom detekované skenovaním pamäte. S výnimkou dvoch metód, ale o tom si prečítajte nižšie.

IAT, EAT a iné zvery

Vynára sa otázka: čo a čo je najdôležitejšie, kam môžete dať svoje háčiky? Prvá vec, ktorá vás napadne, je, samozrejme, umiestniť odpočúvanie do tabuľky adries importu (IAT). Keď aplikácia používa funkciu z knižnice, aplikácia musí importovať adresu funkcie. Každá knižnica DLL používaná aplikáciou je opísaná v štruktúre s názvom IMAGE_IMPORT_DESCRIPTOR. Táto štruktúra obsahuje názov knižnice DLL, ktorej funkcie aplikácia importuje, a dva ukazovatele na dve polia štruktúr IMAGE_IMPORT_BY_NAME. Štruktúra IMAGE_IMPORT_BY_NAME obsahuje názvy importovaných funkcií používaných aplikáciou.

Kedy operačný systém načíta aplikáciu do pamäte, načíta sa štruktúra IMAGE_IMPORT_DESCRIPTOR a každá požadovaná knižnica DLL sa načíta do pamäte aplikácie.
Po namapovaní knižnice DLL operačný systém umiestni každú importovanú funkciu do pamäte a prepíše jedno z polí IMAGE_IMPORT_BY_NAME adresou vykonávania funkcie.

Keď sa háčik objaví v adresnom priestore aplikácie, váš vírus bude schopný prečítať formát PE cieľovej aplikácie v pamäti a nahradiť cieľovú adresu funkcie v IAT adresou háku. Potom, keď sa zavolá háková funkcia, namiesto pôvodnej funkcie sa vykoná vaša háková funkcia. O niečo zriedkavejšia možnosť, ktorá sa vyskytuje v prírode, implementovaná podľa princípu „Ak hora nejde do Magomedu ...“ - zachytenie tabuľky exportných adries (EAT), keď je naopak exportná tabuľka Dll opravená , ktorý exportuje cieľovú funkciu.

STELTH Hooks: Chyť ma, ak to dokážeš

Ako som napísal vyššie, hlavnou nevýhodou vyššie uvedených metód odpočúvania je nútená modifikácia pamäte, ktorá nevyhnutne vedie k jej detekcii avers. Existuje cesta von? Napodiv, existuje. Dokonca dve. Prvým z nich je zaregistrovať obslužný program výnimiek a potom ho ovládať. Dá sa to dosiahnuť napríklad stratou určitej pamäťovej oblasti. Druhá metóda je mierne upravená ako prvá. To znamená, že si ako predtým zaregistrujete obsluhu výnimiek, ale na ich generovanie použijete techniku ​​známu medzi debuggermi. Ako viete, registre ladenia procesora sa používajú na ladenie aplikácií a sú zvyčajne dostupné z kernelmod. Možno ich však nastaviť aj z aplikácií v užívateľskom režime pomocou funkcií GetThreadContext/SetThreadContext. Registre ladenia sa používajú na nastavenie bodov prerušenia (Breakpoints) pri prístupe k umiestneniu pamäte alebo vykonávaniu.

Celkovo existuje osem registrov, ich účel je nasledovný:

  • DR0 - DR3 - Každý z týchto registrov obsahuje lineárnu adresu jedného zo štyroch riadiacich bodov. Ak je povolené stránkovanie, ich hodnoty sa prevedú na fyzické adresy podľa bežného algoritmu;
  • DR4 - DR5 - Registre sú vyhradené a nepoužívajú sa v procesore i486;
  • DR6 - Stavový register ladenia. Hlási podmienky, ktoré sa vyskytli pri vyvolaní výnimky ladenia (číslo 1). Bity registra sú nastavené hardvérom a resetované softvérom;
  • DR7 - Register špecifikuje typ prístupu do pamäte priradený každému kontrolnému bodu.

Takže všetko, čo musíte urobiť, je nastaviť hardvérový prerušovací bod (aka int 1) na začiatku funkcie, takže procesor vygeneruje takzvanú "výnimku jedného kroku" (výnimku jedného kroku) a potom nastavením vlastný obslužný program výnimiek: AddVectoredExceptionHandler (0, (PVECTORED_EXCEPTION_ HANDLER)DebugHookHandler), hákujte rovnaký EXCEPTION_SINGLE_STEP.

Keď sa vygeneruje, váš ovládač prevezme kontrolu nad požadovanou funkciou. Nepochybnou výhodou tejto metódy je, že je absolútne nedetekovateľná skenovaním pamäte, keďže tu nedochádza k jej modifikácii.

int SetDebugBreak(adresa FARPROC)
{
int stav = -1;
HANDLE thSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPTHREAD, NULL);
THREADENTRY32te;
te.dwSize = sizeof(THREADENTRY32);
Thread32First(thSnap, &te);
robiť
{
if(te.th32OwnerProcessID != GetCurrentProcessId())
ďalej;
HANDLE hThread = OpenThread(
THREAD_ALL_ACCESS, FALSE, te.th32ThreadID);
KONTEXT ctx;

GetThreadContext(hThread, &ctx);
if(!ctx.Dr 0)
{
ctx.Dr0 = MakePtr(ULONG, adresa, 0);
ctx.Dr7 |= 0x00000001;
stav = 0;
}
inak ak(!ctx.Dr1)
{
ctx.Dr1 = MakePtr(ULONG, adresa, 0);
ctx.Dr7 |= 0x00000004;
stav = 1;
}
inak ak(!ctx.Dr2)
{
ctx.Dr2 = MakePtr(ULONG, adresa, 0);
ctx.Dr7 |= 0x00000010;
stav = 2;
}
inak ak(!ctx.Dr3)
{
ctx.Dr3 = MakePtr(ULONG, adresa, 0);
ctx.Dr7 |= 0x00000040;
stav = 3;
}
inak
stav = -1;
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
SetThreadContext(hThread, &ctx);
CloseHandle(hThread);
}
while(Thread32Next(thSnap, &te));
návratový stav;
}

Záver

Ako vidíte, aj v tých najťažších situáciách môžete nájsť príležitosť na spustenie svojho kódu. Som si istý, že v tomto prípade je váš kód zameraný výlučne na riešenie problémov ochrany vášho systému. Veľa šťastia a úspešného zostavovania!

Odkazy

http://vx.netlux.org - akési múzeum vírusov, vírusových motorov a iných zaujímavých vecí. Jedným slovom musíte navštíviť.