зеркало из https://github.com/mozilla/gecko-dev.git
f6a7430688
This patch adds a function to get an exported function in a remote process. We need this implementation to address Bug 1604008, Bug 1608645, and Bug 1610790. When `WindowsDllInterceptor` detours a function in a remote process, we used the native `GetProcAddress` locally, and then detours the returned address in the target process. The problem is if the caller's export table was modified, the address returned from `GetProcAddress` might be invalid in the target process, which is Bug 1604008. I implemented `GetProcAddress` depending on both local and remote process image, but it caused two regressions Bug 1608645 and Bug 1610790 because multiple applications modify firefox's export table in multiple ways, such as replacing an entry of EAT, replacing an RVA to Export section, or etc. With this patch, we can use `PEExportSection<MMPolicy>::GetProcAddress` to get an exported function in a remote process without relying on any local data so that it's not impacted by modification of the local export table. Differential Revision: https://phabricator.services.mozilla.com//D62315 Depends on D62314 |
||
---|---|---|
.. | ||
android | ||
baseprofiler | ||
build | ||
dllservices | ||
linker | ||
misc | ||
static | ||
tests | ||
moz.build |