Comments (6)
Line 249 is what you're looking for, just check there for the string of the function name you want to override and give it the address of the function it should call.
from memorymodule.
@icefex thanks for the response, however I was thinking on a more modular way than overwrite the code of MemoryModule
MemoryModule is provided under MPL license, so I want to avoid modifications to it to the minimum and instead have a hooks friendly API to be able, from another module, hook library loading.
from memorymodule.
You have to extend MemoryModule in some way, the license is not the issue here. Like you said just keep it minimal and share the changes :D
You could f.i. implement the whole shebang as a function call to another module, just share the patch with that line in it and you're good to go. (Tip: if you are going to hook more than a few calls implement a global linked list in which you register the hooked calls, this allows for changes in the hooks at runtime and will look better).
from memorymodule.
Having an API to override the LoadLibrary
/GetProcAddress
called by MemoryModule probably would be the cleanest solution. I'm open for patches or pull requests ;-)
from memorymodule.
You'll experience some problems with TLS/FLS data, if you load a complete executable with MemoryLoadLibrary. TLS has it's own directory. You've to implement to following steps:
- Loading all dependencies and resolve the import tables
- Initialize TLS of all dependencies( Call TLS Callbacks, allocate indices )
- Iterate through the dependencies and call every DLLMain
- Initialize TLS of the executable/library to execute
- Call the entry point
from memorymodule.
Please check the latest code, is this what you were looking for?
from memorymodule.
Related Issues (20)
- Create Activation Context Implementation (with code)
- Bug results in crash when loading some DLLs. (with code fix!) HOT 4
- Starting Calc.exe fails (partial fix with code) HOT 2
- PDB Files Not Loaded for DLL's
- running the FARPROC type function fails
- Memory on kernel
- can MemoryCallEntryPoint accept parameters? just like a command line with parameters?
- c# compiled exe load supported ? HOT 1
- 64-bit DLL compiled by G++ failed to load. HOT 1
- cannot load DLL that use OpenSSL? HOT 2
- Link with dllloader
- new failed to allocate memory
- BUG in FinalizeSection
- .pyd files from Python - MemoryModule HOT 5
- Use Unicode version of LoadLibrary HOT 2
- Support for VirtualMachine Libraries
- Can not use CString in vs2015 and newer version , it seems like dynamiclly load Thread Local Storage can not be supported in MemmoryModule??
- Creation of Rust bindings
- MemoryGetProcAddress fails to import a function by ordinal number if dll has no exported names HOT 1
- Need to use it in C# with and unmanaged dll HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from memorymodule.