GTA2 Classics Stuck at 640×480 (and fix!)

May 22, 2008 on 8:35 pm | In Development, Research | 4 Comments

Lately with friends we’ve been having some multiplayer fun at GTA 2 Classics Edition (the free one that you can download at Rockstar Classics). I’m amazed to see how cool this game still is in multiplayer. BUT, there was a but. As of now it was impossible to make it run at more than 640×480, despite setting higher resolutions on the GTA 2 Manager. While it’s not a big issue, it’s still annoying nonetheless.
So I’ve looked and looked and looked and looked on the net to find some kind of answer. While I did find some people who had the same problem as me (and all my friends for that matter), I did not find any answer.
Because I’m not desperate, I’ve took my tools and started decompiling GTA 2 (;))
Long story short, here is a patch to activate high resolution on GTA 2 Classics Edition (aka 9.6F) only:

gta2patch.exe (7 kb)

Please bear in mind that this patch is VERY ghetto. It doesn’t even check if you are patching the right version, so USE AT YOU OWN RISK!
For the details, the source code and the alternate methods (if you don’t feel like downloading and launching an executable from an unknown source), hit the jump.
Continue reading GTA2 Classics Stuck at 640×480 (and fix!)…

Hacking into Vista’s Desktop Window Manager (DWM)

December 8, 2007 on 1:23 pm | In Development, Research | 2 Comments

Window texture is soooo last week, when you can manipulate the windows themselves ;)
dwm_hack3.jpg firefox_zoomed.jpg dwm_hack2.jpg

Jump for the (quite long I admit) story ;)
Continue reading Hacking into Vista’s Desktop Window Manager (DWM)…

DWM Hacking, Extracting the Window Texture

November 25, 2007 on 2:36 pm | In Development, Research | 4 Comments

Lately I’ve been working with Ave on this, and here are the first results:

Download MP4 videos directly from DailyMotion

November 1, 2007 on 12:06 am | In Development, Projects, Research | 1 Comment

So I have this shiny iPhone, and I must say, although I was skeptical when it came out, I love it. Thanks to it I can watch YouTube videos on it, and the other competitor (at least here in France), DailyMotion, has an iPhone “webapp” for it. Sweet!

After a while, I wanted to grab some videos and put them on my phone, so I started to search for an application that would allow me to convert flvs to mp4s, and eventually I found some. But the process is kinda slow, and when you think the iPhone plays the videos directly in mp4 from DailyMotion (and YouTube), you would find this utterly inefficient!

But thankfully for you guys, there is a way to download videos directly in mp4 from DailyMotion, and by directly, I don’t mean using some transcoding service. I mean directly.
So how do we do that? Well, I’ve created a simple tool for you to convert DailyMotion urls, to direct download MP4 urls :)
Continue reading Download MP4 videos directly from DailyMotion…

Reverse Engineering the Windows XP Window Manager, Part 4: The real thing

March 26, 2007 on 2:21 pm | In Development, Research | 15 Comments

Sooo, here we are. We finally reached the real PrintWindow() implementation. And before we start to comment, let’s take a look at the code:
Continue reading Reverse Engineering the Windows XP Window Manager, Part 4: The real thing…

Reverse Engineering the Windows XP Window Manager, Part 3

February 1, 2007 on 2:18 pm | In Development, Research | 1 Comment

In the previous part we managed to hunt down the real implementation of the PrintWindow API. Le’ts take a look at it. The functions is divided in 3 chunks:
Continue reading Reverse Engineering the Windows XP Window Manager, Part 3…

Reverse Engineering the Windows XP Window Manager, Part 2: IDA is my ally

October 21, 2006 on 5:13 am | In Development, Research | No Comments

First thing I did was fire up IDA and take a look at the disassembly of the PrintWindow. The function is exported in User32.dll.

And here is what I came accross:

  1. .text:77D5D2A0 ; Exported entry 517. PrintWindow
  2. .text:77D5D2A0
  3. .text:77D5D2A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  4. .text:77D5D2A0
  5. .text:77D5D2A0
  6. .text:77D5D2A0 ; __stdcall NtUserPrintWindow(x, x, x)
  7. .text:77D5D2A0                 public _NtUserPrintWindow@12
  8. .text:77D5D2A0 _NtUserPrintWindow@12 proc near
  9. .text:77D5D2A0                 mov     eax, 11DDh
  10. .text:77D5D2A5                 mov     edx, 7FFE0300h
  11. .text:77D5D2AA                 call    dword ptr [edx]
  12. .text:77D5D2AC                 retn    0Ch
  13. .text:77D5D2AC _NtUserPrintWindow@12 endp

Pretty small heh! At least not enough for me to figure out how the function works! But I didn't stopped here of course :)
Continue reading Reverse Engineering the Windows XP Window Manager, Part 2: IDA is my ally...

Reverse Engineering the Windows XP Window Manager, Part 1

October 20, 2006 on 4:12 pm | In Development, Research | No Comments

Almost 3 years ago, I started a project, expire, which was supposed to be the windows clone of Exposé, the Mac OS 10.3 window tiling feature. It was also my personnal project for my second year in Epitech. We had a few beta out, everything was going good, but the request came: "We want Windows 2000 support !".

To replace you in the context, the program used one hell of a handy API to get its screenshots of the windows: PrintWindow. What this api was doing is actually make a screenshot of a window into a DC. The main advantage over the classic BitBlt method is that it can also shot windows partially or completely out of the screen, or deep in the Z-order. Pretty handy for an Exposé clone heh! The problem is, this API was introduced with Windows XP! No support for Windows 2000 then.

So I started to investigate whether or not it was possible to recode PrintWindow in Windows 2000. And boy, it was possible. In fact, I didn't know at that time how far I was going to get with this!

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^