Chrome 系ブラウザを Vista 互換モードで起動するとクラッシュする理由
Chrome も Firefox と同じで Vista 互換モードで起動するとクラッシュするんで理由調べてみました。
GetProcuctInfo !?
Firefoxと同じ理由かよ!(しかも遅延ロードなのも同じ)
同じライブラリ使ってんですかね(それにしてはコードが違うような…)
後、GetSecurityDescriptorSacl をよんだ後、第3引数のPACL *pSacl をNULLで引き渡してるにもかかわらず、値を取得しようとしてるみたい ・ω・
当然NULLのはずなんだけど、Windows 7だと動作違うのかな?
ちなみに、Chrome 51 から以下の関数が必要になるかもしれない
SleepConditionVariableCS
WakeAllConditionVariable
WakeConditionVariable
InitializeConditionVariable
ゲーム対応版じゃない方の拡張カーネルには既にある関数ですね ・ω・
追記
lea eax,[ebp-04h] mov dword ptr [ebp-04h],00000000h push eax push 00000000h push [ebp+08h] push 00000000h call [L04454F9C] <- InitializeProcThreadAttributeList mov eax,[ebp-04h] |
どうやら、InitializeProcThreadAttributeList なども遅延ロード後、NULLチェックせずによんでるか所があるらしい
さっきのつづきで、Fxのほうを漁ってみたよ
ttp://hg.mozilla.org/releases/mozilla-release/file/tip/security/sandbox/chromium/sandbox/win/src/restricted_token_utils.cc
こっちは、PPACL 渡してるっぽいですが、、
あたりつける足しにドゾー
どっちかというとなんで、sandbox 無効にしたらプロセス起動できるようになるのか知りたいところですね・ω・
ソース見て見たんだけど、よく分からなんだ
https://sourceforge.net/p/wine/wine-gecko/ci/df5fb99c897403f322b7c24ef248eb6d57f0d76f/tree/ipc/glue/GeckoChildProcessHost.cpp
https://dxr.mozilla.org/mozilla-central/source/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp