mirror of
https://github.com/Microsoft/Detours
synced 2026-06-08 11:44:51 +00:00
ce9abcfff0
Fixed invocations of `SymGetModuleInfo64` and `SymEnumSymbols`
Tested on x64 only.
Output snippets from `symtest.exe` before fix:
SymGetModuleInfo64(FFFFFFFFFFFFFFFF, 000000006EBC0000) [64] failed: 87
and
===Enum===
SymEnumSymbols() failed: 318
Output snippets from `symtest.exe` after fix:
SymGetModuleInfo64(FFFFFFFFFFFFFFFF, 000000006EBC0000) [64] succeeded: 0
NumSyms: 0
SymType: 3
ModuleName: target64
ImageName: target64.dll
LoadedImageName: target64.dll
and
===Enum===
000000006EBD4A60: __newclmap
000000006EBD4A60: __newclmap
000000006EBD2238: __guard_xfg_dispatch_icall_fptr
000000006EBDDA40: _fltused
000000006EBD8AC0: __mask_mant
000000006EBDD000: SelfHidden
000000006EBC1000: Target
000000006EBC1060: Hidden
##############################################################################
##
## Samples README File
##
## Microsoft Research Detours Package
##
## Copyright (c) Microsoft Corporation. All rights reserved.
##
This README file describes how to set up your build environment, build
samples, and run tests.
BUILD ENVIRONMENT:
==================
We assume that you have a version of the Visual Studio IDE installed. You can
download a free copy of the Visual Studio IDE from
https://visualstudio.microsoft.com. During Visual Studio installation, make
sure that C/C++ tools are installed and that the Windows SDK is installed.
Clone the Detours git repo to a directory on your machine. Choose a directory
that does not have spaces in the full path name.
BUILDING:
=========
Open a Developer Command Prompt for VS. Note there are several different
flavors of the command prompt for different target architectures. The
default Visual Studio Command prompt targets x86. To target x64, choose
the "X64 Native Tools Command Prompt for VS"
Change directory to the samples directory for your git repo. To build the
samples, type "nmake".
Note that you must build setdll and syslog in order to use many of the
other sample programs.
INSTALLING AND BUILDING VIA VCPKG:
==================================
You can download and install detours using the vcpkg(https://github.com/Microsoft/vcpkg) dependency manager:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install detours
The detours port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request(https://github.com/Microsoft/vcpkg) on the vcpkg repository.
TESTING:
========
Each of the sample directories has a test, which can be invoked by typing
"nmake test", to demonstrate the usage of the sample. With very few
exceptions, all of the executables also accept a "/?" command to display a
usage message.
To run all sample tests, change directory to the samples directory and type
"nmake test". Note that some samples are architecture-specific. Tests for
those samples be run only on supported architectures and will be skipped on
other architectures.
COMMENTS:
=========
The trace* samples log their output through the syelogd.exe daemon and hook
CreateProcessW to load themselves into any child processes. For example,
typing "withdll -d:traceapi.dll cmd.exe" will create a command shell under
which all processes log their API calls through traceapi.dll.