システム環境変数を更新するときに、Windows 2008のC:\ Windows \ System32 \ SystemPropertiesAdvanced.exeがexplorer.exeとやりとりする方法を調べています。このように環境変数を更新すると、explorer.exeは環境ブロックを動的に更新して変更を取得します。私は、リモート変数を注入するために、複数の方法を認識していますが、SystemPropertiesAdvanced.exeの実装については興味がありました。SystemPropertiesAdvanced.exe(具体的にはSYSDM)の実装の詳細
環境変数を更新した後、[システムプロパティー]ダイアログボックスの[OK]ボタンを押すと、新しいスレッドが作成されます。私が関心の次の行に来てこのスレッドをデバッグ:!
WINSTA!WinStationBSMWorkerThread:
75b292bc 8bff mov edi,edi
75b292be 55 push ebp
75b292bf 8bec mov ebp,esp
75b292c1 51 push ecx
75b292c2 8365fc00 and dword ptr [ebp-4],0
75b292c6 53 push ebx
75b292c7 56 push esi
75b292c8 8b7508 mov esi,dword ptr [ebp+8]
75b292cb 837e4000 cmp dword ptr [esi+40h],0
75b292cf 57 push edi
75b292d0 0f95c0 setne al
75b292d3 50 push eax
75b292d4 ff763c push dword ptr [esi+3Ch]
75b292d7 8d4624 lea eax,[esi+24h]
75b292da ff7638 push dword ptr [esi+38h]
75b292dd ff7628 push dword ptr [esi+28h]
75b292e0 50 push eax
75b292e1 ff7620 push dword ptr [esi+20h] ds:0023:00404468={SYSDM!szUserEnv (6b3ec434)}
75b292e4 8d4614 lea eax,[esi+14h]
75b292e7 ff761c push dword ptr [esi+1Ch]
75b292ea ff7618 push dword ptr [esi+18h]
75b292ed 50 push eax
75b292ee ff7610 push dword ptr [esi+10h]
75b292f1 ff760c push dword ptr [esi+0Ch]
75b292f4 ff7608 push dword ptr [esi+8]
75b292f7 ff7604 push dword ptr [esi+4]
75b292fa ff36 push dword ptr [esi]
75b292fc e821fdffff call WINSTA!WinStationBroadcastSystemMessageWorker (75b29022)
75b29301 8d7e44 lea edi,[esi+44h]
75b29304 57 push edi
75b29305 894508 mov dword ptr [ebp+8],eax
75b29308 ff15d810b275 call dword ptr [WINSTA!_imp__EnterCriticalSection (75b210d8)]
75b2930e 33db xor ebx,ebx
75b29310 43 inc ebx
75b29311 837e3000 cmp dword ptr [esi+30h],0
75b29315 0f85663d0000 jne WINSTA!WinStationBSMWorkerThread+0x5b (75b2d081)
75b2931b 57 push edi
75b2931c 895e2c mov dword ptr [esi+2Ch],ebx
75b2931f ff15d410b275 call dword ptr [WINSTA!_imp__LeaveCriticalSection (75b210d4)]
75b29325 837dfc00 cmp dword ptr [ebp-4],0
75b29329 0f85683d0000 jne WINSTA!WinStationBSMWorkerThread+0x7c (75b2d097)
75b2932f 8b4508 mov eax,dword ptr [ebp+8]
75b29332 5f pop edi
75b29333 5e pop esi
75b29334 5b pop ebx
75b29335 c9 leave
75b29336 c20400 ret 4
私はWINSTAへの呼び出しWinStationBroadcastSystemMessageWorkerは、いくつかの方法をexplorer.exeのは、それがこれらの新しい環境変数を拾う必要があることを知らせていると信じています。 75b292e1のリファレンスがデバッガによってSYSDM!szUserEnvとして識別されているのは面白いことです。
おそらくあなたの標準的な質問ではありませんが、おそらくそこに他のリバースエンジニアがいます。 :) [100repで、私は適切に「タグ」を設定します]
乾杯