0040137E /$ 55 push ebp 0040137F |. 8BEC mov ebp, esp 00401381 |. 81EC 0C010000 sub esp, 10C 00401387 |. 8D85 F4FEFFFF lea eax, dword ptr [ebp-10C] 0040138D |. 50 push eax ; /pHandle 0040138E |. 8B0D 40604000 mov ecx, dword ptr [406040] ; |setup.004060A0 00401394 |. 51 push ecx ; |Subkey => "Software\Blizzard Entertainment\Starcraft" 00401395 |. 68 02000080 push 80000002 ; |hKey = HKEY_LOCAL_MACHINE 0040139A |. FF15 04504000 call dword ptr [<&ADVAPI32.RegCreateK>; \RegCreateKeyA 004013A0 |. 85C0 test eax, eax 004013A2 |. 74 07 je short 004013AB ; 如果创建键值失败,返回 004013A4 |. 33C0 xor eax, eax 004013A6 |. E9 60050000 jmp 0040190B 004013AB |> 8B55 0C mov edx, dword ptr [ebp+C] 004013AE |. 52 push edx 004013AF |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] 004013B5 |. 50 push eax 004013B6 |. E8 55050000 call 00401910 004013BB |. 83C4 08 add esp, 8 004013BE |. 8D8D F8FEFFFF lea ecx, dword ptr [ebp-108] 004013C4 |. 51 push ecx ; /Path 004013C5 |. FF15 B0504000 call dword ptr [<&SHLWAPI.PathRemoveB>; \PathRemoveBackslashA 004013CB |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] 004013D1 |. 52 push edx 004013D2 |. E8 29060000 call 00401A00 ; 取路径长度 004013D7 |. 83C4 04 add esp, 4 004013DA |. 83C0 01 add eax, 1 ; 设置InstallPath = E:\starcraft 004013DD |. 50 push eax ; /BufSize 004013DE |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] ; | 004013E4 |. 50 push eax ; |Buffer 004013E5 |. 6A 01 push 1 ; |ValueType = REG_SZ 004013E7 |. 6A 00 push 0 ; |Reserved = 0 004013E9 |. 68 E0614000 push 004061E0 ; |ValueName = "InstallPath" 004013EE |. 8B8D F4FEFFFF mov ecx, dword ptr [ebp-10C] ; | 004013F4 |. 51 push ecx ; |hKey 004013F5 |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 004013FB |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] 00401401 |. 52 push edx 00401402 |. E8 F9050000 call 00401A00 00401407 |. 83C4 04 add esp, 4 0040140A |. 83C0 01 add eax, 1 ; 设置StarEdit= E:\starcraft 0040140D |. 50 push eax ; /BufSize 0040140E |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] ; | 00401414 |. 50 push eax ; |Buffer 00401415 |. 6A 01 push 1 ; |ValueType = REG_SZ 00401417 |. 6A 00 push 0 ; |Reserved = 0 00401419 |. 68 EC614000 push 004061EC ; |ValueName = "StarEdit" 0040141E |. 8B8D F4FEFFFF mov ecx, dword ptr [ebp-10C] ; | 00401424 |. 51 push ecx ; |hKey 00401425 |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 0040142B |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] 00401431 |. 52 push edx 00401432 |. E8 4F2D0000 call 00404186 ; 路径所有字符转大写 00401437 |. 83C4 04 add esp, 4 0040143A |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] 00401440 |. 50 push eax 00401441 |. E8 BA050000 call 00401A00 00401446 |. 83C4 04 add esp, 4 00401449 |. 83C0 01 add eax, 1 ; 设置StarCD = E:\STARCRAFT 0040144C |. 50 push eax ; /BufSize 0040144D |. 8D8D F8FEFFFF lea ecx, dword ptr [ebp-108] ; | 00401453 |. 51 push ecx ; |Buffer 00401454 |. 6A 01 push 1 ; |ValueType = REG_SZ 00401456 |. 6A 00 push 0 ; |Reserved = 0 00401458 |. 68 F8614000 push 004061F8 ; |ValueName = "StarCD" 0040145D |. 8B95 F4FEFFFF mov edx, dword ptr [ebp-10C] ; | 00401463 |. 52 push edx ; |hKey 00401464 |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 0040146A |. 68 00624000 push 00406200 ; ASCII "\Starcraft.exe" 0040146F |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] 00401475 |. 50 push eax 00401476 |. E8 A5040000 call 00401920 ; 字符连接E:\STARCRAFT\Starcraft.exe 0040147B |. 83C4 08 add esp, 8 0040147E |. 8D8D F8FEFFFF lea ecx, dword ptr [ebp-108] 00401484 |. 51 push ecx 00401485 |. E8 76050000 call 00401A00 0040148A |. 83C4 04 add esp, 4 0040148D |. 83C0 01 add eax, 1 ; 设置Program = E:\STARCRAFT\Starcraft.exe 00401490 |. 50 push eax ; /BufSize 00401491 |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] ; | 00401497 |. 52 push edx ; |Buffer 00401498 |. 6A 01 push 1 ; |ValueType = REG_SZ 0040149A |. 6A 00 push 0 ; |Reserved = 0 0040149C |. 68 10624000 push 00406210 ; |ValueName = "Program" 004014A1 |. 8B85 F4FEFFFF mov eax, dword ptr [ebp-10C] ; | 004014A7 |. 50 push eax ; |hKey 004014A8 |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 004014AE |. 68 18624000 push 00406218 004014B3 |. 8D8D F8FEFFFF lea ecx, dword ptr [ebp-108] 004014B9 |. 51 push ecx 004014BA |. E8 51040000 call 00401910 004014BF |. 83C4 08 add esp, 8 004014C2 |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] 004014C8 |. 52 push edx 004014C9 |. E8 32050000 call 00401A00 004014CE |. 83C4 04 add esp, 4 004014D1 |. 83C0 01 add eax, 1 ; 设置Retail = y 004014D4 |. 50 push eax ; /BufSize 004014D5 |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] ; | 004014DB |. 50 push eax ; |Buffer 004014DC |. 6A 01 push 1 ; |ValueType = REG_SZ 004014DE |. 6A 00 push 0 ; |Reserved = 0 004014E0 |. 68 1C624000 push 0040621C ; |ValueName = "Retail" 004014E5 |. 8B8D F4FEFFFF mov ecx, dword ptr [ebp-10C] ; | 004014EB |. 51 push ecx ; |hKey 004014EC |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 004014F2 |. 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] 004014F8 |. 52 push edx 004014F9 |. E8 02050000 call 00401A00 004014FE |. 83C4 04 add esp, 4 00401501 |. 83C0 01 add eax, 1 ; 设置Brood War = y 00401504 |. 50 push eax ; /BufSize 00401505 |. 8D85 F8FEFFFF lea eax, dword ptr [ebp-108] ; | 0040150B |. 50 push eax ; |Buffer 0040150C |. 6A 01 push 1 ; |ValueType = REG_SZ 0040150E |. 6A 00 push 0 ; |Reserved = 0 00401510 |. 68 24624000 push 00406224 ; |ValueName = "Brood War" 00401515 |. 8B8D F4FEFFFF mov ecx, dword ptr [ebp-10C] ; | 0040151B |. 51 push ecx ; |hKey 0040151C |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 00401522 |. C745 FC 00000>mov dword ptr [ebp-4], 0 ; 设置Recent Maps = 00 00 00401529 |. 6A 02 push 2 ; /BufSize = 2 0040152B |. 8D55 FC lea edx, dword ptr [ebp-4] ; | 0040152E |. 52 push edx ; |Buffer 0040152F |. 6A 03 push 3 ; |ValueType = REG_BINARY 00401531 |. 6A 00 push 0 ; |Reserved = 0 00401533 |. 68 30624000 push 00406230 ; |ValueName = "Recent Maps" 00401538 |. 8B85 F4FEFFFF mov eax, dword ptr [ebp-10C] ; | 0040153E |. 50 push eax ; |hKey 0040153F |. FF15 00504000 call dword ptr [<&ADVAPI32.RegSetValu>; \RegSetValueExA 00401545 |. 8B8D F4FEFFFF mov ecx, dword ptr [ebp-10C] ; 关闭注册表 0040154B |. 51 push ecx ; /hKey = 00000098 (window) 0040154C |. FF15 08504000 call dword ptr [<&ADVAPI32.RegCloseKe>; \RegCloseKey ... ... 以下类似,都是一些注册表操作
|