非SSE2 の GDI+ API v1.1 に準拠のDLLを Win95 対応にしてみたよ!
Word Viewer のセキュリティ更新プログラムについて: 2018 年 7 月 11 日
先日の Word Viewer 2003 に添付されている GDI+ のランタイムの更新を改造してみました
SSZ39826B50_InterlockedCompareExchange: db 'InterlockedCompareExchange',0 L39826B98: push ebp mov ebp,esp cli mov ecx,[ebp+08h] mov eax,[ecx] cmp eax,[ebp+10h] jnz L39826BAB mov edx,[ebp+0Ch] mov [ecx],edx L39826BAB: sti pop ebp retn 000Ch ;---------------------------------------------- EntryPoint: push eax lea eax,[esp] push eax push 00000040h push 00000004h push KERNEL32.dll!AddAtomA call [KERNEL32.dll!VirtualProtect] push SWC39820E30_kernel32_dll call [KERNEL32.dll!GetModuleHandleW] push SSZ39826B50_InterlockedCompareExchange push eax call [KERNEL32.dll!GetProcAddress] test eax,eax jnz L39826BE4 mov eax,L39826B98 L39826BE4: mov [KERNEL32.dll!AddAtomA],eax lea eax,[esp] push eax push [eax] push 00000004h push KERNEL32.dll!AddAtomA call [KERNEL32.dll!VirtualProtect] pop eax jmp L39965B14 |
SSE2命令を使っていないので、Windows 95でも大丈夫!
InterlockedCompareExchange が存在する場合はOS独自処理に飛ぶようにしたため今までにリリースしていたWindows 95専用 GDIPLUS とは違って、全OS対応版のバイナリになりました・ω・
もふったー最新版で動作検証済みです
Windows 9x版のみ先行で作成したので、WLU からダウンロード可能です
Win NT系版のインストーラーは少しお待ちください( ˘ω˘)
Comments