WoW Memory EditingWoW Memory Editing for learning purposes only.
This section is more advanced than others on MMOwnedRead the section specific rules, infractions will be given out if u break them!That is including the expectations! - If you don't meet them then don't post
Purpose:
To wrap the PE file format in its entirety, for both read and write operations, and for both files in memory and on disk.
Architectures:
IA-32 (x86)
AMD64 (x64)
IA-64 (Itanium) <-- Compiles fine but needs testing.
Languages:
Written in C++. Sorry, but the API is not C-compatible.
Provided is a solution and project file for VS2008. However you should be able to get it working in your particular compiler with little-to-no work.
Notes:
If you want to use this you need to be prepared for breaking API changes in future versions (meaning, APIs may not be backwards compatible so it will require you to update your source code). If you are not comfortable with this than you may want to wait a while (possibly a long time) until these changes are over.
Reason being, the library is still in very early stages and I need to make some large architectural changes in order to implement certain functionality.
I would love to hear comments/suggestions/criticisms/etc if you have them.
Releases: [Only registered and activated users can see links. ]
First release. Very basic functionality. Currently wraps NT header, DOS header, TLS dir, Import dir, and Export dir. Only supports files in-memory. Only supports operating on files with the same architecture that the lib is compiled as. Still lots of potential bugs and unchecked pointers. [Only registered and activated users can see links. ]
Maintenance release. Fixes some critical bugs, some minor bugs, and introduces an example usage project.
__________________
[Only registered and activated users can see links. ]Back online!
"Science is interesting, and if you don't agree you can **** off." [Only registered and activated users can see links. ]
"I can write very coherent things when I try that sound very good" -- Styles
Last edited by Cypher; 10-12-2009 at 04:33 AM.
Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx.
Wow, many thanks for once again sharing a very useful software lib. Have no time to look at it now right now. Does it do rebasing?
Relocations are something which I am in the process of adding.
You can't rebase a module on disk yet, but I want to be able to relocate a module in-memory. Reason being is I'm writing my own PE loader so I can do a DLL manual mapper and a EXE memory forker.
Rebasing on disk will come later, however the Windows SDK can do that for you already.
__________________
[Only registered and activated users can see links. ]Back online!
"Science is interesting, and if you don't agree you can **** off." [Only registered and activated users can see links. ]
"I can write very coherent things when I try that sound very good" -- Styles
Reason being is I'm writing my own PE loader so I can do a DLL manual mapper and a EXE memory forker.
It seems I'm not the only one.
If you haven't done so, I'd suggest having a look at the ReactOS source on loading modules - it doesn't support everything but it's a nice base to work on the rest of it.
It seems I'm not the only one.
If you haven't done so, I'd suggest having a look at the ReactOS source on loading modules - it doesn't support everything but it's a nice base to work on the rest of it.
Nah, I'm reversing the Windows PE loader. It's a longer process, but likely to be more accurate.
__________________
[Only registered and activated users can see links. ]Back online!
"Science is interesting, and if you don't agree you can **** off." [Only registered and activated users can see links. ]
"I can write very coherent things when I try that sound very good" -- Styles
One of the things I ever wanted to do is a rewrite of CreateProcess so I can use it with data in Memory instead of having to set .exe-files on my hdd.
Thats what I was referring to when I said "EXE memory forker". It's a fairly big job if you want to do it in a stable and reliable manner though. Be prepared to invest a lot of time.
__________________
[Only registered and activated users can see links. ]Back online!
"Science is interesting, and if you don't agree you can **** off." [Only registered and activated users can see links. ]
"I can write very coherent things when I try that sound very good" -- Styles
I've actually added a whole bunch of features and started on the file-based access and platform-independent file manipulation. Hence the long gap before another release. Still a while off yet because I'm juggling so many different things at once, but it's getting there.
__________________
[Only registered and activated users can see links. ]Back online!
"Science is interesting, and if you don't agree you can **** off." [Only registered and activated users can see links. ]
"I can write very coherent things when I try that sound very good" -- Styles
Thanks Cypher, looks great. Also using your new loader you posted on your blog with my new project, which is maybe the 4th rewrite... Don't really know why I keep doing this to myself, but the loader came in handy.