Hook–FAQ: Comprendiamo vecchi e nuovi modi di installare gli hook di sistema. Hook-FAQ: Comprendiamo vecchi e nuovi metodi di installazione degli hook di sistema IAT, EAT e altri metodi

Davanti a voi - guida completa sulla corretta applicazione del colpo laterale sinistro (gancio sinistro). Questo articolo aiuterà i pugili principianti a cui non piace il gancio sinistro e forse anche gli esperti che vogliono rafforzare e modificare il pugno esistente. Impara 4 diversi tipi di ganci sinistri ed esercitati a scegliere il momento giusto per lanciarli.

Ho lavorato abbastanza con i pugili per sapere che per alcuni, sferrare un calcio laterale sinistro non è un problema, ma per altri è molto difficile. È come correre o ballare. Alcune persone hanno doti innate e il loro corpo ha una meccanica eccellente e si muove magnificamente, mentre altre sono naturalmente “di legno”. La buona notizia è che è possibile lanciare un gancio sinistro.

Diversi tipi di calcio laterale sinistro

Potrebbe essere una sorpresa per molti che esistano diversi tipi di calci del lato sinistro. Alcuni tipi sono più facili da installare, mentre altri sono più difficili. Consiglio di praticare e imparare tutti i tipi a proprio vantaggio.

  1. Gancio sinistro elettrico– ti inclini (metti il ​​corpo) durante il colpo, la testa si muove leggermente indietro e verso destra, tutto il corpo è in movimento e il suo peso viene trasferito sulla gamba posteriore. Questo è quello che io chiamo power hook.
  2. Gancio sinistro penetrante- durante il colpo la testa si sposta in avanti, ma rimane vicina all'avversario; il corpo ruota (torce). Tipicamente, questo colpo viene sferrato al busto dell'avversario nel combattimento ravvicinato (la tua testa è vicina all'avversario e quindi è difficile per lui contrattaccare). L'aspetto positivo di un gancio penetrante è che può essere ripetuto più e più volte, perché il tuo corpo non perde quasi mai la sua posizione originale per un secondo colpo. (Alcuni pugili lanciano questo pugno come un "gancio" - un incrocio tra un gancio sinistro e un montante sinistro.)
  3. Gancio rotante– Quando sferra questo colpo, il pugile ruota il suo corpo attorno al piede sinistro – cioè si muove in senso orario, lasciando la linea del colpo di ritorsione del nemico. Questo colpo può essere molto forte e allo stesso tempo ti permetterà di evitare un contrattacco. Questo è un ottimo contropugno che ti aiuterà a far girare il tuo avversario sul ring.
  4. Gancio per affondo– quando sferri questo colpo, ti lanci in avanti ed estendi il tuo corpo in direzione del nemico, e la tua mano sinistra vola lungo il bordo del cappio. La mano sinistra inizia lontano dal tuo viso, poi si sposta rapidamente a sinistra e spara verso il viso dell'avversario. La particolarità di questo colpo è che il braccio sinistro viene teso il più possibile per raggiungere l'avversario. Questo gancio sinistro è più simile a una croce sinistra. Alcuni pugili si inclinano leggermente in avanti quando eseguono questo pugno e usano la schiena come una molla per spingere mano sinistra. Questo colpo non è uno di quelli insegnati nelle palestre, tuttavia, con un buon tempismo, è molto pericoloso ed efficace.

Un esempio ideale di gancio sinistro potente è il pugno di Mike Tyson o Arturo Gatti. Guarda come mettono tutto il corpo nel gancio sinistro.

Un esempio ideale di gancio sinistro penetrante può essere visto in Marco Antonio Barrera, Micky Ward o Ricky Hatton. Si noti che la testa rimane in posizione mentre il corpo ruota al momento dell'impatto.

Un esempio ideale di gancio sinistro rotante sarebbe il pugno di Miguel Cotto (in realtà è bravo in tre tipi di ganci), Wladimir Klitschko e Floyd Mayweather Jr.

Esempi ideali di gancio sinistro con affondo possono essere visti in Ricky Hatton, Roy Jones Jr., Prince Nassim.

Per coloro che trovano difficile o doloroso lanciare un gancio sinistro al corpo

Il motivo per cui è doloroso o scomodo colpire un gancio sinistro al corpo è che la tua mano sinistra non ha acquisito la forma necessaria.

Prova quanto segue:

  • Non lanciare il gancio rigorosamente in orizzontale. Prova a lanciare mezzo gancio e mezzo montante. Lascia che ci sia un movimento verso l'alto durante l'impatto ("hookercut").
  • Rilassati e abbassa la spalla e il gomito mentre colpisci il corpo.
  • Entrambi i piedi dovrebbero girarsi e guardare a destra al momento dell'impatto.
  • La tua mano si muove troppo. Fai più movimento con il corpo (torsione) piuttosto che con il braccio.
  • All'inizio del colpo, non spostare indietro la mano, ma abbassala davanti a te e colpisci da questa posizione.

Ordine del gancio sinistro (per un potente pugno al corpo)

  1. Assumi la tua posizione normale.
  2. Piega leggermente le ginocchia, la testa e il braccio sinistro si muovono leggermente verso sinistra e verso il basso.
  3. Ruota rapidamente il corpo verso destra mentre lanci il braccio sinistro.
  4. Tutto il tuo corpo ruoterà verso destra insieme al tuo gancio.
  5. Il tallone destro dovrebbe essere a terra, mentre il tallone sinistro si solleverà dal pavimento, spingendo il braccio in fuori.
  6. Il pugno si chiude quasi al momento del contatto con il nemico e si FERMA subito dopo il colpo.
  7. Ferma il pugno prima che il tuo corpo si giri, altrimenti andrai incontro a un contrattacco. Non è necessario colpire con la massima ampiezza.
  8. Alla fine del pugno, la testa, il pugno sinistro e le gambe dovrebbero puntare a destra.

Nota: il colpo viene effettuato espirando, ruotare i piedi il più possibile verso destra e non dimenticare di tornare in posizione.

Se lanci un gancio penetrante, ruota il corpo, ma mantieni la testa ferma. Nella maggior parte dei casi, è meglio abbassare la testa più vicino al gomito dell'avversario in modo da poter effettivamente sferrare il pugno e non preoccuparti troppo del contrattacco dell'avversario con la mano destra. Puoi provare a lanciare questo gancio come un hookercut per dargli un effetto davvero penetrante. Provalo!

Se lanci un amo rotante, lascia che il braccio voli un po' più dritto. Cioè, sarà più una croce sinistra che un gancio. Per intensificare il colpo, la mano sinistra deve essere allontanata dal viso. Quando lanci questo gancio, tutto il tuo corpo ruota, lanciando il braccio sinistro davanti a te mentre la gamba destra va a sinistra e indietro. In questo modo ti allontani dalla linea di contrattacco. Il tuo corpo ruoterà attorno al tuo piede sinistro di 60-80 gradi in senso orario.

Quando lanci un gancio sinistro in affondo, lancia rapidamente il braccio in avanti e riportalo immediatamente al suo posto. Questo colpo è simile a una fionda. Ancora una volta, questo gancio è molto simile alla croce sinistra. Al momento del colpo, salti in avanti (o semplicemente ti allunghi in avanti) e la tua testa si muove direttamente verso il nemico, essendo un buon bersaglio per un potente contrattacco. Lancia la mano in linea retta durante il colpo: questo aumenterà la distanza del colpo.

Ganci ripetuti

Se hai sperimentato i consigli di cui sopra, probabilmente ti sei reso conto che lanciare due potenti ganci sinistri di fila è molto difficile. Il modo più comune per lanciare due ganci di seguito è lanciare prima un gancio penetrante e poi un gancio potente.

Quindi, muovi la testa a sinistra e in avanti e lanci un gancio penetrante, lasciando la testa in posizione, quindi fai un movimento deciso della testa e di tutto il corpo verso destra e lanci un gancio potente. Puoi lanciare un gancio penetrante al corpo seguito da un gancio rotante alla testa. Guarda la scatola di Shane Mosley. Ama lanciare tre ganci sinistri penetranti di fila.

Suggerimenti per lanciare i ganci sinistri:

  • Debole e forte- Lascia che uno dei tuoi ganci sia debole e il secondo forte. Lo scopo del primo gancio è costringere il nemico a mettere un blocco difensivo e spostare la veste in un momento inopportuno. Puoi anche lanciare prima un gancio forte e poi un gancio debole.
  • Lento e veloce- Lanciare un gancio lento e poi subito uno molto veloce. Può essere il contrario.
  • Basso e alto- Lanciare un gancio al corpo e un secondo alla testa. Può essere il contrario.

Quando lanciare un gancio sinistro

Molti pugili hanno il gancio sinistro ben piazzato, ma non hanno mai imparato a cronometrarlo correttamente. Sono disposti ad aspettare tutto il giorno per avere l'opportunità di lanciare un gancio sinistro, e potrebbe non arrivare. Il gancio sinistro è più di una semplice arma. Può essere utilizzato per causare danni, aprire le difese dell'avversario (per successivi forti colpi con la mano destra) e per distrarre l'avversario. È importante avere fiducia e lanciare un gancio senza paura di un contropiede.

Ottime combinazioni con il gancio sinistro:

  • Dopo un cross a destra - Questa combinazione è ovvia. Quasi tutti i pugili lanciano un gancio sinistro dopo un cross destro.
  • Dopo il gancio sinistro - Anche questa è una cosa ovvia. A tutti viene insegnato a difendersi utilizzando il principio sinistra-destra, quindi un doppio gancio sinistro può avere successo.
  • Un gancio rotante e subito un potente cross di destro. Dopo il gancio, assicurati di posizionare entrambi i talloni sul pavimento per massimizzare l'effetto del potente cross destro.
  • Un rapido gancio al corpo per abbassare la guardia dell'avversario e subito un jab alla testa.
  • Un potente gancio al corpo per abbassare la guardia dell'avversario (la mano destra) e subito un gancio con affondo alla testa. Dopo di ciò, un colpo a tua discrezione.
  • Se il tuo avversario ha il guanto destro vicino al viso, lancia il gancio sul guanto. Il danno sarà comunque evidente.
  • Fai un passo laterale a destra e poi lancia un gancio sinistro che gira velocemente. Questo è efficace quando il tuo avversario ti insegue con le mani abbassate. Puoi anche abbassare la difesa del tuo avversario abbassando la tua, ma per una frazione di secondo.
  • Gancio sinistro leggero alla testa e un jab veloce, seguito da un cross destro.
  • Quando il tuo avversario ti sta inseguendo o quando sei premuto contro le corde, piegati verso il basso e lancia un gancio destro al corpo e avvicinati con un gancio sinistro in affondo alla testa.

Non appena ricorderò altri suggerimenti, scriverò sicuramente, anche se hai già molto da esercitarti sul ring. A questo punto dovresti avere una migliore comprensione del miglior pugno ad eliminazione diretta nella boxe. Padroneggiare la tecnica del gancio sinistro ti renderà un combattente “a due mani”, e quindi un combattente più efficace. Esercitati e segnala i tuoi risultati.

Vuoi diventare il Signore Nero del tuo computer? Vuoi conoscere tutti i segreti degli sviluppatori di malware e antivirus? Leggete l'articolo, meditate, imparate le basi dello Zen e forse l'intuizione scenderà su di voi (calmatevi tutti, la conoscenza del Tao e la penetrazione di Shambhala come risultato della lettura di questo articolo non sono garantite dalla redazione - ndr) !

RTFM

Cos'è un gancio? Questo è un meccanismo che consente di tenere traccia di un evento nel sistema operativo. È stato sviluppato dai ragazzi di Microsoft con le migliori intenzioni: consentire al programmatore di risolvere i propri problemi in modo più efficiente stabilendo il controllo sugli eventi della tastiera, del mouse e molto altro. È stato implementato utilizzando funzioni ben note: SetWindowsHook(Ex), UnhookWindowsHook(Ex) e CallNextHook(Ex).

L'hook viene utilizzato per intercettare determinati eventi prima che raggiungano l'applicazione. Questa funzione può reagire agli eventi e, in alcuni casi, modificarli o annullarli. Le funzioni che ricevono notifiche di eventi sono chiamate "funzioni filtro" e si distinguono per il tipo di eventi che intercettano. Un esempio è una funzione di filtro per intercettare tutti gli eventi del mouse o della tastiera. Affinché Windows possa richiamare una funzione di filtro, la funzione deve essere installata, ovvero collegata a un hook (ad esempio, un hook della tastiera). Collegare una o più funzioni di filtro a un hook viene chiamato installazione di un hook. Se più funzioni di filtro sono collegate a un singolo hook, Windows implementa una coda di funzioni, con l'ultima funzione collegata all'inizio della coda e la primissima funzione alla fine.

Nel corso del tempo, il nobile concetto di hook si è corrotto, a causa delle azioni degli autori di virus e degli sviluppatori di malware. I primi virus erano, come posso dire... ingenui, immagino. Erano un file exe separato che richiamava direttamente le funzioni di sistema necessarie. Con il passare del tempo, gli antivirus, apparsi poco dopo e diventati improvvisamente commerciali, hanno imparato rapidamente a catturare i virus tramite firma mediante una semplice scansione memoria ad accesso casuale o spazio su disco.

E qui, nel vivo dell'eterna lotta tra gli autori di virus e i loro "cacciatori", è emersa un'unica domanda che è ancora all'ordine del giorno e lo sarà nel prossimo futuro prevedibile: questa è la questione della sopravvivenza nel sistema operativo. Inoltre, è rilevante anche per gli antivirus, perché per un buon programmatore di sistema che scrive virus/rootkit, rimuovere il processo antivirus dal sistema non è un compito molto difficile.

Pertanto, possiamo tranquillamente affermare che uno dei compiti degli antivirus è la capacità di mantenere il processo intatto e al sicuro dalle azioni dannose del virus. In generale, oggi, gli hook dovrebbero essere intesi come stabilire il controllo sulle principali funzioni di sistema del sistema operativo, da cui dipende la fattibilità di qualsiasi programma: stiamo parlando, di regola, di funzioni per lavorare con processi, thread, rete e Internet, ecc.

"Che ne dici di SetWindowsHook?" - mi chiedi. "Il secolo scorso", risponderò. Non è più kosher usarli.

Cosa abbiamo?

Il modo più semplice per installare un hook su un sistema è creare qualcosa chiamato funzione proxy. In altre parole, devi decidere quale funzione stai intercettando e trovare l'indirizzo della sua chiamata. Per fare ciò, di solito viene utilizzata la funzione GetProcAddress in questo modo: GetProcAddress(GetModuleHandle("ntdll.dll"), "CsrNewThread").

Tuttavia, gli illuminati sanno che viene quasi sempre intercettato dai server, e per trovare l'indirizzo della funzione utilizzano l'analisi della tabella di importazione di una particolare libreria, solitamente ntdll.dll, kernel32.dll (kernelbase.dll in Windows7) o advapi32 .dll.

int MiaNuovaFunzione(void *param1,
int param2, bool param3)
{
return FunzioneOriginale(param1,
param2, param3);
}

Successivamente, dovresti riscrivere l'indirizzo della chiamata OriginalFunction nel tuo, ovvero in MyNewFunction.

Ora, se qualcuno vuole chiamare OriginalFunction per l'esecuzione, verrà chiamata per prima la funzione proxy MyNewFunction, che trasferirà quindi il controllo all'indirizzo originale. Questo è il modo semplice in cui funzionano probabilmente 8 ganci su 10. Questo metodo è conveniente solo per la sua semplicità, ma allo stesso tempo è un terribile errore per i coprifili. Come? Pensaci tu stesso: tutto ciò di cui ha bisogno è confrontare l'indirizzo precedente, "legale" della funzione con quello che è effettivamente. Se differiscono, suoniamo l'allarme. A proposito, sorge la seguente domanda: dove possiamo trovare questo indirizzo della funzione originale? Non c'è bisogno di indovinare troppo qui: viene letto il file desiderato su disco. Questo approccio si basa sul presupposto che il virus non patch la tabella di esportazione di un file situato sul disco, limitandosi a patchare la memoria virtuale.

Quindi andiamo avanti. Come ho già detto, l'utilizzo di un hook sotto forma di funzione proxy, sebbene sia una cosa conveniente, è, in primo luogo, difettoso e, in secondo luogo, è adatto solo ai principianti. Cioè, non per te :). Il tipo più comune di gancio è la giunzione. Sono sicuro che hai sentito questa parola più di una volta. Nel nostro caso, questa è una voce all'inizio della funzione di una sequenza di cinque byte, che è un comando jmp all'indirizzo del gestore dell'intercettazione. Qui il primo byte è il codice operativo jmp, i restanti quattro byte sono l'indirizzo della tua funzione.

Se è necessario chiamare una funzione intercettata, prima di sostituirla è necessario salvare i suoi byte iniziali e ripristinarli prima di chiamarla. Difetto questo metodoè la seguente: se, dopo aver ripristinato l'avvio della funzione, si verifica un cambio di contesto su un altro thread dell'applicazione, allora sarà in grado di chiamare la funzione, bypassando l'interceptor. Questo inconveniente può essere eliminato interrompendo tutti i thread lato applicazione prima della chiamata e avviandoli dopo la chiamata. E, naturalmente, anche lo splicing, come le funzioni proxy, viene facilmente rilevato dalla scansione della memoria, poiché sarà immediatamente chiaro che la chiamata alla funzione sta andando da qualche altra parte.

In generale, guardando al futuro, devo comunicare al grande pubblico che quasi tutti i metodi per intercettare le chiamate di funzione vengono in qualche modo rilevati dalla scansione della memoria. Con l'eccezione di due metodi, ma leggi di seguito.

IAT, EAT e altre bestie

La domanda sorge spontanea: cosa e, soprattutto, dove puoi mettere i tuoi ganci? La prima cosa che viene in mente è, ovviamente, intercettare la Import Address Table (IAT). Quando un'applicazione utilizza una funzione da una libreria, l'applicazione deve importare l'indirizzo della funzione. Ogni DLL utilizzata da un'applicazione è descritta in una struttura denominata IMAGE_IMPORT_DESCRIPTOR. Questa struttura contiene il nome della DLL le cui funzioni vengono importate dall'applicazione e due puntatori a due array di strutture IMAGE_IMPORT_BY_NAME. La struttura IMAGE_IMPORT_BY_NAME contiene i nomi delle funzioni importate utilizzate dall'applicazione.

Quando sistema operativo carica l'applicazione in memoria, viene letta la struttura IMAGE_IMPORT_DESCRIPTOR e ogni DLL richiesta viene caricata nella memoria dell'applicazione.
Una volta mappata la DLL, il sistema operativo inserisce in memoria ciascuna funzione importata e sovrascrive uno degli array IMAGE_IMPORT_BY_NAME con l'indirizzo di esecuzione della funzione.

Una volta che la funzione di hook appare nello spazio degli indirizzi dell'applicazione, il virus sarà in grado di leggere il formato PE dell'applicazione di destinazione in memoria e sostituire l'indirizzo di destinazione della funzione in IAT con l'indirizzo della funzione di hook. Quindi, quando viene chiamata la funzione intercettata, la funzione hook verrà eseguita al posto della funzione originale. Un'opzione leggermente più rara, presente in natura, implementata secondo il principio "Se la montagna non arriva a Magomed..." - intercettando la Export Address Table (EAT), quando, al contrario, la tabella di esportazione Dll è patchata, che esporta la funzione di destinazione.

Ganci STELTH: prendimi se puoi

Come ho già scritto sopra, lo svantaggio principale dei metodi di intercettazione sopra menzionati è la modifica forzata della memoria, che porta inevitabilmente al suo rilevamento da parte dei verificatori. C'è una via d'uscita? Stranamente, c'è. Anche due. Il primo è registrare il gestore delle eccezioni e poi fargli assumere il controllo. Questo può essere fatto, ad esempio, cancellando una parte della memoria. Il secondo metodo è un primo leggermente modificato. Cioè, come prima, registri un gestore di eccezioni, ma per generarli usi una tecnica nota tra i debugger. Come sai, i registri di debug del processore vengono utilizzati per eseguire il debug delle applicazioni e sono generalmente accessibili da kernelmod. Tuttavia, possono anche essere installati da applicazioni in modalità utente utilizzando le funzioni GetThreadContext/SetThreadContext. I registri di debug vengono utilizzati per impostare punti di interruzione sull'accesso o sull'esecuzione della memoria.

Ci sono otto registri in totale, il loro scopo è il seguente:

  • DR0 - DR3 - Ciascuno di questi registri contiene l'indirizzo lineare di uno dei quattro punti di controllo. Se lo scambio di pagine è abilitato, i loro valori vengono tradotti in indirizzi fisici utilizzando un algoritmo generale;
  • DR4 - DR5 - I registri sono riservati e non vengono utilizzati nel processore i486;
  • DR6 - Registro dello stato di debug. Riporta le condizioni incontrate quando è stata lanciata l'eccezione di debug (numero 1). I bit di registro vengono impostati dall'hardware e cancellati dal software;
  • DR7 - Il registro specifica il tipo di accesso alla memoria associato a ciascun checkpoint.

Quindi, tutto quello che devi fare è impostare un breakpoint hardware (noto anche come int 1) all'inizio della funzione in modo che il processore generi una cosiddetta "eccezione a passaggio singolo" e quindi, installando il suo gestore di eccezioni: AddVectoredExceptionHandler (0, (PVECTORED_EXCEPTION_HANDLER)DebugHookHandler), intercetta questo stesso EXCEPTION_SINGLE_STEP.

Una volta generato, il tuo gestore riceverà il controllo della funzione desiderata. L'indubbio vantaggio di questo metodo è che non è assolutamente rilevabile dalla scansione della memoria, poiché qui non avviene alcuna modifica della memoria.

int SetDebugBreak(indirizzo FARPROC)
{
stato int = -1;
HANDLE thSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPTHREAD, NULL);
FILETTATURA32 te;
te.dwDimensione = dimensioneof(THREADENTRY32);
Thread32First(thSnap, &te);
Fare
{
if(te.th32OwnerProcessID!= GetCurrentProcessId())
Continua;
MANIGLIA hThread = OpenThread(
THREAD_ALL_ACCESS, FALSE, te.th32ThreadID);
CONTESTO ctx;

GetThreadContext(hThread, &ctx);
if(!ctx.Dr 0)
{
ctx.Dr0 = MakePtr(ULONG, indirizzo, 0);
ctx.Dr7 |= 0x00000001;
stato = 0;
}
altrimenti se(!ctx.Dr1)
{
ctx.Dr1 = MakePtr(ULONG, indirizzo, 0);
ctx.Dr7 |= 0x00000004;
stato = 1;
}
altrimenti se(!ctx.Dr2)
{
ctx.Dr2 = MakePtr(ULONG, indirizzo, 0);
ctx.Dr7 |= 0x00000010;
stato = 2;
}
altrimenti se(!ctx.Dr3)
{
ctx.Dr3 = MakePtr(ULONG, indirizzo, 0);
ctx.Dr7 |= 0x00000040;
stato = 3;
}
altro
stato = -1;
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
SetThreadContext(hThread, &ctx);
ChiudiHandle(hThread);
}
while(Thread32Next(thSnap, &te));
Stato reso;
}

Conclusione

Come puoi vedere, anche nelle situazioni più difficili puoi trovare l'opportunità di eseguire il tuo codice. Sono sicuro che il tuo codice è finalizzato esclusivamente a risolvere i problemi di protezione del tuo sistema. Buona fortuna a te e buona compilazione!

Collegamenti

http://vx.netlux.org - una sorta di museo di virus, motori antivirus e altre sciocchezze interessanti. Da visitare, in una parola.

Dato che molte persone mi scrivono chiedendomi quando Hook sarà la versione finale, ho deciso di scrivere un hook, ma non Ar4Mode.
Ho deciso di non aggiornare il mio vecchio hook (perché il codice è terribile), quindi ho deciso di scriverne uno nuovo. Con alcune modifiche.

L'archivio contiene un hook per: Ar4Mode, JBE, UJBL, JBM, nonché per altri mod (ma non vengono utilizzati quelli nativi).
C'è anche un hook senza salvataggio (è necessario modificarlo in plugins-iHOOK.ini).

Differenze rispetto al vecchio gancio:
[-] Impostazioni del colore del gancio.
[+] Salvataggio tramite database (MsQl).
[+] Tramite impostazioni file: velocità, tipo. dimensione, fine dello sprite.
[+] È possibile configurare un hook specifico per un flag specifico.
[+] Attraverso il file configurare il flag: web/menu/control/shutdown.
[+|-] Cambiamenti visivi.
[+] Aggiunti nuovi sprite/suoni (anche se puoi farlo da solo).
[+] Attraverso il file è possibile configurare il tipo di hook end (scatter o single sprite).
[+] (JBE) Durante la ricerca è possibile scegliere da chi prendere il gancio (da tutti o solo dalla persona nella lista dei ricercati).
[+] Buon codice.

Comandi della console:
1) dire /hook - menu web
2) +gancio/+corda - attivazione della rete

Nativi:
native_iHOOK_menu(id) - apertura del menu.
native_iHOOK_get_hook_sett(id, iType) - ottenere le impostazioni del hook [iType: 1 - Sprite del web / 2 - suono / 3 - sprite della fine del web / 4 - dimensione / 5 - vista / 6 - velocità]
bool:native_iHOOK_get_hook_player_have(id) - ottenere la presenza di un hook.
================================================================

Web in cs1.6 o hook per cs 1.6, chiamalo come vuoi, ma questo è già un plugin abbastanza comune nel tuo sistema. Il plugin web stesso in CS ti dà l'opportunità di muoverti sulla mappa come se fossi un ragno e facessi volare una ragnatela. Cioè, ti muovi lungo il web. L'impostazione stessa del plugin web in CS1.6 ti consente di farlo non solo per gli amministratori o per altre persone, ma anche per tutti i giocatori. Naturalmente, se sei un amministratore malintenzionato, puoi configurare il plug-in Web in CS solo per te stesso. Impedendo così ai niubbi di volare sulla mappa come carne viva. Secondo l'idea stessa, questo plugin web in CS è stato utilizzato per molto tempo in quake2, nel lontano 2001. E questo è hook: il plugin hook per CS 1.6 è stato introdotto successivamente. Ma questo non cambia lo stato d'animo in sé.

Come utilizzare Web in CS:
Per sparare alle ragnatele in CS1.6, è necessario registrare un'associazione di tasti nella console. Prendiamo la "r" come esempio.

Lega "r" "+corda"

Successivamente, premi "r" e potremo volare come un ragno su una rete.

Cvar per il plugin web in CS:

amx_rope — Abilita/disabilita il plugin web.
amx_rope_count: quante volte puoi utilizzare il web per round.

Come notato sopra, esiste un altro plug-in per il tuo server CS. Questo è un plugin hook per cs.
Viene utilizzato principalmente per la mod prokreedz per imparare a saltare correttamente.

Come installare il plug-in hook per CS:
1) Copia i file del plugin prokreedz_hook.amxx alla categoria plugin cstrike/addons/amxmodx/.
2) Successivamente, apri il file del plugin ( plugins.ini cstrike/addons/amxmodx/configs/) e scrivilo lì prokreedz_hook.amxx affinché funzioni.

Come utilizzare il gancio in CS:
Leghiamo il pulsante al gancio e voliamo.

Lega "r" "+gancio"

È tutto. Puoi scegliere uno qualsiasi dei due plugin e usarli per navigare sulla mappa.

L'archivio contiene i file del plugin web per cs1.6 e i file del plugin hook per cs

Siamo lieti di darti il ​​benvenuto sul sito dedicato a uno dei giochi più popolari al mondo: Counter Strike. Il nostro sito ne contiene molti file diversi per questo gioco, diverse mod, nuove patch, plugin.
Web in Counter Strike 1.6 è un plugin molto popolare. Il plug-in web stesso ti consente di muoverti sulla mappa come se fossi un ragno e ti muovi attraverso una rete. Il plugin web per CS 1.6 può diventare disponibile non solo per gli amministratori, ma anche per i giocatori ordinari, a condizione che impostazioni corrette. Naturalmente, se sei un amministratore malintenzionato, configurerai il plug-in web solo per te stesso, impedendo così ai noob di volare sulla mappa come carne. L'idea di questo plugin è stata utilizzata per molto tempo, già in Quake 2 (2001). Il plugin hook per CS 1.6 è stato introdotto poco dopo, ma l'atmosfera in sé non cambia.
Come utilizzare correttamente il Web in CS? Nel nostro racconto cercheremo di dare una risposta precisa a questa domanda.
Per girare una rete in CS 1.6, è necessario registrare un'associazione a una chiave specifica nella console. Ad esempio, prendiamo il pulsante "A".
legare "A" + corda
Dopodiché, premendo il tasto "A" potrai volare come un ragno.
Presentiamo alla vostra attenzione i cvar per il plugin web in cs:
amx_rope – attiva e disattiva il plugin;
amx_rope_count - Mostra quante volte puoi utilizzare una rete in un round.
C'è un altro plugin per il tuo CS: hook. Di norma, viene utilizzato per la mod prokreedz per imparare a saltare correttamente (secondo gli standard di gioco).
Per installare l'hook per CS, avrai bisogno di:
1) Copia prokreedz_hook.amxx nei plugin cstrike/addons/amxmodx/.
2) Apri (plugins. ini cstrike/addons/amxmodx/configs/) e affinché funzioni, aggiungi prokreedz_hook.amxx lì.
Non sai come usare il gancio? È semplice, leghiamo il bottone al gancio e voliamo come un ragno – leghiamo “A” “+gancio”.
Speriamo di aver dato una risposta chiara a tutti i siti e ai possessori di server di gioco alla domanda molto popolare e spesso sollevata su come utilizzare correttamente il Web per CS, come volarci sopra. Questo plugin apre nuove possibilità al gioco e lo rende ancora più interessante, soprattutto perché è così facile da usare! Scopri nuove opportunità, segui gli ultimi prodotti Counter Strike e impara tante cose nuove e interessanti.