Skype (version from Sep 2007)

"Error: Skype is not compatible with debuggers like SoftICE .."
"Skype is not compatible with system debuggers like SoftICE."

Sorry folks, I'm a developer, I always have SoftICE running.
And I hate people who force me to reboot to use their program.
What are they afraid of anyway? That I reverse engineer their bloated crappy Delphi EXE? Bah!
SKYPE.EXE (size: 22,879,528 bytes):

OFFSET 185F21   57 -> 7C
OFFSET 9EF964   E8 2B -> EB 21
OFFSET 193E50   84 21 85 -> 34 0D 4A
OFFSET 8C5360   E8 83 0D 8C FF 84 C0 75 -> 90 90 90 90 90 90 90 EB
OFFSET A02FBC   00 -> 01
OFFSET 197C60   0F 8E FF 70 BC A6 90 -> 0E A2 90 70 BC A6 00
OFFSET 1A8EEC   82 EA 2A 72 AF F2 -> 85 B6 AC 70 AF 62
OFFSET 1BAC36   09 F4 D1 6B CC -> 5E B7 67 3A CF
OFFSET 1DE3B1   78 -> E7
OFFSET 1E1F5A   67 -> F8
OFFSET 1EEA7F   F5 43 E8 2A 71 C4 -> 33 5D 9D BA E1 54
OFFSET 1FD245   2D C7 49 91 A1 43 71 -> 2B 84 E1 B5 31 D3 E1
OFFSET 1FFC44   40 -> DF
OFFSET 205605   5E -> C1
OFFSET 207613   05 -> 9A
OFFSET 20814D   75 54 A2 C4 F1 56 -> 73 81 73 C7 F1 C6
OFFSET 20DCFC   F6 -> 69
OFFSET 210D7A   D2 59 DD 6A 66 71 -> D3 A6 A0 69 66 E1
OFFSET 211ACB   05 -> 9A
OFFSET 2123A7   FD CD 97 6B 71 6E -> FF 2A D9 68 71 FE
OFFSET 2345DD   56 -> C9
OFFSET 24F64F   21 -> 20
OFFSET 252869   E6 EA 7B 96 62 DA -> E4 A2 76 9E 62 4A
OFFSET 255505   C3 93 61 B4 -> C5 15 E1 45
OFFSET 257376   96 -> 09
OFFSET 260B67   05 -> 9A
OFFSET 2F22D0   93 54 DA 7A 98 44 -> 95 3C F3 72 98 D4
OFFSET 2F3FD8   CD 50 69 72 BA 78 -> 0C 47 67 E2 2A E8
OFFSET 31B445   A5 -> 3A
OFFSET 387F51   CD -> 52
OFFSET 3A2EAD   27 -> B8
OFFSET 3DE8F6   D1 64 05 -> D7 60 81
Sheesh. They obviously put more effort into "protecting" their crud than writing the actual app. I might put a detailed analysis of all those patch locations here later...
As you can see, they put checks into a million places. I tried to test all functions, but I might have missed something. So if you see the patched Skype crashing or silently vanishing, let me know (patches last updated 2007 Oct 19).

Pike v7.6 release 24

The dynamic programming language Pike wouldn't run under Windows 98. Now it does.
PIKE.EXE (size: 2,111,887 bytes)
OFFSETS 2F73D, 2F7D5, 2F868:  24 -> 10
OFFSETS 2F758, 2F7EA, 2F87D:  8D xx -> EB 14

System File Protection (SFP) / System File Checker (SFC)

In Windows 2000, SFP generally keeps all kind of stuff from being deleted, including a lot of crud that comes with Windows which I really don't want hanging around. I don't need a file nanny, I can take care of that myself. SFP consists of the files sfc.exe, sfc.dll and sfcfiles.dll. sfc.exe can be safely deleted, but the other two are imported by other Windows components to interface to the SFP, and deleting them causes serious problems. So I just replaced them with minimal-size do-nothing versions. These can be downloaded here:

Do-Nothing SFC files

Partition Magic 7

Partition Magic showed Error 1516: "Partition improperly dismounted" when I tried to undo a partitioning error which made Windows crash. And what is the recommended action to resolve that error? Run CHKDSK. Unfortunately, I can't, because Windows won't boot. Duh. So let's suppress this error...
PMagicBt.exe (size: 1,279,230 bytes)
OFFSET  A0822   74 -> EB

WinRoute Pro 4.1

This application would constantly access its spool subdirectory, although I didn't configure it to do any spooling. Most aggravating, those accesses prevented running ScanDisk. So I turned them off.
Winroute.exe (size: 483,380 bytes)
OFFSET  299CD   E8 CE 81 FE FF -> 90 90 90 90 90

Windows Explorer

In Windows 98 and later, the Help entry in the Start Menu would not open windows.hlp anymore, but that compiled HTML mess windows.chm. But I wanted the old behaviour back, as I had replaced windows.hlp with a large programming related help file I needed often:
EXPLORER.EXE (size: 245,008, Windows 2000 German)
OFFSET  13DC2   75 1A -> 90 90


EXPLORER.EXE (size: 180,224, Windows 98SE German)
OFFSET   BE2D   74 -> EB

Windows Shell

When some application mounts a new (virtual) drive, the Windows Shell has this annoying habit to always open a new window showing the drive contents. Not anymore.
SHDOC401.DLL (size: 504,080 bytes, version: 5.00.2614.3500 - W98SE with some service packs installed)
OFFSET  212A8   00 01 -> 01 00

Shockwave Flash 7,0,19,0

I hate it when applications are incontinent and spill their files all over my system. A pet hate of mine is this "Application Data" directory - it's all nice and well on a multi-user system, but my computer is mine and mine alone. This is especially aggravating when an application also suffers from subpathitis - you all know these directories, five levels deep, as if I'd install a hundred other products from the company.

After the following change, Flash will not save anything into the AppData directory:

NPSWF32.DLL (size: 827,392 bytes)
OFFSET  7A8D3   55 -> C3

SoftICE 3.24 for Windows 95/98

SoftICE uses the CPU's time stamp counter (read with RDTSC) to calculate breakpoint time stamps. Unfortunately it fails to calibrate it on even moderately fast computers today due to grave short-sightedness of the SoftICE programmers. Here's the fix:
WINICE.EXE (size: 1,057,535 bytes)
OFFSET  7C624   72 -> EB

FRITZ!web DSL 3.04 rev 1.05 (1.05.03 in readme)

This is the DSL connection software for the FRITZ!Card DSL SL. It wants to place stuff into AppData and Local AppData. Not anymore:
FritzDsl.exe (size: 847,921)
OFFSET  2C8EA   74 -> EB
OFFSET  2CA2A   74 -> EB
After these changes, it always uses the fallback directories. These must be specified in the registry key
The value of DatenDir replaces AppData, LokalDatenDir replaces Local AppData. The first binary patch is for Appdata, the second one for Local Appdata.

Matrox Millennium / Matrox Mystique driver for Windows 95/98

This driver has a bug in the STRETCHDIBITS implementation so that 4-bit top-down DIBs are being displayed upside down. I noticed this on a friend's system where the Opera browser would display certain GIF images on web pages upside down. Here's the fix, preventing the bug by forcing the driver to use the DIBENGINE fallback:
OFFSET   2070   75 -> EB

Hercules Dynamite 128 (Tseng ET 6000 based) driver for Windows 95/98

Same problem as the Matrox cards, only that the images wouldn't display at all, same kind of fix:
OFFSET   4F8A   75 -> EB

Mitac MiNote 8375 Laptop

Before it went bust, the company 4MBO sold that Laptop through the German supermarket chain PLUS, calling it 4MBO Eurobook 8375. Although this laptop has no floppy disk drive, it erroneously sets the drive bit in the Installed Hardware word at memory location 0040h:0010h (accessible through INT 11h). This causes some operating systems to show a disk drive, causing a variety of problems when trying to access it, up to complete system hangs. When I contacted Mitac, they (quite impertinently) refused to issue a BIOS upgrade. Well, I don't need them. Here's a fix for Windows 98SE:
Standard Windows 98SE boot sector
OFFSET     61   BD 00 7C  -> E9 3A 01
OFFSET    19E   some text -> BD 00 7C 80 26 10 04 FE E9 BB FE