Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[Help] MapleStory WPM/RPM bypass

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
homer_simpson
Grandmaster Cheater
Reputation: 0

Joined: 25 Feb 2007
Posts: 596

PostPosted: Fri Jul 04, 2008 3:38 pm    Post subject: [Help] MapleStory WPM/RPM bypass Reply with quote

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
View user's profile Send private message
Cx
Master Cheater
Reputation: 0

Joined: 27 Jul 2007
Posts: 367

PostPosted: Fri Jul 04, 2008 5:11 pm    Post subject: Reply with quote

Noooo.
The kernel equivalents are hooked.

_________________

armed with this small butterfly net
i will face the world alone
& never be lonely.
Back to top
View user's profile Send private message
homer_simpson
Grandmaster Cheater
Reputation: 0

Joined: 25 Feb 2007
Posts: 596

PostPosted: Fri Jul 04, 2008 5:49 pm    Post subject: Reply with quote

Cx wrote:
Noooo.
The kernel equivalents are hooked.


Mind explaining? Im not a pro on this subject.
Back to top
View user's profile Send private message
oib111
I post too much
Reputation: 0

Joined: 02 Apr 2007
Posts: 2947
Location: you wanna know why?

PostPosted: Fri Jul 04, 2008 5:51 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
rapion124
Grandmaster Cheater Supreme
Reputation: 0

Joined: 25 Mar 2007
Posts: 1095

PostPosted: Fri Jul 04, 2008 6:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
oib111
I post too much
Reputation: 0

Joined: 02 Apr 2007
Posts: 2947
Location: you wanna know why?

PostPosted: Fri Jul 04, 2008 6:21 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
homer_simpson
Grandmaster Cheater
Reputation: 0

Joined: 25 Feb 2007
Posts: 596

PostPosted: Sat Jul 05, 2008 6:07 am    Post subject: Reply with quote

So if I would make a dll and inject it and use WPM/RPM it would work?
Back to top
View user's profile Send private message
oib111
I post too much
Reputation: 0

Joined: 02 Apr 2007
Posts: 2947
Location: you wanna know why?

PostPosted: Sat Jul 05, 2008 7:44 am    Post subject: Reply with quote

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
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Sat Jul 05, 2008 8:17 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites