Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant archive_postsperpage - assumed 'archive_postsperpage' (this will throw an Error in a future version of PHP) in ..../archive/index.php on line 456
New mc Method. [Archive] - Forums

PDA

View Full Version : New mc Method.



klusbert
05-20-2013, 01:22 PM
Okay this will be a really short tutorial. The main reason why I write this is because I want to show that there is other way to achieve running multiple clients.

Open up ollydbg and find were tibia create mutex.
http://i.imgur.com/dL01ti2.png

As we see tibia pushes a string as a argument to kernel32.createmutex.


PUSH 0x09A4950
PUSH 0x0
PUSH 0x0
CALL CreateMutexA


Open up cheat engine and add this address 0x09A4950 (as string) and we will see "TibiaPlayerMutex".

Now we only need to change that string for each client but before the mutex is created.



string tibiaPath = Path.Combine(Environment.GetFolderPath(Environment .SpecialFolder.ProgramFiles), @"Tibia\tibia.exe");
long MutexName = 0x9A4950;
IntPtr handle;

PROCESS_INFORMATION pi = new PROCESS_INFORMATION();
STARTUPINFO si = new STARTUPINFO();

if (!CreateProcess(tibiaPath, "", IntPtr.Zero, IntPtr.Zero,
false, CREATE_SUSPENDED, IntPtr.Zero, System.IO.Path.GetDirectoryName(tibiaPath), ref si, out pi))
{
return;
}
handle = OpenProcess(PROCESS_ALL_ACCESS, 0, pi.dwProcessId);
WriteString(handle, MutexName, "TibiaPlayerMutex" + pi.dwProcessId.ToString());

ResumeThread(pi.hThread);



So this is really easy to update, you only need one address and you can find it really easy in cheat engine just search for "TibiaPlayerMutex"

I wouldn't use this method my self but maybe someone find this useful

But the result looks like this:
http://imgur.com/b52uxc8

robssito
06-15-2013, 03:43 AM
Great idea. Thank you :)

lily
02-07-2015, 07:57 PM
I have been using this method for finishing my pen barrels for a while now and find it is fast and works great for me.

Les

lily
04-04-2015, 12:36 PM
Really a lot of fantastic info.|
Nicely put, Kudos! - http://www.viagrabelgiquefr.com/

Cater
04-14-2015, 06:55 AM
Just change PUSH 0x09A4950 to PUSH 0, you will create unnamed mutex which is unique.