5/26/2010

05-26-10 - Windows 7 Snap

My beloved "AllSnap" doesn't work on Windows 7 / x64. I can't find a replacement because fucking Windows has a feature called "Snap" now, so you can't fucking google for it. (also searching for "Windows 7" stuff in general is a real pain because solutions and apps for the different variants of windows don't always use the full name of the OS they are for in their page, so it's hard to search for; fucking operating systems really need unique code names that people can use to make it possible to search for them; "Windows" is awful awful in this regard).

I contacted the developer of AllSnap to see if he would give me the code so I could fix it, but he is ignoring me. I can tell from debugging apps when AllSnap is installed that it seems to work by injecting a DLL. This is similar to how I hacked the poker sites for GoldBullion, so I think I could probably reproduce that. But I dunno if Win7/x64 has changed anything about function injection and the whole DLL function pointer remap method.

BTW/FYI the standard Windows function injection method goes like this : Make a DLL that has some event handler. Run a little app that causes that event to trip inside the app you want to hijack. Your DLL is now invoked in that app's process to handle that event. Now you are running in that process so you can do anything you want - in particular you can find the function table to any of their DLL's, such as user32.dll, and stuff your own function pointer into that memory. Now when the app makes normal function calls, they go through your DLL.

5 comments:

Danny Dulai said...

sadly you have to use allsnap64 + allsnap -- the normal one works for 32bit apps, the 64bit one works for 64bit apps. It doesnt always work right tho.. make sure you disable aero's snap.

http://ivanheckman.com/allsnap/

Mojo said...

Resizing windows witht the mouse is extremely retro. Unless you've got zillions of small windows, just use winsplit revolution.

won3d said...

Another way to go is remote thread injection. This is how we patched things at my prior virtual-machine startup:

http://www.codeproject.com/KB/threads/completeinject.aspx

So is it me, or is it a little crazy that this is an acceptable, if not standard, approach to extending Windows?

cbloom said...

"So is it me, or is it a little crazy that this is an acceptable, if not standard, approach to extending Windows?"

Yeah, it's completely insane. MS :

"Yes our OS is complete un-pluggable/extendable ; fortunately it's also completely insecure so you can just hack in any extensions you want!"

yay!

cbloom said...

"Resizing windows witht the mouse is extremely retro. Unless you've got zillions of small windows, just use winsplit revolution."

I don't really get the love for tiling windows. Yeah yeah I have window tiling on hot keys, but by using it nearly exclusively, you are giving up massive degrees of freedom.

I have a windowing system that has something like (1000^N) possible configurations, and you are using only N! configurations.

old rants