Hotkey options questions/suggestion

Find a Bug? Have a Problem? Like to Suggest a Feature? Do it Here

Moderators: g3nuin3, SpeedWing, WhiteHat, mezzo

Hotkey options questions/suggestion

Postby Jazcat » Mon Oct 22, 2007 8:43 am

I think MHS is great but there's only one thing that is stopping me from using it, the lack of key binding options.

Please let me know if there is another way to do this, all I can see are options to freeze values.

I need these 4 options in the hotkey binding functionality:
Freeze/lock a value (existing feature).
Set a current value
Add to current value
Subtract from current value

At the moment i'm using Artmoney, a hidious piece of software but its the only memory editor that supports pointers with a limited amount of key binding options. Currently TSearch is the best for hotkey functionality but is a very outdated utility and does not support pointers.

I also like there to be no limit on how many binds you can add to a single entry, eg. multiple set current value to "number" each with their own binding.

Also with MHS can you inject your own ASM code straight into the bound process? I'm currently using TSearch's EasyWrite to do this.

Can this be achieved with MHS in its current state?

Thank you
Jazcat
I Have A Few Questions
 
Posts: 2
Joined: Thu Oct 18, 2007 8:44 am

Postby L. Spiro » Mon Oct 22, 2007 10:14 am

Hotkeys


Freeze/lock a value (existing feature).

Supported directly with Hotkeys, as apparently you saw.

Set a current value

Supported directly with Hotkeys. Set Hotkey function to Poke. Supply the address, value, and size.

Add to current value

This is a more generalized feature that you can already do with Hotkeys, but because addresses can be any type and you could want to increase by any amount, this is not directly supported by a specific Hotkey.

Use this script and change what you need:

Code: Select all
VOID On_HK_90( DWORD dwAddress, DWORD dwIncBy ) {
    extern DWORD e_dwValue = { "", dwAddress };
    e_dwValue += dwIncBy;
}

Once you add that to your scripts and recompile, you can add a Hotkey to call this function, using Parm 2 to indicate the address and Parm 3 to indicate the amount by which to increase. Parm 1 is obviously 90.
Read the help file for information regarding how to set Hotkeys to script functions.



Subtract from current value

You can use the same code as above, but supply a negative number for your Parm 3. Or you can modify the script to use -= instead of +=, and keep Parm 3 as a positive value.




At the moment i'm using Artmoney, a hidious piece of software but its the only memory editor that supports pointers with a limited amount of key binding options.

I have not yet found any software that has more Hotkey functionality than MHS, primarily because you have the ability to call script functions with Hotkeys which in turn allows you to do anything you want.

Furthermore, MHS offers more pointer functionality than ArtMoney.
Read about Address Modifications, which explains the complex addresses (simplest way to add pointers to the target address) and script addresses, which allow you to make any method you want for finding the target address.



I also like there to be no limit on how many binds you can add to a single entry, eg. multiple set current value to "number" each with their own binding.

This is already supported—any key can be assigned any function, regardless of whether another key was already assigned the same function.



Also with MHS can you inject your own ASM code straight into the bound process? I'm currently using TSearch's EasyWrite to do this.

MHS automatically finds the code cave for you or creates one.
It automatically creates the JMP to your code cave and the JMP back to the original code.
It automatically recompiles the overwritten code at the new location, before or in front of your own code.
And injections can be set to automatically inject when the process is loaded in the future.

I have not yet seen better support for injections.
You can add injections by opening the Disassembler (Ctrl-D) and right-clicking the line where you want to inject your code. Then select Inject Code from the pop-up menu.

After you inject your code you can view/modify/remove it later by opening the Injection Manager (Tools/Injection Manager or Ctrl-I on the main window).

If you didn’t already, get version 4.0.0.4, posted yesterday.


L. Spiro
User avatar
L. Spiro
L. Spiro
 
Posts: 3129
Joined: Mon Jul 17, 2006 10:14 pm
Location: Tokyo, Japan

Postby Jazcat » Tue Oct 23, 2007 7:59 am

Thanks L for your comprehensive response :)
Jazcat
I Have A Few Questions
 
Posts: 2
Joined: Thu Oct 18, 2007 8:44 am


Return to Bugs/Problems/Suggestions

Who is online

Users browsing this forum: No registered users and 0 guests