Hook-FAQ: Κατανόηση παλιών και νέων τρόπων εγκατάστασης αγκίστρων συστήματος. Hook-FAQ: Κατανόηση παλιών και νέων τρόπων εγκατάστασης αγκίστρων συστήματος Πρόσθετο για cs 1.6 hook

Web σε cs1.6 ή γάντζο για cs 1.6, ονομάστε το όπως θέλετε - αλλά αυτό είναι ήδη ένα αρκετά κοινό πρόσθετο στον μετρητή σας. Το ίδιο το πρόσθετο web στο cs σας δίνει τη δυνατότητα να μετακινηθείτε στον χάρτη, σαν να είστε αράχνη και να πετάτε με ένα δίκτυο. Δηλαδή κινείστε στον Ιστό. Η ίδια η ρύθμιση του web plugin στο cs1.6 σάς επιτρέπει να το κάνετε όχι μόνο για διαχειριστές ή για άλλα άτομα, αλλά για όλους τους παίκτες. Φυσικά, αν είστε κακόβουλος διαχειριστής, τότε το web plugin στο cs, μπορείτε να το ρυθμίσετε μόνο για εσάς. Έτσι, περιφράσσοντας τα noobs για να πετάξει γύρω από το χάρτη σαν ζωντανό κρέας. Από την ίδια την ιδέα, αυτό το web plugin στο cs έχει χρησιμοποιηθεί για μεγάλο χρονικό διάστημα και στο quake2, το 2001. Και αυτό είναι ένα άγκιστρο - το πρόσθετο hook για το cs 1.6 παρουσιάστηκε αργότερα. Αλλά αυτό δεν αλλάζει τη διάθεση.

Πώς να χρησιμοποιήσετε τον ιστό σε cs:
Για να ξεκινήσετε το web στο cs1.6, πρέπει να γράψετε ένα κλειδί δέσμευσης στην κονσόλα. Για παράδειγμα, πάρτε το "r"

Δέσε "r" "+σχοινί"

Μετά από αυτό, πατήστε το "r", και μπορούμε να πετάξουμε σαν αράχνη στον ιστό.

Cvars για την προσθήκη web στο cs:

amx_rope - Ενεργοποίηση|Απενεργοποίηση της προσθήκης web.
amx_rope_count - Πόσες φορές μπορείτε να χρησιμοποιήσετε τον ιστό ανά γύρο.

Όπως σημειώθηκε παραπάνω, υπάρχει ένα άλλο πρόσθετο για τον διακομιστή cs σας. Αυτό είναι πρόσθετο hook για cs.
Χρησιμοποιείται κυρίως για το mod prokreedz για να μάθετε πώς να πηδάτε σωστά.

Πώς να εγκαταστήσετε το πρόσθετο hook για cs:
1) Αντιγραφή αρχείων plugin prokreedz_hook.amxxστην κατηγορία cstrike/addons/amxmodx/.
2) Στη συνέχεια, ανοίξτε το αρχείο προσθήκης ( plugins.ini cstrike/addons/amxmodx/configs/) και γράψε εκεί prokreedz_hook.amxxγια να λειτουργήσει.

Πώς να χρησιμοποιήσετε το hook σε cs:
Δέστε το κουμπί στο γάντζο και πετάξτε.

Δέστε "r" "+hook"

Αυτό είναι όλο. Μπορείτε να επιλέξετε οποιοδήποτε από τα δύο πρόσθετα και να τα χρησιμοποιήσετε για να μετακινηθείτε στον χάρτη.

Το αρχείο περιέχει αρχεία προσθηκών ιστού για cs1.6 και αρχεία προσθηκών αγκίστρωσης για cs

Είμαστε στην ευχάριστη θέση να σας καλωσορίσουμε στον ιστότοπο αφιερωμένο σε ένα από τα πιο δημοφιλή παιχνίδια στον κόσμο – Αντεπίθεση. Ο ιστότοπός μας περιέχει πολλά διαφορετικά αρχεία για αυτό το παιχνίδι, διαφορετικά mods, φρέσκα patches, plugins.
Το Web in Counter Strike 1.6 είναι ένα πολύ δημοφιλές πρόσθετο. Το ίδιο το πρόσθετο ιστού σάς επιτρέπει να περιηγηθείτε στον χάρτη σαν να είστε αράχνη και να περιηγηθείτε στον ιστό. Η προσθήκη web για cs 1.6 μπορεί να γίνει διαθέσιμη όχι μόνο για διαχειριστές, αλλά και για απλούς παίκτες, υπό την προϋπόθεση ότι σωστή ρύθμιση. Φυσικά, εάν είστε κακόβουλος διαχειριστής, τότε θα ρυθμίσετε το web plugin μόνο για τον εαυτό σας, εμποδίζοντας έτσι τα noobs να πετούν γύρω από τον χάρτη σαν κρέας. Η ιδέα αυτού του πρόσθετου έχει χρησιμοποιηθεί για πολύ καιρό, πίσω στο quake 2 (2001). Το πρόσθετο hook για το cs 1.6 παρουσιάστηκε λίγο αργότερα, αλλά η ίδια η διάθεση δεν αλλάζει από αυτό.
Πώς να χρησιμοποιήσετε σωστά τον ιστό σε cs; Στην ιστορία μας, θα προσπαθήσουμε να δώσουμε μια ακριβή απάντηση σε αυτό το ερώτημα.
Για να ξεκινήσετε τον ιστό στο cs 1.6, πρέπει να γράψετε μια σύνδεση σε ένα συγκεκριμένο κλειδί στην κονσόλα. Για παράδειγμα, ας πάρουμε το κουμπί "A".
δέσιμο "Α" + σχοινί
Μετά από αυτό, πατώντας το πλήκτρο "A", μπορείτε να πετάξετε σαν αράχνη.
Παρουσιάζουμε στην προσοχή σας cvars για το web plugin σε cs:
amx_rope - ενεργοποιεί και απενεργοποιεί το πρόσθετο.
amx_rope_count - δείχνει πόσες φορές μπορείτε να χρησιμοποιήσετε τον ιστό σε έναν γύρο.
Υπάρχει ένα άλλο πρόσθετο για το CS - hook σας. Κατά κανόνα, χρησιμοποιείται για το prokreedz-mod για να μάθει πώς να πηδά σωστά (σύμφωνα με τα πρότυπα του παιχνιδιού).
Για να εγκαταστήσετε το άγκιστρο για CS, θα χρειαστείτε:
1) Αντιγράψτε το prokreedz_hook.amxx στα πρόσθετα cstrike/addons/amxmodx/.
2) Ανοίξτε (plugins. ini cstrike/addons/amxmodx/configs/) και για να λειτουργήσει, γράψτε εκεί prokreedz_hook.amxx.
Δεν ξέρετε πώς να χρησιμοποιήσετε το άγκιστρο; Είναι απλό, δέστε το κουμπί στο γάντζο και πετάξτε σαν αράχνη - δέστε "Α" "+ γάντζο".
Ελπίζουμε ότι έχουμε δώσει μια σαφή απάντηση για όλους τους ιστότοπους και τους κατόχους διακομιστές παιχνιδιώνσε μια πολύ δημοφιλή και συχνά εγερθείσα ερώτηση σχετικά με το πώς να χρησιμοποιήσετε σωστά τον ιστό για το COP, πώς να πετάξετε σε αυτόν. Αυτό το πρόσθετο ανοίγει νέες δυνατότητες για το παιχνίδι και το κάνει ακόμα πιο ενδιαφέρον, ειδικά επειδή είναι τόσο εύκολο στη χρήση! Ανακαλύψτε νέες ευκαιρίες, ακολουθήστε το πιο πρόσφατο Counter Strike και μάθετε πολλά νέα και ενδιαφέροντα πράγματα.

Θέλετε να γίνετε ο Μαύρος Άρχοντας του υπολογιστή σας; Θέλετε να μάθετε όλα τα μυστικά των προγραμματιστών κακόβουλου λογισμικού και προστασίας από ιούς; Διαβάστε το άρθρο, διαλογιστείτε, κατανοήστε τα βασικά του Ζεν και μπορεί να σας πέσει η φώτιση (όλοι ήρεμα, η γνώση του Τάο και η διάτρηση της Σαμπάλα ως αποτέλεσμα της ανάγνωσης αυτού του άρθρου δεν είναι εγγυημένη από τους εκδότες - σημείωση εκδ.)!

RTFM

Τι είναι ο γάντζος; Αυτός είναι ένας μηχανισμός που σας επιτρέπει να παρακολουθείτε κάποιο συμβάν στο λειτουργικό σύστημα. Αναπτύχθηκε από τους θείους της Microsoft με τις καλύτερες προθέσεις - για να επιτρέψει στον προγραμματιστή να λύσει τα προβλήματά του πιο αποτελεσματικά, ρυθμίζοντας τον έλεγχο των συμβάντων του πληκτρολογίου, του ποντικιού και πολλά άλλα. Υλοποιήθηκε χρησιμοποιώντας γνωστές συναρτήσεις: SetWindowsHook(Ex), UnhookWindowsHook(Ex) και CallNextHook(Ex).

Το άγκιστρο χρησιμεύει για την παρακολούθηση ορισμένων γεγονότων πριν φτάσουν στην εφαρμογή. Αυτή η συνάρτηση μπορεί να αντιδράσει σε συμβάντα και, σε ορισμένες περιπτώσεις, να τα αλλάξει ή να τα ακυρώσει. Οι λειτουργίες που λαμβάνουν ειδοποιήσεις συμβάντων ονομάζονται "συναρτήσεις φίλτρου" και διαφέρουν ως προς τους τύπους συμβάντων που καταγράφουν. Ένα παράδειγμα είναι μια λειτουργία φίλτρου για την καταγραφή όλων των συμβάντων του ποντικιού ή του πληκτρολογίου. Για να καλέσουν τα Windows μια λειτουργία φίλτρου, αυτή η λειτουργία πρέπει να εγκατασταθεί, δηλαδή να συνδεθεί σε ένα άγκιστρο (για παράδειγμα, σε ένα άγκιστρο πληκτρολογίου). Η σύνδεση μιας ή περισσότερων λειτουργιών φίλτρου σε ένα άγκιστρο ονομάζεται ρύθμιση του γάντζου. Εάν πολλαπλές λειτουργίες φίλτρου είναι συνδεδεμένες στο ίδιο άγκιστρο, τα Windows υλοποιούν μια ουρά συνάρτησης, με την τελευταία συνδεδεμένη συνάρτηση στο μπροστινό μέρος της ουράς και την πρώτη συνάρτηση στο τέλος της ουράς.

Με την πάροδο του χρόνου, η ευγενής έννοια του γάντζου διαστρεβλώθηκε, αιτία της οποίας ήταν οι ενέργειες των δημιουργών ιών και του κακόβουλου λογισμικού. Οι πρώτες ιώσεις ήταν, πώς να το πω... αφελείς, υποθέτω. Ήταν ένα ξεχωριστό αρχείο exe που καλούσε απευθείας επιθυμητές λειτουργίεςσυστήματα. Ο καιρός πέρασε και τα antivirus, που εμφανίστηκαν λίγο αργότερα και ξαφνικά έγιναν εμπορικά, έμαθαν γρήγορα να συλλαμβάνουν τους ιούς από τις υπογραφές με απλή σάρωση μνήμη τυχαίας προσπέλασηςή χώρο στο δίσκο.

Και εδώ, στον πυρετό της αιώνιας πάλης μεταξύ των συγγραφέων ιών και των «αιχμαλώτων» τους, υπήρχε ένα μόνο θέμα που εξακολουθεί να είναι στην ημερήσια διάταξη και θα είναι στο εγγύς απεριόριστο μέλλον - αυτό είναι το ζήτημα της επιβίωσης στο λειτουργικό σύστημα. Επιπλέον, είναι επίσης σχετικό με τα προγράμματα προστασίας από ιούς, επειδή για έναν καλό προγραμματιστή συστήματος που γράφει ιούς / rootkits, η αφαίρεση της διαδικασίας προστασίας από ιούς από το σύστημα δεν είναι πολύ δύσκολη δουλειά.

Επομένως, μπορούμε να πούμε με ασφάλεια ότι ένα από τα καθήκοντα των antivirus είναι η ικανότητα να διατηρούν τη διαδικασία τους ανέπαφη και ασφαλή από τις κακόβουλες ενέργειες του ιού. Σε γενικές γραμμές, σήμερα, τα άγκιστρα θα πρέπει να νοούνται ως η καθιέρωση ελέγχου στο κύριο λειτουργίες του συστήματοςλειτουργικό σύστημα, από το οποίο εξαρτάται η βιωσιμότητα οποιουδήποτε προγράμματος - μιλάμε, κατά κανόνα, για τις λειτουργίες της εργασίας με διεργασίες, νήματα, το δίκτυο και το Διαδίκτυο κ.λπ.

"Αλλά τι γίνεται με το SetWindowsHook;" - με ρωτάτε. «Ο περασμένος αιώνας», απαντώ. Δεν είναι πλέον kosher να τα χρησιμοποιείτε.

Τι έχουμε;

Ο ευκολότερος τρόπος για να εγκαταστήσετε ένα άγκιστρο στο σύστημα είναι με τη δημιουργία μιας λεγόμενης συνάρτησης διακομιστή μεσολάβησης. Με άλλα λόγια, πρέπει να αποφασίσετε ποια λειτουργία παρακολουθείτε και να βρείτε τη διεύθυνση της κλήσης της. Για να γίνει αυτό, η συνάρτηση GetProcAddress χρησιμοποιείται συνήθως ως εξής: GetProcAddress(GetModuleHandle("ntdll.dll"), "CsrNewThread").

Ωστόσο, οι διαφωτισμένοι άνθρωποι γνωρίζουν ότι σχεδόν πάντα παρεμποδίζεται από τους avers και για να βρουν τη διεύθυνση της συνάρτησης, χρησιμοποιούν την ανάλυση του πίνακα εισαγωγής μιας συγκεκριμένης βιβλιοθήκης, συνήθως ntdll.dll, kernel32.dll (kernelbase.dll στα Windows7 ) ή advapi32.dll.

int MyNewFunction(void *param1,
int param2, bool param3)
{
επιστροφή αρχικής συνάρτησης (param1,
param2, param3);
}

Μετά από αυτό, θα πρέπει να αντικαταστήσετε τη διεύθυνση κλήσης OriginalFunction με τη δική σας - δηλαδή με το MyNewFunction.

Τώρα, εάν κάποιος θέλει να καλέσει την OriginalFunction για εκτέλεση, θα κληθεί πρώτα η συνάρτηση διακομιστή μεσολάβησης MyNewFunction, η οποία στη συνέχεια θα μεταφέρει τον έλεγχο στην αρχική διεύθυνση. Μάλλον 8 αγκίστρια στα 10 δουλεύουν με τόσο απλό τρόπο.Αυτή η μέθοδος βολεύει μόνο για την απλότητά της, αλλά ταυτόχρονα είναι τρομερό ελαφάκι για αβέρες. Πως? Σκεφτείτε μόνοι σας - το μόνο που χρειάζεται ο aver είναι να συγκρίνει την προηγούμενη, "νόμιμη" διεύθυνση της λειτουργίας με αυτό που πραγματικά είναι. Εάν διαφέρουν, χτυπάμε το συναγερμό. Παρεμπιπτόντως, τίθεται το επόμενο ερώτημα: πού να βρείτε αυτήν ακριβώς τη διεύθυνση της αρχικής συνάρτησης; Δεν χρειάζεται να μαντέψετε πάρα πολλά - διαβάζεται από το επιθυμητό αρχείο στο δίσκο. Αυτή η προσέγγιση βασίζεται στην υπόθεση ότι ο ιός δεν θα επιδιορθώσει τον πίνακα εξαγωγής ενός αρχείου στο δίσκο, περιοριζόμενος σε μια ενημερωμένη έκδοση κώδικα εικονικής μνήμης.

Ας προχωρήσουμε λοιπόν. Όπως είπα, η χρήση ενός γάντζου ως συνάρτησης μεσολάβησης, αν και είναι βολικό, είναι, πρώτον, ελαφάκι και, δεύτερον, είναι κατάλληλο μόνο για αρχάριους. Αυτό δεν είναι για εσάς :). Ο πιο συνηθισμένος τύπος γάντζου είναι το μάτισμα. Είμαι σίγουρος ότι έχετε ακούσει αυτή τη λέξη πολλές φορές. Στην περίπτωσή μας, αυτή είναι μια εγγραφή στην αρχή της συνάρτησης μιας ακολουθίας πέντε byte, η οποία είναι μια εντολή jmp στη διεύθυνση του χειριστή υποκλοπής. Εδώ το πρώτο byte είναι ο jmp opcode, τα υπόλοιπα τέσσερα byte είναι η διεύθυνση της συνάρτησής σας.

Εάν πρέπει να καλέσετε μια υποκλαπόμενη συνάρτηση, τότε πριν την αντικαταστήσετε, πρέπει να αποθηκεύσετε τα αρχικά της byte και να τα επαναφέρετε πριν την κλήση. Ελάττωμα αυτή τη μέθοδοσυνίσταται στα εξής: εάν, μετά την επαναφορά της αρχής της συνάρτησης, προέκυψε ένας διακόπτης περιβάλλοντος σε άλλο νήμα εφαρμογής, τότε θα μπορεί να καλέσει τη συνάρτηση, παρακάμπτοντας τον υποκλοπή. Αυτή η αδυναμία μπορεί να διορθωθεί διακόπτοντας όλα τα πλευρικά νήματα της εφαρμογής πριν από την κλήση και ξεκινώντας μετά την κλήση. Και φυσικά, το μάτισμα, όπως και οι λειτουργίες διακομιστή μεσολάβησης, εντοπίζεται επίσης εύκολα με τη μέθοδο σάρωσης μνήμης, αφού θα είναι αμέσως σαφές ότι η κλήση της συνάρτησης πηγαίνει κάπου αλλού.

Γενικά, κοιτάζοντας μπροστά, πρέπει να μεταφέρω στο ευρύ κοινό ότι σχεδόν όλες οι μέθοδοι υποκλοπής κλήσεων συναρτήσεων εντοπίζονται με κάποιο τρόπο με τη σάρωση μνήμης. Με εξαίρεση δύο μεθόδους, αλλά διαβάστε σχετικά παρακάτω.

IAT, EAT και άλλα θηρία

Τίθεται το ερώτημα: τι και, κυρίως, πού μπορείτε να βάλετε τα αγκίστρια σας; Το πρώτο πράγμα που σας έρχεται στο μυαλό είναι, φυσικά, να βάλετε την υποκλοπή στον πίνακα διευθύνσεων εισαγωγής (IAT). Όταν μια εφαρμογή χρησιμοποιεί μια συνάρτηση από μια βιβλιοθήκη, η εφαρμογή πρέπει να εισάγει τη διεύθυνση της συνάρτησης. Κάθε DLL που χρησιμοποιείται από μια εφαρμογή περιγράφεται σε μια δομή που ονομάζεται IMAGE_IMPORT_DESCRIPTOR. Αυτή η δομή περιέχει το όνομα του DLL του οποίου οι συναρτήσεις εισάγονται από την εφαρμογή και δύο δείκτες σε δύο πίνακες δομών IMAGE_IMPORT_BY_NAME. Η δομή IMAGE_IMPORT_BY_NAME περιέχει τα ονόματα των εισαγόμενων συναρτήσεων που χρησιμοποιούνται από την εφαρμογή.

Οταν λειτουργικό σύστημαφορτώνει την εφαρμογή στη μνήμη, διαβάζεται η δομή IMAGE_IMPORT_DESCRIPTOR και κάθε απαιτούμενο DLL φορτώνεται στη μνήμη της εφαρμογής.
Μόλις αντιστοιχιστεί το DLL, το λειτουργικό σύστημα τοποθετεί κάθε εισαγόμενη συνάρτηση στη μνήμη και αντικαθιστά έναν από τους πίνακες IMAGE_IMPORT_BY_NAME με τη διεύθυνση εκτέλεσης της συνάρτησης.

Μόλις εμφανιστεί ένα άγκιστρο στο χώρο διευθύνσεων της εφαρμογής, ο ιός σας θα μπορεί να διαβάσει τη μορφή PE της εφαρμογής προορισμού στη μνήμη και να αντικαταστήσει τη διεύθυνση προορισμού της συνάρτησης στο IAT με τη διεύθυνση του άγκιστρου. Στη συνέχεια, όταν καλείται η συνάρτηση αγκίστρωσης, η συνάρτηση αγκίστρου θα εκτελεστεί αντί για την αρχική συνάρτηση. Μια ελαφρώς πιο σπάνια επιλογή που εμφανίζεται στη φύση, που εφαρμόζεται σύμφωνα με την αρχή "Εάν το βουνό δεν πάει στο Magomed ..." - υποκλοπή του πίνακα διευθύνσεων εξαγωγής (EAT), όταν, αντίθετα, ο πίνακας εξαγωγής Dll έχει διορθωθεί , το οποίο εξάγει τη συνάρτηση προορισμού.

STELTH Hooks: Πιάσε με αν μπορείς

Όπως έγραψα παραπάνω, το κύριο μειονέκτημα των παραπάνω μεθόδων υποκλοπής είναι η αναγκαστική τροποποίηση της μνήμης, η οποία αναπόφευκτα οδηγεί στον εντοπισμό της από τους avers. Υπάρχει διέξοδος; Παραδόξως, υπάρχει. Ακόμα και δύο. Το πρώτο είναι να καταχωρήσετε τον χειριστή εξαιρέσεων και μετά να τον αποκτήσετε. Αυτό μπορεί να γίνει, για παράδειγμα, χάνοντας κάποια περιοχή μνήμης. Η δεύτερη μέθοδος είναι μια ελαφρώς τροποποιημένη πρώτη. Δηλαδή, εσείς, όπως και πριν, καταχωρείτε έναν χειριστή εξαιρέσεων, αλλά για να τα δημιουργήσετε χρησιμοποιείτε μια τεχνική που είναι γνωστή στους εντοπιστές σφαλμάτων. Όπως γνωρίζετε, οι καταχωρητές εντοπισμού σφαλμάτων επεξεργαστή χρησιμοποιούνται για τον εντοπισμό σφαλμάτων εφαρμογών και είναι συνήθως διαθέσιμοι από το kernelmod. Ωστόσο, μπορούν επίσης να οριστούν από εφαρμογές λειτουργίας χρήστη χρησιμοποιώντας τις συναρτήσεις GetThreadContext/ SetThreadContext. Οι καταχωρητές εντοπισμού σφαλμάτων χρησιμοποιούνται για τον ορισμό σημείων διακοπής (σημεία διακοπής) στην πρόσβαση σε μια θέση μνήμης ή εκτέλεση.

Υπάρχουν συνολικά οκτώ μητρώα, ο σκοπός τους είναι ο εξής:

  • DR0 - DR3 - Καθένας από αυτούς τους καταχωρητές περιέχει τη γραμμική διεύθυνση ενός από τα τέσσερα σημεία ελέγχου. Εάν η σελιδοποίηση είναι ενεργοποιημένη, τότε οι τιμές τους μεταφράζονται σε φυσικές διευθύνσεις σύμφωνα με έναν κοινό αλγόριθμο.
  • DR4 - DR5 - Οι καταχωρητές είναι δεσμευμένοι και δεν χρησιμοποιούνται στον επεξεργαστή i486.
  • DR6 - Εγγραφή κατάστασης εντοπισμού σφαλμάτων. Αναφέρει τις συνθήκες που αντιμετωπίστηκαν κατά τη δημιουργία της εξαίρεσης εντοπισμού σφαλμάτων (αριθμός 1). Τα bit εγγραφής ορίζονται από το υλικό και επαναφέρονται από το λογισμικό.
  • DR7 - Ο καταχωρητής καθορίζει τον τύπο πρόσβασης στη μνήμη που σχετίζεται με κάθε σημείο ελέγχου.

Έτσι, το μόνο που χρειάζεται να κάνετε είναι να ορίσετε ένα σημείο διακοπής υλικού (γνωστό και ως int 1) στην αρχή της συνάρτησης, έτσι ώστε ο επεξεργαστής να δημιουργήσει τη λεγόμενη "εξαίρεση ενός βήματος" (εξαίρεση ενός βήματος) και στη συνέχεια, ρυθμίζοντας το δικός χειριστής εξαιρέσεων: AddVectoredExceptionHandler (0, (PVECTORED_EXCEPTION_ HANDLER)DebugHookHandler), συνδέστε το ίδιο EXCEPTION_SINGLE_STEP.

Όταν δημιουργηθεί, ο χειριστής σας θα αναλάβει τον έλεγχο της επιθυμητής λειτουργίας. Το αναμφισβήτητο πλεονέκτημα αυτής της μεθόδου είναι ότι είναι απολύτως μη ανιχνεύσιμη με σάρωση μνήμης, καθώς η τροποποίησή της δεν συμβαίνει εδώ.

int SetDebugBreak(διεύθυνση FARPROC)
{
int status = -1;
HANDLE thSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPTHREAD, NULL);
THREADENTRY32te;
te.dwSize = sizeof(THREADENTRY32);
Thread32First(thSnap, &te);
κάνω
{
if(te.th32OwnerProcessID != GetCurrentProcessId())
να συνεχίσει;
HANDLE hThread = OpenThread(
THREAD_ALL_ACCESS, FALSE, te.th32ThreadID);
ΠΛΑΙΣΙΟ ctx;

GetThreadContext(hThread, &ctx);
if(!ctx.Dr 0)
{
ctx.Dr0 = MakePtr(ULONG, διεύθυνση, 0);
ctx.Dr7 |= 0x00000001;
κατάσταση = 0;
}
αλλιώς εάν(!ctx.Dr1)
{
ctx.Dr1 = MakePtr(ULONG, διεύθυνση, 0);
ctx.Dr7 |= 0x00000004;
κατάσταση = 1;
}
αλλιώς εάν(!ctx.Dr2)
{
ctx.Dr2 = MakePtr(ULONG, διεύθυνση, 0);
ctx.Dr7 |= 0x00000010;
κατάσταση = 2;
}
αλλιώς εάν(!ctx.Dr3)
{
ctx.Dr3 = MakePtr(ULONG, διεύθυνση, 0);
ctx.Dr7 |= 0x00000040;
κατάσταση = 3;
}
αλλού
κατάσταση = -1;
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
SetThreadContext(hThread, &ctx);
CloseHandle(hThread);
}
while(Thread32Next(thSnap, &te));
κατάσταση επιστροφής·
}

συμπέρασμα

Όπως μπορείτε να δείτε, ακόμα και στις πιο δύσκολες καταστάσεις, μπορείτε να βρείτε την ευκαιρία να εκτελέσετε τον κώδικά σας. Είμαι βέβαιος ότι σε αυτήν την περίπτωση ο κωδικός σας στοχεύει αποκλειστικά στην επίλυση των προβλημάτων προστασίας του συστήματός σας. Καλή επιτυχία και καλή μεταγλώττιση!

Συνδέσεις

http://vx.netlux.org - ένα είδος μουσείου με ιούς, μηχανές ιών και άλλα ενδιαφέροντα πράγματα. Πρέπει να επισκεφθείτε, με μια λέξη.

Επειδή πολλοί μου γράφουν και ρωτούν πότε είναι η τελική έκδοση του Hook, αποφάσισα να γράψω ένα άγκιστρο, αλλά όχι το Ar4Mode.
Αποφάσισα να μην γαμήσω το παλιό μου γάντζο (γιατί ο κωδικός εκεί είναι τρομερός), έτσι αποφάσισα να γράψω ένα νέο. Με κάποιες αλλαγές.

Υπάρχει ένα άγκιστρο στο αρχείο για: Ar4Mode, JBE, UJBL, JBM, καθώς και για άλλα mod (αλλά δεν χρησιμοποιούνται εγγενείς).
Υπάρχει επίσης ένα άγκιστρο χωρίς αποθήκευση (πρέπει να το αλλάξετε στο plugins-iHOOK.ini).

Διαφορές από το παλιό γάντζο:
[-] Ρύθμιση χρώματος γάντζου.
[+] Αποθήκευση ανά βάση δεδομένων (MsQl).
[+] Μέσω της ρύθμισης αρχείου: ταχύτητα, τύπος. μέγεθος, το τέλος του ξωτικού.
[+] Μπορείτε να ορίσετε ένα συγκεκριμένο άγκιστρο σε μια συγκεκριμένη σημαία.
[+] Μέσω της ρύθμισης σημαίας αρχείου: ιστοί αράχνης/μενού/control/ shutdown.
[+|-] Οπτικές αλλαγές.
[+] Προστέθηκαν νέα sprites/ήχοι (αν και μπορείτε να το κάνετε μόνοι σας).
[+] Μέσω του αρχείου, μπορείτε να ορίσετε τον τύπο του άκρου του γάντζου (scatter ή single sprite).
[+] (JBE) Μπορείτε να επιλέξετε πότε θέλετε από ποιον θα αφαιρεθεί το άγκιστρο (από όλους ή μόνο από το άτομο στη λίστα καταζητούμενων).
[+] Ωραίος κωδικός.

Εντολές κονσόλας:
1) say / hook - μενού web
2) +άγκιστρο / +σχοινί - ενεργοποίηση του ιστού

Ιθαγενείς:
native_iHOOK_menu(id) - άνοιγμα μενού.
native_iHOOK_get_hook_sett(id, iType) - λήψη ρυθμίσεων αγκίστρου [ iType: 1 - web sprite / 2 - sound / 3 - web end sprite / 4 - size / 5 - look / 6 - speed ]
bool:native_iHOOK_get_hook_player_have(id) - λάβετε την παρουσία του γάντζου.
================================================================



Φόρτωση...
Μπλουζα