![]() |
|
|
|
#1
|
||||
|
||||
|
Sometimes, you need to manipulate low-level functionality (C APIs, etc) from high-level languages (Python).
Eg. Force the low-level side calls directly to your own Python override functions. This repo will help you do that. [x] Windows [x] Linux [x] MacOS [x] iOS [x] Android To hook & unhook a function, you only need to write codes as the following Code:
import ctypes
from PyHooking import PyHooking, load_external_shared_library, arch, bits
# define the hook function
mylib = load_external_shared_library(f"Examples/mylib_{arch}_{bits}")
@PyHooking.CPrototype(ctypes.CFUNCTYPE(None, ctypes.c_char_p))
def hk_print_message(message):
message = f"Invoked `hk_print_message('{message.decode('utf-8')}')`"
PyHooking().invoke(mylib.print_message, message.encode())
# perform hooking
PyHooking().hook(mylib.print_message, hk_print_message)
mylib.print_message(b"This is a string from Python code")
mylib.c_invoke_print_message()
# perform unhooking
PyHooking().unhook(mylib.print_message)
mylib.print_message(b"This is a string from Python code")
mylib.c_invoke_print_message()
# result
'''
Invoked `hk_print_message('This is a string from Python code')`
Invoked `hk_print_message('This is a string from C code')`
This is a string from Python code
This is a string from C code
'''
Follow me on GitHub @ https://github.com/vic4key Regards, Vic P. Last edited by vic4key; 01-02-2024 at 11:03. |
| The Following 2 Users Gave Reputation+1 to vic4key For This Useful Post: | ||
ahmadmansoor (12-29-2023), chants (12-29-2023) | ||
| The Following 6 Users Say Thank You to vic4key For This Useful Post: | ||
ahmadmansoor (12-29-2023), blue_devil (12-28-2023), chants (12-29-2023), MarcElBichon (12-29-2023), nimaarek (04-02-2024), tonyweb (01-02-2024) | ||
|
#2
|
||||
|
||||
|
@vic4key are you the same guy from GitHub, or u have the same name?
__________________
Ur Best Friend Ahmadmansoor Always My Best Friend: Aaron & JMI & ZeNiX |
|
#3
|
||||
|
||||
|
@ahmadmansoor Yep. It's me, bro. I believe that my premature-nickname is unique. ������
P.S Corrected the mistake of copy-paste link from https://github.com/vic4key/cpp-hooking.git to https://github.com/vic4key/py-hooking.git |
| The Following User Says Thank You to vic4key For This Useful Post: | ||
ahmadmansoor (12-29-2023) | ||
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| C++ Hooking - Write Less Do More | vic4key | Source Code | 24 | 04-13-2024 06:57 |
| Write Access on Win9x | nikola | General Discussion | 2 | 04-27-2005 20:23 |
| How to write a dubug like OllDbg? | rivenhuang | General Discussion | 3 | 02-27-2004 15:06 |
| For those who write tutorials. | Nilrem | General Discussion | 4 | 02-03-2004 00:21 |