Προς το περιεχόμενο

UnHook native api


ntaryl

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα

Παιδια πριν λιγο καιρο προσπαθουσα να κανω Hooking καποια apis .Τελικα με λιγη βοηθεια απο τον Reker το εφτιαξα .

Τωρα αυτο που θελω ειναι να κανω το αντιθετο .Να κατορθωσω να κανω Unhook καποια api .που χρησιμοποιουνται απο ενα αρχειο .Παραδειγμα αν εχω το αρχειο test ,εμφυτευοντας μεσα σε αυτο ενα Dll για να μπορεσω να κανω unhook καποιο συγκεκριμενο api .

ελπιζω να εξηγησα σωστα

Υ.Γ Directx φιλε μου βοηθα την κατασταση

Δημοσ.

Φίλε ntaryl καλησπέρα, δυστυχώς δεν έχω μια άμεση απάντηση στο ερώτημα σου καθώς δεν έχω ασχοληθεί τόσο πολύ με αυτές τις διαδικασίες (API Hooking, Redirection, Unhooking) βλέπεις δεν χρειάσθηκαν ως τώρα στις εφαρμογές ή τα πειράματα μου.. οπότε η ενασχόληση υπήρξε ευκαιριακή.

 

Τώρα, πρόσεξε, αν θέλεις να φορτώσεις μια DLL σε ένα διαφορετικό process μπορείς να χρησιμοποιήσεις την SetWindowsHookEx ορίζοντας το ανάλογο HISTANCE (MODULE ουσιαστικά για τα Windows 32bit+) στο οποίο θα προσκολληθεί η DLL σου ώστε να γίνει τμήμα του address space αυτής της Process – είναι η πιο εύκολη ρουτίνα και προσφέρεται από το σύστημα για αυτή την δουλειά.

 

Τέλος, το Unhook προϋποθέτει ότι θα πρέπει να έχεις αποθηκεύσει κάπου την αυθεντική διεύθυνση του ανάλογου API call οπότε οφείλεις να την επαναφέρεις -αν θυμάμαι καλά ένα προγενέστερο κώδικα που είχες αναρτήσει, τροποποιούσες το JMP address προς την MessageBox (ελπίζω να μην με απατά η μνήμη μου), νομίζω ότι μπορείς να εφαρμόσεις το αντίστροφό. Θεωρητικά εγώ θα έκανα redirect σε μια δικιά μου διεύθυνση (overwrite του address με την βοήθεια του WriteProcessMemory) που θα πρόσθετα στην Process και ύστερα απλά θα την αφαιρούσα κάνοντας restore το παλιό της DWORD (διεύθυνση μνήμης) που θα είχα αποθηκεύσει με την ReadProcessMemory πριν την αλλαγή. Τώρα αν δεν είχα κάνει εγώ το αρχικό Hook.. αφού έβρισκα την θέση του API που θέλω, πχ CreateFile θα φρόντιζα να έκανα overwrite την διεύθυνση της (WriteProcessMemory) με την «σωστή» (address) που κάνει export το Λ.Σ. μου –δες το import table (αν και στα real world scenarios, είναι το πρώτο που "καταστρέφεται" (προστατεύεται) από τους packers / PE protectors).

 

Πιο συγκεκριμένος δεν μπορώ να γίνω :-(

Δημοσ.

ευχαριστω πολυ

Φιλε μου το Dll το φορτωνω με Dll injection και το hooking υλοποιειται χωρις προβλημα .

Αυτο που θελω να κανω ειναι απο ενα ασχετο αρχειο να φυτεψω το dll μου και να κανω execute τον κωδικα ετσι ωστε να κανω unhook καποια api και να μπορεσω να περασω ανενοχλητος καποιες λειτουργιες

παντως ευχαριστω πολυ

Δημοσ.

Ωραίος, λοιπόν.. αν θες να εκτελεσθεί αμέσως κάποιος κώδικας με το φόρτωμα της DLL σου μπορείς να κάνεις Export ένα DllMain function το οποίο εκτελείται μόλις καλέσεις την LoadLibrary του DLL σου ή όταν το process σου δημιουργεί νέα Threads ή όταν το process ξεφορτώνεται από το σύστημα κτλ (δες την DllMain στο WinAPI SDK διότι υπάρχουν αρκετές παγίδες μαζί της όμως!!).

 

Αν από την άλλη πλευρά δεν σε εξυπηρετεί κάτι τέτοιο, μπορείς να στήσεις ένα notification σύστημα στον κώδικα της DLL που θα παρακολουθεί (πχ ως Timer κτλ) κάποια system events, πχ. ένα message σου ή το setαρισμα κάποιου Atom (κτλ) και όταν το λαμβάνει η εφαρμογή αυτό θα κάνει ότι επιθυμείς -hooking / unhooking κτλ, δες το ως ένα είδος Client (DLL) / Server (κάποιο δικό σου EXE - controller ας πούμε).

Δημοσ.

καλησπερα

Χτες μετα απο πολλη προσπαθεια μπορεσα να κανω inject ενα dll μεσασ στον taskmanager και να κανω hook -TerminateProcess .

χιχιχχι

Σημερα μαλλον εχει πειραμα να κανω Unhook καποιο api απο το AV(avast)

Δημοσ.

Παιδες δε μου λετε κανα app με το οποιο μπορω να βλεπω τοις μεθοδου που ειναι export απο ενα dll? (εχω το View Dependencies απο το vc++ 6, αλλα εχει παλιοσει και το σαϊτ που το υποστηριζει δεν υπαρχει :/ ασε που το μονο που βλεπω με αυτο ειναι το ονομα της function)

Δημοσ.

Μπορείς να δοκιμάσεις το tdump.exe που έρχεται μαζί με τους CodeGear (Borland) compilers το οποίο κάνει πλήρες dump στο stdout όλων των περιεχόμενων (resources, import & export tables κτλ) των dll (και άλλων pe αρχείων).

Δημοσ.

Υπάρχει και το PEiD που δείχνει τα import, export και resource table, κάποιες πληροφορίες από NT header, τις sections και οποιοδήποτε packer ή/και compiler χρησιμοποιήθηκε.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...