I use a glorified text editor.
UltraEdit Text Editor | UltraCompare file compare | UEStudio | UltraSentry
EDIT:
To make it clear, I'm not endorsing this product or encouraging you to replace your IDE with it. It's just what I happen to use.
If you're a beginner I highly recommend Visual Studio + Visual Assist X, they're an awesome combination that will take away a lot of the work when doing all the 'boilerplate' type stuff, and the intellisense etc is great for picking up on typos.
Last edited by Cypher; 08-19-2011 at 08:02 AM.
HadesMem v1.4.0
New Features
- Added new Region APIs.
- Added name based constructor for Export.
Bug Fixes
- Fixed handling of forwarded exports in ManualMap.
- Fixed case-sensitivity of module caching/detection in ManualMap.
- Fixes case where image contained bound imports and ManualMap stopped. Import bindings are now ignored and reprocessed manually.
- Fixed import processing to use the OriginalFirstThunk list for parsing, and the FirstThunk list for binding. Fixes x64 import processing.
- Fixed Export::GetForwarderFunction. Was incorrectly including the delimiter in the string.
Changes
- All dependencies are now statically linked.
- ManualMap now manually maps all dependencies regardless of whether they already exist in the process or not. The only exception to this is NTDLL, which cannot be mapped twice due to conflicts when calling LdrInitializeThunk.
- Make ManualMap test target a more difficult module.
- Update Boost to latest trunk.
- Update BeaEngine to latest trunk.
Nice, some day I ll try to compile it via Winelib.
Just another question: Why did you decide to use the Pimpl-Idiom for your process class?
I am interested because I started using it to get rid of any platform/os specific stuff from the public interface.
That's obviously not your intention (<Windows.h> is still included by the header file), so you're doing it for binary compatibility only?
Hey, it compiles! Ship it!
HadesMem v1.5.0
New Features
- Added new FindPattern APIs.
- Added Export::IsForwardedByOrdinal and Export::GetForwarderOrdinal.
- Added MemoryMgr::Call overload to support calling multiple functions from the same thread.
Bug Fixes
- Fixed build process.
- Fixed bug in MemoryMgr::CanRead, MemoryMgr::CanWrite, and MemoryMgr::CanExecute that was causing failures in Region unit tests. Attempts to read/write/execute memory marked as MEM_RESERVE (and not MEM_COMMIT) will fail, so check it explicitly.
- Support API Set Schema redirection in ManualMap. Fixes various failures under Windows 7.
- Various minor bug fixes to ManualMap.
- ManualMap now attempts to load modules at their preferred base address.
- Fixes some issues with images without relocation data.
- ManualMap now bumps the load count of dependent modules. Fixes rare issue where dependent module is unloaded by target application.
- ManualMap now correctly writes the entire PE headers to memory rather than just selected structures.
- ManualMap now implements correct path resolution (minus manifest/sxs redirection).
- ManualMap now calls TLS callbacks from the same thread as the EP.
- ManualMap now validates the OS version, machine type, etc of modules before attempting to map them.
- Process was incorrectly allowing x64 processes to open x86 processes. This is something I would like to support, but it will require rewrites to some of the base components for it to work in a bug-free manner, and as such will probably not be implemented until v2.0.0 or later.
- Process::SetWoW64 no longer causes a null function pointer call when the IsWoW64Process API cannot be found.
Changes
- ManualMap now uses existing instances of DLLs loaded in the target where possible, rather than giving private copies of every module. Done because of stability issues when mapping certain system DLLs which can't be properly initialized more than once per process.
- Allow HadesMem to be built targetting Windows 2000 SP4. Please note that this platform is still not officially supported, I'm just making it an 'unofficial' option.
- Refactored 'ManualMap'.
HadesMem v1.6.0
Now available from the project page.
Was in a rush last night and had requests for a proper changelog since then. It's obviously available in the docs, but for those of you who are too lazy to download the release to get the docs:
New Features
- Added new Patcher APIs.
Bug Fixes
Changes
- Boost is no longer included as part of HadesMem. Please read the updated build instructions.
- Removed some unused build scripts and tweaked the GCC scripts. (Again, please check the updated build instructions again.)
- Marked the GCC support as 'experimental' as MinGW seems spotty at best.
- Compiler detection is now done using Boost.Build rather than preprocessor checks. This means that the header layout of the project can be improved and some include dependencies can be removed.
- Updated QuickBook binary.
- Updated AsmJit.
- Updated BeaEngine.