{"repo":"JohnSwiftC/rustdllproxy","free":true,"listed":false,"github":"https://github.com/JohnSwiftC/rustdllproxy","clone":"git clone https://github.com/JohnSwiftC/rustdllproxy.git","description":"Generate Proxy DLLs in Rust","language":"Rust","stars":56,"topics":["command-line","dllproxy","rust"],"license":null,"category":"cli-tools","readme_excerpt":"rustdllproxy A Rust crate utility to easily generate and develop proxy DLLs for Windows applications. Installation Compatibility This crate currently only supports the standard DLL PE format. Current Limitations - When hooking functions with custom code, the function signature must be known - This can be found using disassemblers and reverse engineering tools like Ghidra Commands Rustdllproxy ships two subcommands: Command Purpose -------------------- ------------------------------------------------------------------- rustdllproxy new Generate a new proxy cdylib crate from one or more existing DLLs. rustdllproxy build Sync the .def file with src/lib.rs and build the crate. Creating a New Crate A Quick Note on Strategy Before generating your crate, decide how you would like your proxy to work. A typical pattern is search order hijacking, where you would first rename your target DLL to something like target .dll , and then use the compiled proxy as target.dll . This creates a flow resembling binary - target.dll - target .dll There are multiple paths forward depending on your use case. If however you need to rename the underlying DLL being proxied, update the generated .def file accordingly. --- Tip: rustdllproxy is built as a CLI with clap. Run rustdllproxy --help to see all options and flags. Writing Hooks The macro library supports 3 main hook types: prehook , posthook , and fullhook . Hook Implementation Steps 1. Replace the #[no mangle] directive with the hook macro (leave ","default_branch":null,"files":null,"tree":[],"storefront":"/r/JohnSwiftC","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/JohnSwiftC/rustdllproxy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}