Available on the download page.
This version offers some advanced new features that most likely do not exist anywhere else.
DLL Injectors are common and it’s about time I added one to MHS.
But along with the
DLL Injector comes a feature to call any function in the target process.
Once you inject your DLL, the same dialog allows you to call any function in your injected DLL(s) remotely.
In the
Disassembler Helper window, in the
Imports and
Exports tabs, you can right-click any function and call it remotely.
And in the
Disassembler itself, you can right-click any line of code and call it remotely.
This is not a half-assed implementation, either.
You can pass any number of parameters, and parameters can be any valid expressions in the Expression Evaluator. Casting is allowed as well.
You can select between __cdecl and __stdcall, but my implementation secures the function call in such a way that neither the target process nor MHS will crash if you call with the wrong convention, wrong parameters, or even if you simply call an address that isn’t a function, or is in the middle of a function.
There are exceptions to this, however, though considerably rare.
Other areas of the software have been improved or fixed as well, and reading RAM is now done through a custom function which is twice as fast and twice as hard to detect.
L. Spiro