| View previous topic :: View next topic |
| Author |
Message |
homer_simpson Grandmaster Cheater
Reputation: 0
Joined: 25 Feb 2007 Posts: 596
|
Posted: Fri Jul 04, 2008 3:38 pm Post subject: [Help] MapleStory WPM/RPM bypass |
|
|
First of all I would like to know how to do it in delphi or C++. Would a trampoline work?
Or would I need a hookhop?
And also I would like a sample on how to do it.
|
|
| Back to top |
|
 |
Cx Master Cheater
Reputation: 0
Joined: 27 Jul 2007 Posts: 367
|
Posted: Fri Jul 04, 2008 5:11 pm Post subject: |
|
|
Noooo.
The kernel equivalents are hooked.
_________________
armed with this small butterfly net
i will face the world alone
& never be lonely. |
|
| Back to top |
|
 |
homer_simpson Grandmaster Cheater
Reputation: 0
Joined: 25 Feb 2007 Posts: 596
|
Posted: Fri Jul 04, 2008 5:49 pm Post subject: |
|
|
| Cx wrote: | Noooo.
The kernel equivalents are hooked. |
Mind explaining? Im not a pro on this subject.
|
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jul 04, 2008 5:51 pm Post subject: |
|
|
Hm...aren't there other ways to write and read memory? Something less obvious?
EDIT:
Do WPM/RPM have a hotpatch prologue or w/e it is.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
rapion124 Grandmaster Cheater Supreme
Reputation: 0
Joined: 25 Mar 2007 Posts: 1095
|
Posted: Fri Jul 04, 2008 6:15 pm Post subject: |
|
|
| You can read/write memory by injecting a DLL into the process and using a pipe or file-mapping to control the DLL and request memory reads.
|
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jul 04, 2008 6:21 pm Post subject: |
|
|
You could. Or you could also make your program inject a dll to write and read the memory and listen on to see if you hit a hotkey. And really your program is just a injector for many dll files. But a pipe may be easier.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
homer_simpson Grandmaster Cheater
Reputation: 0
Joined: 25 Feb 2007 Posts: 596
|
Posted: Sat Jul 05, 2008 6:07 am Post subject: |
|
|
| So if I would make a dll and inject it and use WPM/RPM it would work?
|
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Sat Jul 05, 2008 7:44 am Post subject: |
|
|
No, look inject a dll that has the capabilities to send information to your program (presumably through piping). The way you write and read memory is through pointers. Here's an example:
| Code: |
if(GetAsyncKeyState(VK_F12)) {
DWORD *pFlags = 0x0C492184 //just a random address
*pFlags = 999;
}
|
ANd for reading it's basically the same idea.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Sat Jul 05, 2008 8:17 am Post subject: |
|
|
When you inject your DLL, your DLL shares the virtual memory space of the target process which means you can essentially treat the memory as that of the DLL and hence directly access/read/write memory.
eg. in ASM it might be something like:
mov dword ptr ds:[virtual_address], eax
You could always try functions like RtlCopyMemory or RtlMoveMemory.
@oib, the 5 byte prologue that enables hot patching is not actually necessary if you do want to trampoline. You can copy the first 5 bytes, whatever the case. However if it is not the often seen:
| Code: | mov edi, edi
push ebp
mov ebp, esp |
You can still copy it dynamically (quite easy to do) but you may end up copying "half an instruction" which will most likely lead to an exception.
@homer_simpson, Trampoline/HookHop will not work for RPM/WPM because not only are those functions hooked but they also eventually call other native APIs which are respectively hooked such as:
- ZwWriteProcessMemory
- ZwReadProcessMemory
On top of that, KiAttachProcess is also hooked. Coding an injectable DLL to read/write memory is actually very easy though.
Even in ASM you can do it in 10 lines or less (of actual code inclusive of labels and such).
|
|
| Back to top |
|
 |
|