Sunday, February 19, 2012

SoNew Begins

So I've finally got around to actually starting a project for my injector. I've aptly named it SoNew (挿入 means insertion in Japanese). I've broken my solution into three projects. A command line tool, GUI tool and a sample DLL for injection. I plan on supporting injecting a DLL and having it automatically executed through Dllmain, as well as giving an option for executing via an exported function name. I should have at least a basic working example done by next week (or earlier depending on my work...) in which I'll start pushing to github. I don't promise the code to be pretty but it should look like:

Process proc = Process(<pid>); // Or Process(<processname.exe>);
proc.Method(methods.CRTAndLoadLib); // Or methods.CRTAndWriteMem, methods.IATHooks
proc.injectDll(<path to dll>); // either executes here or..
proc.executeFunc(<funcname>); // executes the dll's function @ funcname.

I'll throw in a .NET forms GUI to wrap all the command line nastiness after I get some injection methods built in. That's it for now!

Wednesday, February 1, 2012

Goals for February

Just wanted to give a quick update, that yes I am still working on this. I realized my C++ is total crap so I've gone back and started reading my ANSI C++ Book. I've been reading and doing the examples of about a chapter every two days, or roughly 30 pages a day. Out of all the programming books I've ever bought, I don't think I've actually read them front to back like I have this one. It's weird when you're actually motivated to do something on your own like this. I've always enjoyed coding (mainly python) but I never thought I'd actually read a whole book on it. I also took the time to find a DirectX9 book by Frank D. Luna which I'll study at the same time. Anyways, I'm getting off track here.

My goals for February are this (warning they're pretty boring):
1. Finish reading my C++ book
2. Start reading the DirectX9 book and get through at least the first 10 chapters.
3. Craft an initial version of my hooking library. It will be as generic as possible to allow for extending it easily.
4. Implement at least four methods of hooking/injection.
5. Try to come up with decent reasons to make sure this blog doesn't go stale, but not post useless posts like this one. (I friggen hate when blogs go stale).

Anyways, stay tuned I'm about halfway done with the C++ book and it's starting to come back to me, so I should have *some* code available soon.