Index: chrome_elf/BUILD.gn |
diff --git a/chrome_elf/BUILD.gn b/chrome_elf/BUILD.gn |
index 3de5fb3e83b1697adbb900f5bf83f7cecbad59a4..5cc27bdf330d2cf70d2459ad86c098a2e294b632 100644 |
--- a/chrome_elf/BUILD.gn |
+++ b/chrome_elf/BUILD.gn |
@@ -33,6 +33,9 @@ |
# in the world. |
shared_library("chrome_elf") { |
sources = [ |
+ "//chrome/app/chrome_crash_reporter_client_win.cc", |
+ "//chrome/app/chrome_crash_reporter_client_win.h", |
+ "//chrome/common/chrome_result_codes.h", |
"chrome_elf.def", |
"chrome_elf_main.cc", |
"chrome_elf_main.h", |
@@ -41,24 +44,31 @@ |
":blacklist", |
":chrome_elf_manifest", |
":chrome_elf_resources", |
- ":constants", |
- ":crash", |
+ ":chrome_elf_security", |
+ ":constants", |
":hook_util", |
- ":security", |
- "//build/config/sanitizers:deps", |
- "//chrome/install_static:install_static_util", |
- "//chrome_elf/nt_registry:nt_registry", |
+ "//base", |
+ "//build/config/sanitizers:deps", |
+ "//chrome/install_static:install_static_util", |
+ "//chrome_elf/nt_registry:nt_registry", |
+ "//components/crash/content/app", |
+ "//components/crash/core/common", |
+ "//content/public/common:result_codes", |
+ "//third_party/crashpad/crashpad/client:client", |
] |
configs += [ "//build/config/win:windowed" ] |
configs -= [ "//build/config/win:console" ] |
- |
- # Delay loads in this list will prevent user32.dll |
- # from loading too early. |
ldflags = [ |
- "/DELAYLOAD:advapi32.dll", |
+ "/NODEFAULTLIB:user32.lib", |
"/DELAYLOAD:dbghelp.dll", |
+ "/DELAYLOAD:ole32.dll", |
+ "/DELAYLOAD:psapi.dll", |
"/DELAYLOAD:rpcrt4.dll", |
+ "/DELAYLOAD:shell32.dll", |
+ "/DELAYLOAD:user32.dll", |
+ "/DELAYLOAD:winhttp.dll", |
"/DELAYLOAD:winmm.dll", |
+ "/DELAYLOAD:ws2_32.dll", |
] |
if (current_cpu == "x86") { |
# Don"t set an x64 base address (to avoid breaking HE-ASLR). |
@@ -70,7 +80,7 @@ |
## source sets |
##------------------------------------------------------------------------------ |
-source_set("security") { |
+source_set("chrome_elf_security") { |
sources = [ |
"chrome_elf_security.cc", |
"chrome_elf_security.h", |
@@ -119,48 +129,30 @@ |
"blacklist/blacklist.h", |
"blacklist/blacklist_interceptions.cc", |
"blacklist/blacklist_interceptions.h", |
+ "blacklist/crashpad_helper.cc", |
+ "blacklist/crashpad_helper.h", |
] |
public_deps = [ |
"//sandbox", |
] |
deps = [ |
":constants", |
- ":crash", |
":hook_util", |
- "//base:base_static", # pe_image |
- "//chrome/install_static:install_static_util", |
- "//chrome_elf/nt_registry:nt_registry", |
- ] |
-} |
- |
-static_library("crash") { |
- sources = [ |
- "../chrome/app/chrome_crash_reporter_client_win.cc", |
- "../chrome/app/chrome_crash_reporter_client_win.h", |
- "../chrome/common/chrome_result_codes.h", |
- "crash/crash_helper.cc", |
- "crash/crash_helper.h", |
- ] |
- deps = [ |
- ":hook_util", |
- "//base:base", # This needs to go. DEP of app, crash_keys, client. |
- "//base:base_static", # pe_image |
- "//chrome/install_static:install_static_util", |
- "//components/crash/content/app:app", |
- "//components/crash/core/common", # crash_keys |
- "//content/public/common:result_codes", |
- "//third_party/crashpad/crashpad/client:client", # DumpWithoutCrash |
+ "//chrome/install_static:install_static_util", |
+ "//chrome_elf/nt_registry:nt_registry", |
+ |
+ # Still uses base/win/pe_image.h |
+ "//base", |
+ "//third_party/crashpad/crashpad/client:client", |
] |
} |
static_library("hook_util") { |
sources = [ |
- "../base/macros.h", |
- "hook_util/hook_util.cc", |
- "hook_util/hook_util.h", |
- ] |
- deps = [ |
- "//base:base_static", # pe_image |
+ "hook_util/thunk_getter.cc", |
+ "hook_util/thunk_getter.h", |
+ ] |
+ deps = [ |
"//sandbox", |
] |
} |
@@ -175,18 +167,15 @@ |
"blacklist/test/blacklist_test.cc", |
"chrome_elf_util_unittest.cc", |
"elf_imports_unittest.cc", |
- "hook_util/test/hook_util_test.cc", |
"run_all_unittests.cc", |
] |
include_dirs = [ "$target_gen_dir" ] |
deps = [ |
":blacklist", |
":blacklist_test_main_dll", |
- ":constants", |
- ":crash", |
+ ":chrome_elf_security", |
+ ":constants", |
":hook_util", |
- ":hook_util_test_dll", |
- ":security", |
"//base", |
"//base/test:test_support", |
"//chrome", |
@@ -210,29 +199,43 @@ |
":blacklist_test_dll_3", |
":chrome_elf", |
] |
- |
- # Don't want the test-specific dependencies to affect ChromeElfLoadSanityTest. |
- # In particular, a few system DLLs cause user32 to be loaded, which is bad. |
ldflags = [ |
- "/DELAYLOAD:advapi32.dll", |
+ "/DELAYLOAD:dbghelp.dll", |
"/DELAYLOAD:ole32.dll", |
+ "/DELAYLOAD:psapi.dll", |
+ "/DELAYLOAD:rpcrt4.dll", |
+ "/DELAYLOAD:shell32.dll", |
+ "/DELAYLOAD:shlwapi.dll", |
+ "/DELAYLOAD:user32.dll", |
+ "/DELAYLOAD:winhttp.dll", |
+ "/DELAYLOAD:winmm.dll", |
+ "/DELAYLOAD:ws2_32.dll", |
+ ] |
+} |
+ |
+shared_library("blacklist_test_main_dll") { |
+ sources = [ |
+ "blacklist/test/blacklist_test_main_dll.cc", |
+ "blacklist/test/blacklist_test_main_dll.def", |
+ ] |
+ deps = [ |
+ ":blacklist", |
+ "//base", |
+ "//build/config/sanitizers:deps", |
+ "//chrome/install_static:install_static_util", |
+ "//chrome_elf/nt_registry:nt_registry", |
+ ] |
+ ldflags = [ |
+ "/NODEFAULTLIB:user32.lib", |
+ "/DELAYLOAD:dbghelp.dll", |
+ "/DELAYLOAD:ole32.dll", |
+ "/DELAYLOAD:psapi.dll", |
+ "/DELAYLOAD:rpcrt4.dll", |
"/DELAYLOAD:shell32.dll", |
"/DELAYLOAD:user32.dll", |
+ "/DELAYLOAD:winhttp.dll", |
"/DELAYLOAD:winmm.dll", |
- ] |
-} |
- |
-shared_library("blacklist_test_main_dll") { |
- sources = [ |
- "blacklist/test/blacklist_test_main_dll.cc", |
- "blacklist/test/blacklist_test_main_dll.def", |
- ] |
- deps = [ |
- ":blacklist", |
- "//base", |
- "//build/config/sanitizers:deps", |
- "//chrome/install_static:install_static_util", |
- "//chrome_elf/nt_registry:nt_registry", |
+ "/DELAYLOAD:ws2_32.dll", |
] |
} |
@@ -269,13 +272,3 @@ |
"//build/config/sanitizers:deps", |
] |
} |
- |
-shared_library("hook_util_test_dll") { |
- sources = [ |
- "hook_util/test/hook_util_test_dll.cc", |
- "hook_util/test/hook_util_test_dll.h", |
- ] |
- deps = [ |
- "//build/config/sanitizers:deps", |
- ] |
-} |