Showing newest posts with label injection. Show older posts
Showing newest posts with label injection. Show older posts

Wednesday, December 9, 2009

New Loader Build

New build of my loader released. Fixes a few bugs, including one very annoying one in the GUI. Download link available on the original post.

Tuesday, November 17, 2009

Loader Update (Including New GUI)

Whipped together a new GUI for my dll injector and fixed some miscellaneous bugs. It still has some minor issues, but it should be easier to use than the command line loader.

Update:

I've pushed another quick update to fix a bug with the error checking code in the GUI. Nothing major, but still worth the fix.

Saturday, October 31, 2009

Hades Now Fully Dynamic

Hooray, I have now gotten all of Hades working in a fully dynamic manner. Previously in order to run a game under Hades you would have to inject Hades at the time of process creation. Recently though I have been rewriting large portions of Hades, and one of those portions has been the hooking lib I'm using.

Whilst my original hooking library used IAT and EAT hooks I found that far too restrictive for my needs, so I wrote an inline hooking library (similar to Microsoft Detours, except mine has full x64 support -- technically Microsoft Detours does too, but you have to pay $10000 to get your hands on it).

Not only does this mean I can now inject Hades at any time, it also means I can eject Hades at any time. This is AWESOME when it comes to testing because it means I can rapidly test new features and code without having to restart the game (which was a huge pain previously).

It also means I have full support for the Steam overlay (which was previously flaky because it doesn't like it when it's not the first module to hook), and I can implement some of my planned features much easier.

One of the next planned features I want to tackle (after some more rewriting of the core framework) is DirectX 10 support, which I've been putting off for a long time because previously I would have been forced to do a full device replacement like I did with the DirectX 9 layer.

The new hooking library though has allowed me to turn about 4 pages of code for the DX9 layer into about half a page, and the same can be applied to the DX10 layer.

Whilst it's not ready for public consumption yet, I'm considering releasing my hooking library if there's enough interest for it.

It may be a while though because before I get the hooking library ready for public use there's a lot more other stuff I want to work on in Hades like the Lua API, the .NET API, the generic anti-anti-cheat system, and better DirectInput support (which is currently quite basic due primarily to a lack of games I own which utilize it heavily).

Anyway, someone requested information on Hades from me on MSN and told me to post it here so there you go. Should be interesting to someone.

Tuesday, October 27, 2009

Advanced Generic DLL Injector

Project:
Loader


Description:
A generic, advanced, and portable DLL injector.


Features:
  • Native IA32 injection. (Inject 32-bit DLLs into 32-bit processes.)
  • Native AMD64 injection. (Inject 64-bit DLLs into 64-bit processes.) 
  • Injection via process id. (On the fly injection.)
  • Injection via window title. (On the fly injection.)
  • Injection via process creation. (On the fly injection.)
  • Injection via process name. (On startup injection.)
  • Ejection via process id. (On the fly ejection.)
  • Ejection via process title. (On the fly ejection.)
  • Ejection via process creation. (On the fly ejection.)
  • Ejection via process name. (On startup ejection.)
  • Remote export calling. (Call an export remotely in the module. Allows for safe injected DLL programming.)
  • Batch scriptable command line interface.
  • Suspends the process while injecting or ejecting to help prevent potential race conditions present primarily in DLLs that perform hooking.


Compatibility:
Should work on all Windows versions after and including Windows XP SP2. Support for Windows versions earlier than SP2 is unofficial. If you get it to work that's great, however I have no interest in officially maintaining anything earlier than XP SP2.


Personally, I run Windows 7, the only reason I support anything earlier than that is for when I make public releases. I'd love to be able to drop XP and Vista support entirely, however there are still too many people still using them.


Tested and working natively on both IA32 and AMD64 .


Notes:
Binaries only for this release. Source may/will come later, once I am ready to open-source some new dependencies or fork the loader project internally to avoid them altogether.


Suggestions and criticisms are as always appreciated.


This may not appear anywhere else without permission, but may be linked to.


Releases:
v20091027a - Initial release. No known issues.
v20091112a - Minor miscellaneous fixes.
v20091117a - GUI added. Minor miscellaneous fixes.
v20091118a - Minor GUI bug fixed.
v20091119a - Fixed bug with Launch not functioning correctly. Thank you alex.
v20091209a - Fixed a few misc bugs, along with one very annoying one causing the GUI to be unable to launch the Loader in some scenarios (thank you Apoc).