|
Short Description
KaKeeware LaunchIE is yet another approach to make the smallest browser in the world (well, you can call it cheating as all
the aproaches rely on embedded IE control, but... it's just for fun ;).
Full Description
KaKeeware Browser was using the embedded Web Control to show HTML content.
KaKeeware HTMLDialog was using mshtml!ShowHTMLDialog function.
KaKeeware LaunchIE uses undocumented function to launch Web browser with our content.
It is a commonly known fact that iexplore.exe doesn't contain web browser's code - it's just a host to IE web control.
As it seems, IE calls undocumented function shdocvw.dll!IEWinMain (this function is only exported via ordinal [#101])
to do the "dirty" job...
The function takes 2 arguments - first one is an offset to a command line buffer,
second one determines how the IE window should be opened. The command line argument is tricky - it is actually not used,
or, if it is, then it doesn't have any visible impact on the browser. To get the command line argument, the IEWinMain function
calls GetCommandLineW function on its own. So, in order to launch our content within IE,
we need to hack GetCommandLineW function a bit. The hack is simple - we just replace the pointer to the command line
buffer, by overwriting it directly in kernel32 memory. The offset to the command line is obtained by reading the
pointer at offset GetCommandLineW+1. Look at the code of GetCommandLineW in OllyDbg to see how it looks like,
and the whole "algorithm" will become clear to you :-)

The size of the executable is 1796 bytes, a bit more than KaKeeware HTMLDialog, but again, it could be smaller
(f.ex. you could optimize Unicode handling part /I left it this way to keep it clean and readable/), URL could point to Web, etc.).
The final file is packed with Upack
The content displayed by a demo program is the same as in KaKeeware HTMLDialog - a modified version of an excellent Metaballs HTML demo by poi (works under IE only).
Requirements
Windows 2000/XP or newer
License
Freeware (+sources freely available)
Download
LaunchIE.zip
|