1.5.0
This commit is contained in:
parent
0a71e674a4
commit
e00cacb0b9
|
@ -35,67 +35,117 @@ jobs:
|
|||
# - name: Build Sandboxie
|
||||
# run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=${{ matrix.platform }}
|
||||
|
||||
- name: Build Sandboxie 32 bit
|
||||
- name: Build Sandboxie x86
|
||||
run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8
|
||||
|
||||
- name: Build Sandboxie 64 bit
|
||||
- name: Build Sandboxie x64
|
||||
run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=x64 -maxcpucount:8
|
||||
|
||||
- name: Build Sandboxie ARM64
|
||||
run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=ARM64 -maxcpucount:8
|
||||
|
||||
- name: Build Sandboxie ARM64EC
|
||||
run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=ARM64EC -maxcpucount:8
|
||||
- name: Cache Qt
|
||||
id: cache-qt
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ runner.workspace }}\Qt
|
||||
key: Qt-5.15.2-QtCache
|
||||
key: Qt-6.3.1+5.15.2-QtCache
|
||||
|
||||
- name: Install Qt 64 bit
|
||||
uses: jurplel/install-qt-action@v3
|
||||
|
||||
- name: Install Qt6 x64
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
# version: '6.2.4'
|
||||
version: '6.3.1'
|
||||
dir: ..
|
||||
# arch: ${{ matrix.qt-target }}
|
||||
arch: 'win64_msvc2019_64'
|
||||
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
|
||||
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
|
||||
- name: Install Qt6 ARM64
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
# version: '6.2.4'
|
||||
version: '6.3.1'
|
||||
dir: ..
|
||||
# arch: ${{ matrix.qt-target }}
|
||||
arch: 'win64_msvc2019_arm64'
|
||||
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
|
||||
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
|
||||
- name: Install Qt5 x64
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: '5.15.2'
|
||||
dir: ..
|
||||
# arch: ${{ matrix.qt-target }}
|
||||
arch: 'win64_msvc2019_64'
|
||||
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
|
||||
# cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
|
||||
- name: Install Qt 32 bit
|
||||
uses: jurplel/install-qt-action@v3
|
||||
- name: Install Qt5 x86
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: '5.15.2'
|
||||
dir: ..
|
||||
# arch: ${{ matrix.qt-target }}
|
||||
arch: 'win32_msvc2019'
|
||||
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
|
||||
# cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||
|
||||
- name: Installing Jom
|
||||
# if: steps.cache-qt.outputs.cache-hit != 'true'
|
||||
if: steps.cache-qt.outputs.cache-hit != 'true'
|
||||
run: SandboxiePlus\install_jom.cmd
|
||||
|
||||
|
||||
- name: Build Sandboxie-Plus 64 bit
|
||||
- name: Build Sandboxie-Plus x64
|
||||
run: SandboxiePlus\qmake_plus.cmd x64
|
||||
|
||||
- name: Build SbieShell 64 bit
|
||||
run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=x64
|
||||
# - name: Build SbieShell x64
|
||||
# run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=x64
|
||||
|
||||
- name: Build Sandboxie-Plus 32 bit
|
||||
- name: Build Sandboxie-Plus ARM64
|
||||
run: SandboxiePlus\qmake_plus.cmd ARM64
|
||||
|
||||
# - name: Build SbieShell ARM64
|
||||
# run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=x64
|
||||
|
||||
- name: Build Sandboxie-Plus x86
|
||||
run: SandboxiePlus\qmake_plus.cmd Win32
|
||||
|
||||
- name: Add missing languages for Qt5 x86 (issue #1528)
|
||||
run: Installer\fix_qt5_languages.cmd Win32
|
||||
|
||||
- name: Add Windows 7 compatible Qt6 DLL's
|
||||
run: Installer\fix_qt6_win7.cmd
|
||||
|
||||
- name: Merging Builds
|
||||
run: Installer\merge_builds.cmd
|
||||
|
||||
- name: Upload Sandboxie 32
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Sandboxie_x86
|
||||
path: |
|
||||
Installer/SbiePlus32/*
|
||||
retention-days: 60
|
||||
|
||||
- name: Upload Sandboxie 64
|
||||
|
||||
- name: Upload Sandboxie x64
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Sandboxie_x64
|
||||
path: |
|
||||
Installer/SbiePlus64/*
|
||||
Installer/SbiePlus_x64/*
|
||||
retention-days: 60
|
||||
|
||||
- name: Upload Sandboxie ARM64
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Sandboxie_ARM64
|
||||
path: |
|
||||
Installer/SbiePlus_a64/*
|
||||
retention-days: 60
|
||||
|
||||
- name: Upload Sandboxie x86
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Sandboxie_x86
|
||||
path: |
|
||||
Installer/SbiePlus_x86/*
|
||||
retention-days: 60
|
||||
|
||||
|
|
19
CHANGELOG.md
19
CHANGELOG.md
|
@ -5,6 +5,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||
|
||||
|
||||
|
||||
## [1.5.0 / 5.60.0] - 2022-09-??
|
||||
|
||||
### Added
|
||||
- Added support for Windows on ARM64 [#1321](https://github.com/sandboxie-plus/Sandboxie/issues/1321) [#645](https://github.com/sandboxie-plus/Sandboxie/issues/645)
|
||||
-- Ported SbieDrv for ARM64
|
||||
-- Ported low level injection mechanism for ARM64/ARM64EC
|
||||
-- Ported syscall hooks for ARM64/ARM64EC
|
||||
-- Ported SbieDll.dll to ARM64/ARM64EC
|
||||
-- Note: ARM32 on ARM64 is not implemented and will terminate with message SBIE2338
|
||||
-- Note: When Sandboxie is running, it disables the use of CHPE binaries for x86 processes globally, this is required for the forced processes functionality. This behaviour can be disabled by adding the global option "DisableCHPE=n" to the Sandboxie.ini, then x86 processes started outside the sandbox, instead of being forced, will be terminated with message SBIE2338
|
||||
|
||||
### fixed
|
||||
- fixed issue with Win32 hooks in x86 applications
|
||||
|
||||
### Changed
|
||||
- reworked API compatibility check
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.4.2 / 5.59.2] - 2022-10-10
|
||||
|
|
|
@ -1,43 +1,59 @@
|
|||
REM @ECHO OFF
|
||||
|
||||
|
||||
set archPath=%1
|
||||
set sysPath=%windir%\System32
|
||||
set qtPath=%~dp0..\..\Qt\5.15.2\msvc2019_64
|
||||
set instPath=%~dp0\SbiePlus64
|
||||
IF %archPath% == x86 (
|
||||
set archPath=Win32
|
||||
set sysPath=%windir%\SysWOW64
|
||||
set qtPath=%~dp0..\..\Qt\5.15.2\msvc2019
|
||||
set instPath=%~dp0\SbiePlus32
|
||||
IF %1 == x86 (
|
||||
set archPath=Win32
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set qtPath=%~dp0..\..\Qt\5.15.2\msvc2019
|
||||
set instPath=%~dp0\SbiePlus_x86
|
||||
)
|
||||
IF %1 == x64 (
|
||||
set archPath=x64
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
set qtPath=%~dp0..\..\Qt\5.15.2\msvc2019_64
|
||||
REM set qtPath=%~dp0..\..\Qt\6.3.1\msvc2019_64
|
||||
set instPath=%~dp0\SbiePlus_x64
|
||||
)
|
||||
IF %1 == ARM64 (
|
||||
set archPath=ARM64
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
|
||||
set qtPath=%~dp0..\..\Qt\6.3.1\msvc2019_arm64
|
||||
set instPath=%~dp0\SbiePlus_a64
|
||||
)
|
||||
set redistPath=%VCToolsRedistDir%\%1\Microsoft.VC142.CRT
|
||||
@echo on
|
||||
|
||||
set srcPath=%~dp0..\SandboxiePlus\Bin\%archPath%\Release
|
||||
set sbiePath=%~dp0..\Sandboxie\Bin\%archPath%\SbieRelease
|
||||
|
||||
echo inst: %instPath%
|
||||
echo arch: %archPath%
|
||||
echo sys: %sysPath%
|
||||
echo redistr: %redistPath%
|
||||
echo source: %srcPath%
|
||||
echo source: %sbiePath%
|
||||
|
||||
mkdir %instPath%
|
||||
|
||||
ECHO Copying VC Runtime files
|
||||
copy %sysPath%\msvcp140.dll %instPath%\
|
||||
copy %sysPath%\msvcp140_1.dll %instPath%\
|
||||
copy %sysPath%\vcruntime140.dll %instPath%\
|
||||
IF %archPath% == x64 (
|
||||
copy %sysPath%\vcruntime140_1.dll %instPath%\
|
||||
)
|
||||
copy "%redistPath%\*" %instPath%\
|
||||
|
||||
|
||||
ECHO Copying Qt libraries
|
||||
|
||||
copy %qtPath%\bin\Qt5Core.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Gui.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Network.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Widgets.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5WinExtras.dll %instPath%\
|
||||
REM IF NOT %archPath% == ARM64 (
|
||||
IF %archPath% == Win32 (
|
||||
copy %qtPath%\bin\Qt5Core.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Gui.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Network.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5Widgets.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt5WinExtras.dll %instPath%\
|
||||
) ELSE (
|
||||
copy %qtPath%\bin\Qt6Core.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt6Gui.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt6Network.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt6Widgets.dll %instPath%\
|
||||
copy %qtPath%\bin\Qt6WinExtras.dll %instPath%\
|
||||
)
|
||||
|
||||
|
||||
mkdir %instPath%\platforms
|
||||
copy %qtPath%\plugins\platforms\qdirect2d.dll %instPath%\platforms\
|
||||
|
@ -48,19 +64,17 @@ copy %qtPath%\plugins\platforms\qwindows.dll %instPath%\platforms\
|
|||
mkdir %instPath%\styles
|
||||
copy %qtPath%\plugins\styles\qwindowsvistastyle.dll %instPath%\styles\
|
||||
|
||||
|
||||
ECHO Copying OpenSSL libraries
|
||||
rem copy /y %~dp0OpenSSL\%archPath%\libeay32.dll %instPath%\
|
||||
rem copy /y %~dp0OpenSSL\%archPath%\ssleay32.dll %instPath%\
|
||||
IF %archPath% == Win32 (
|
||||
copy /y %~dp0OpenSSL\Win32\libssl-1_1.dll %instPath%\
|
||||
copy /y %~dp0OpenSSL\Win32\libcrypto-1_1.dll %instPath%\
|
||||
copy /y %~dp0OpenSSL\Win_x86\bin\libssl-1_1.dll %instPath%\
|
||||
copy /y %~dp0OpenSSL\Win_x86\bin\libcrypto-1_1.dll %instPath%\
|
||||
)
|
||||
IF %archPath% == x64 (
|
||||
copy /y %~dp0OpenSSL\x64\libssl-1_1-x64.dll %instPath%\
|
||||
copy /y %~dp0OpenSSL\x64\libcrypto-1_1-x64.dll %instPath%\
|
||||
IF NOT %archPath% == Win32 (
|
||||
copy /y %~dp0OpenSSL\Win_%archPath%\bin\libssl-1_1-%archPath%.dll %instPath%\
|
||||
copy /y %~dp0OpenSSL\Win_%archPath%\bin\libcrypto-1_1-%archPath%.dll %instPath%\
|
||||
)
|
||||
rem for OpenSSL
|
||||
copy %sysPath%\msvcr100.dll %instPath%\
|
||||
|
||||
|
||||
ECHO Copying SandMan project and libraries
|
||||
copy %srcPath%\MiscHelpers.dll %instPath%\
|
||||
|
@ -124,6 +138,18 @@ IF %archPath% == x64 (
|
|||
copy /y %~dp0..\SandboxiePlus\x64\Release\SbieShellExt.dll %instPath%\
|
||||
copy /y %~dp0..\SandboxiePlus\x64\Release\SbieShellPkg.msix %instPath%\
|
||||
)
|
||||
IF %archPath% == ARM64 (
|
||||
mkdir %instPath%\32\
|
||||
copy /y %~dp0..\Sandboxie\Bin\Win32\SbieRelease\SbieSvc.exe %instPath%\32\
|
||||
copy /y %~dp0..\Sandboxie\Bin\Win32\SbieRelease\SbieDll.dll %instPath%\32\
|
||||
|
||||
mkdir %instPath%\64\
|
||||
copy /y %~dp0..\Sandboxie\Bin\ARM64EC\SbieRelease\SbieDll.dll %instPath%\64\
|
||||
|
||||
copy /y %~dp0..\SandboxiePlus\ARM64\Release\SbieShellExt.dll %instPath%\
|
||||
copy /y %~dp0..\SandboxiePlus\ARM64\Release\SbieShellPkg.msix %instPath%\
|
||||
)
|
||||
|
||||
|
||||
copy /y %~dp0..\Sandboxie\install\Templates.ini %instPath%\
|
||||
|
||||
|
@ -132,4 +158,3 @@ copy /y %~dp0..\Sandboxie\install\Manifest1.txt %instPath%\
|
|||
copy /y %~dp0..\Sandboxie\install\Manifest2.txt %instPath%\
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
mkdir %~dp0qttranslations
|
||||
mkdir %~dp0qttranslations\ts
|
||||
mkdir %~dp0qttranslations\qm
|
||||
set fileName=qttranslations-everywhere-src-6.2.3.zip
|
||||
set downloadUrl=https://download.qt.io/archive/qt/6.2/6.2.3/submodules/%filename%
|
||||
curl -LsSO --output-dir %~dp0qttranslations\ %downloadUrl%
|
||||
"C:\Program Files\7-Zip\7z.exe" e -i!*\translations\qt_*.ts -i!*\translations\qtbase_*.ts -i!*\translations\qtmultimedia_*.ts %~dp0qttranslations\%filename% -bd -o%~dp0qttranslations\ts\
|
||||
for %%a in (%~dp0qttranslations\ts\*.ts) do (lrelease.exe -silent %%a -qm %~dp0qttranslations\qm\%%~na.qm)
|
|
@ -0,0 +1,2 @@
|
|||
curl --ssl-no-revoke -L https://github.com/DavidXanatos/qtbase/releases/download/v6.3.1-w7/Qt6.3.1-w7.zip -o %~dp0..\..\Qt6.3.1-w7.zip
|
||||
"C:\Program Files\7-Zip\7z.exe" x -o%~dp0..\..\Qt\6.3.1\msvc2019_64\ %~dp0..\..\Qt6.3.1-w7.zip -y
|
|
@ -0,0 +1,4 @@
|
|||
mkdir %~dp0\7-Zip
|
||||
curl -L --url https://github.com/DavidXanatos/7z/releases/download/22.00/7z2201.zip -o %~dp0\7-Zip\7z2201.zip --ssl-no-revoke
|
||||
"C:\Program Files\7-Zip\7z.exe" x -bd -o%~dp0\7-Zip\ %~dp0\7-Zip\7z2201.zip
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
set version=1.1.1q
|
||||
set version=1_1_1p
|
||||
|
||||
mkdir %~dp0\OpenSSL
|
||||
curl -LsSO --output-dir %~dp0\OpenSSL\ http://wiki.overbyte.eu/arch/openssl-%version%-win64.zip
|
||||
"C:\Program Files\7-Zip\7z.exe" x -bd -o%~dp0\OpenSSL\x64\ %~dp0\OpenSSL\openssl-%version%-win64.zip
|
||||
curl -L --url https://github.com/DavidXanatos/openssl/releases/download/OpenSSL_%version%/OpenSSL-%version%.zip -o %~dp0\OpenSSL\OpenSSL-%version%.zip --ssl-no-revoke
|
||||
"C:\Program Files\7-Zip\7z.exe" x -bd -o%~dp0\OpenSSL\ %~dp0\OpenSSL\OpenSSL-%version%.zip
|
||||
|
||||
curl -LsSO --output-dir %~dp0\OpenSSL\ http://wiki.overbyte.eu/arch/openssl-%version%-win32.zip
|
||||
"C:\Program Files\7-Zip\7z.exe" x -bd -o%~dp0\OpenSSL\Win32\ %~dp0\OpenSSL\openssl-%version%-win32.zip
|
||||
|
|
|
@ -4,9 +4,11 @@ call %~dp0get_openssl.cmd
|
|||
|
||||
call %~dp0get_qttranslations.cmd
|
||||
|
||||
call %~dp0copy_build.cmd x64
|
||||
cmd.exe /c %~dp0copy_build.cmd x64
|
||||
|
||||
call %~dp0copy_build.cmd x86
|
||||
cmd.exe /c %~dp0copy_build.cmd ARM64
|
||||
|
||||
cmd.exe /c %~dp0copy_build.cmd x86
|
||||
|
||||
|
||||
REM mkdir %rootPath%\SbiePlus64\LogAPI
|
||||
|
|
|
@ -32,7 +32,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SandboxBITS", "apps\com\BIT
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SboxDll", "core\dll\SboxDll.vcxproj", "{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D} = {67579365-ED6A-C1E4-E0A3-4A7C9F14072D}
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3} = {63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D} = {255002EC-9FC7-422E-B497-BE2CC5012B2D}
|
||||
EndProjectSection
|
||||
|
@ -110,142 +109,252 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "apps", "apps", "{0301861F-9
|
|||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
SbieDebug|ARM64 = SbieDebug|ARM64
|
||||
SbieDebug|ARM64EC = SbieDebug|ARM64EC
|
||||
SbieDebug|Win32 = SbieDebug|Win32
|
||||
SbieDebug|x64 = SbieDebug|x64
|
||||
SbieRelease|ARM64 = SbieRelease|ARM64
|
||||
SbieRelease|ARM64EC = SbieRelease|ARM64EC
|
||||
SbieRelease|Win32 = SbieRelease|Win32
|
||||
SbieRelease|x64 = SbieRelease|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|ARM64EC
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|ARM64EC.Build.0 = SbieDebug|ARM64EC
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|ARM64EC
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|ARM64EC.Build.0 = SbieRelease|ARM64EC
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{2D3DBCAE-883E-54A6-F8F6-11228D989033}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{8B9E1B9D-FB3C-3009-9196-4315871BCD73}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{67579365-ED6A-C1E4-E0A3-4A7C9F14072D}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{E40CC819-6990-DA28-3E1F-6708BC98E37B}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|ARM64EC
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|ARM64EC.Build.0 = SbieDebug|ARM64EC
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|ARM64EC
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|ARM64EC.Build.0 = SbieRelease|ARM64EC
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{41453A79-CA9B-ABCA-981C-5242AFC72DDF}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{5410C534-4858-C748-86AD-0567A2451FDE}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{8055A629-631E-84F5-8F3C-1908F264C81D}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{42DB5510-0268-4655-B483-B9D6E4E48D62}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|ARM64EC.ActiveCfg = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|ARM64EC.Build.0 = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|Win32.Build.0 = SbieRelease|Win32
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|x64.ActiveCfg = SbieRelease|x64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieDebug|x64.Build.0 = SbieRelease|x64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|ARM64EC.Build.0 = SbieRelease|ARM64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{255002EC-9FC7-422E-B497-BE2CC5012B2D}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{D16E291A-1F8A-4B19-AE07-0AF8CB7CCBD0}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{0BF4988E-2325-4426-8CDC-BD221E4FB68C}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{B8D7002B-0468-44E7-93A7-94327A5D7C7A}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|ARM64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|ARM64EC.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|x64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|x64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|x64.Build.0 = SbieRelease|Win32
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|ARM64EC.ActiveCfg = SbieDebug|x64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|ARM64EC.ActiveCfg = SbieRelease|x64
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{3A42A9F3-E0C7-4633-9570-381802D6647D}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<WDKPATH>\WinDDK\7600.16385.1</WDKPATH>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<IncludePath>..\;..\..\;..\..\..\;$(VCInstallDir)include;$(WindowsSDK_IncludePath);$(VCInstallDir)atlmfc\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<LibraryPath>$(VCInstallDir)lib\arm64;$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\;$(WindowsSdkDir)lib\arm64;$(LibraryPath)</LibraryPath>
|
||||
<OutDir>$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;VISUAL_STUDIO_BUILD;_WIN64;_ARM64_;UNICODE;WINVER=0x0502;_WIN32_WINNT=0x0502;WIN32=100;_WIN32_IE=0x0603;WIN32_LEAN_AND_MEAN=1;WINNT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<DisableSpecificWarnings>4267;4312;4996;4133;4577;4091;4200</DisableSpecificWarnings>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<UndefinePreprocessorDefinitions>
|
||||
</UndefinePreprocessorDefinitions>
|
||||
<ExceptionHandling>false</ExceptionHandling>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions></PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="WDKPATH">
|
||||
<Value>$(WDKPATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<WDKPATH>\WinDDK\7600.16385.1</WDKPATH>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<IncludePath>..\;..\..\;..\..\..\;$(VCInstallDir)include;$(WindowsSDK_IncludePath);$(VCInstallDir)atlmfc\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<LibraryPath>$(VCInstallDir)lib\arm64;$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\;$(WindowsSdkDir)lib\arm64;$(LibraryPath)</LibraryPath>
|
||||
<OutDir>$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;VISUAL_STUDIO_BUILD;_WIN64;_AMD64_;_ARM64EC_;UNICODE;WINVER=0x0502;_WIN32_WINNT=0x0502;WIN32=100;_WIN32_IE=0x0603;WIN32_LEAN_AND_MEAN=1;WINNT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<DisableSpecificWarnings>4267;4312;4996;4133;4577;4091;4200</DisableSpecificWarnings>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<UndefinePreprocessorDefinitions>
|
||||
</UndefinePreprocessorDefinitions>
|
||||
<ExceptionHandling>false</ExceptionHandling>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions></PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="WDKPATH">
|
||||
<Value>$(WDKPATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -17,60 +17,88 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Parse", "msgs\Parse.vcxproj
|
|||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
SbieDebug|ARM64 = SbieDebug|ARM64
|
||||
SbieDebug|Win32 = SbieDebug|Win32
|
||||
SbieDebug|x64 = SbieDebug|x64
|
||||
SbieRelease|ARM64 = SbieRelease|ARM64
|
||||
SbieRelease|Win32 = SbieRelease|Win32
|
||||
SbieRelease|x64 = SbieRelease|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|Win32.Build.0 = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|x64.ActiveCfg = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Debug|x64.Build.0 = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|Win32.Build.0 = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|x64.ActiveCfg = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.Release|x64.Build.0 = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|ARM64.ActiveCfg = SbieDebug|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|ARM64.Build.0 = SbieDebug|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|Win32.ActiveCfg = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|Win32.Build.0 = SbieDebug|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|x64.ActiveCfg = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieDebug|x64.Build.0 = SbieDebug|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|ARM64.ActiveCfg = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|ARM64.Build.0 = SbieRelease|ARM64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|ARM64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|ARM64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Debug|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|ARM64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|ARM64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.Release|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|ARM64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|ARM64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieDebug|x64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|ARM64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|ARM64.Build.0 = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|x64.ActiveCfg = SbieRelease|x64
|
||||
{63B0DDD2-5E3B-EF38-F711-9652D2EB73B3}.SbieRelease|x64.Build.0 = SbieRelease|x64
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|ARM64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|x64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Debug|x64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|ARM64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|x64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.Release|x64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|ARM64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|x64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieDebug|x64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|ARM64.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|ARM64.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|Win32.ActiveCfg = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|Win32.Build.0 = SbieRelease|Win32
|
||||
{7BA01954-12F1-4CEE-BA97-FAD3250D9776}.SbieRelease|x64.ActiveCfg = SbieRelease|Win32
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -37,6 +45,12 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -51,6 +65,13 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -62,6 +83,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\Sandbox32.props" />
|
||||
|
@ -70,9 +95,14 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
|
@ -101,6 +131,20 @@
|
|||
</ShowProgress>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>
|
||||
</ShowProgress>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
|
@ -134,6 +178,24 @@
|
|||
<IgnoreSpecificDefaultLibraries>msvcprt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>SbieDll.lib;psapi.lib</AdditionalDependencies>
|
||||
<ShowProgress>
|
||||
</ShowProgress>
|
||||
<IgnoreSpecificDefaultLibraries>msvcprt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h" />
|
||||
<ClInclude Include="SboxHostDll.h" />
|
||||
|
@ -147,8 +209,10 @@
|
|||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -34,6 +42,11 @@
|
|||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -44,6 +57,11 @@
|
|||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -53,12 +71,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
|
@ -66,12 +90,18 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SandboxieBITS</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -90,6 +120,16 @@
|
|||
<AdditionalDependencies>advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
|
@ -108,6 +148,16 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
<AdditionalDependencies>advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="bits.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -34,6 +42,11 @@
|
|||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -44,6 +57,11 @@
|
|||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -53,12 +71,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
|
@ -69,6 +93,10 @@
|
|||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieCrypto</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieCrypto</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SandboxieCrypto</TargetName>
|
||||
<LibraryPath>$(WDKPATH)\lib\wnet\i386;$(LibraryPath)</LibraryPath>
|
||||
|
@ -76,6 +104,9 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SandboxieCrypto</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SandboxieCrypto</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -94,6 +125,16 @@
|
|||
<AdditionalDependencies>SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
|
@ -112,6 +153,16 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="crypto.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -34,6 +42,11 @@
|
|||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -44,6 +57,11 @@
|
|||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -53,12 +71,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
|
@ -68,12 +92,19 @@
|
|||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieDcomLaunch</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieDcomLaunch</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SandboxieDcomLaunch</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SandboxieDcomLaunch</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SandboxieDcomLaunch</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -94,6 +125,18 @@
|
|||
<AdditionalDependencies>SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<MinimalRebuild />
|
||||
|
@ -112,6 +155,17 @@
|
|||
<AdditionalDependencies>SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dcomlaunch.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -34,6 +42,11 @@
|
|||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -44,6 +57,11 @@
|
|||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -53,12 +71,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
|
@ -69,12 +93,19 @@
|
|||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieRpcSs</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>SandboxieRpcSs</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SandboxieRpcSs</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SandboxieRpcSs</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SandboxieRpcSs</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -96,6 +127,18 @@
|
|||
<AdditionalDependencies>SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<MinimalRebuild />
|
||||
|
@ -114,6 +157,17 @@
|
|||
<AdditionalDependencies>SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dde.c" />
|
||||
<ClCompile Include="linger.c" />
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -36,6 +44,12 @@
|
|||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -50,6 +64,13 @@
|
|||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -59,12 +80,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetName>SandboxieWUAU</TargetName>
|
||||
|
@ -76,9 +103,15 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">
|
||||
<TargetName>SandboxieWUAU</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetName>SandboxieWUAU</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SandboxieWUAU</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SandboxieWUAU</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -100,6 +133,18 @@
|
|||
<AdditionalDependencies>SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<FunctionLevelLinking>
|
||||
|
@ -122,6 +167,19 @@
|
|||
<AdditionalDependencies>SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="wuau.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -33,6 +41,11 @@
|
|||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -43,6 +56,11 @@
|
|||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -54,6 +72,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
|
@ -62,6 +84,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
|
@ -91,6 +117,16 @@
|
|||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
|
@ -100,6 +136,16 @@
|
|||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -110,6 +156,7 @@
|
|||
<ClCompile Include="MyMsgBox.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\msgs\SbieRelease\msgs.h" />
|
||||
<ClInclude Include="BoxOrder.h" />
|
||||
<ClInclude Include="CommonUtils.h" />
|
||||
<ClInclude Include="MyGdi.h" />
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -43,6 +51,15 @@
|
|||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
<UseOfAtl>false</UseOfAtl>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -61,6 +78,15 @@
|
|||
<UseOfAtl>false</UseOfAtl>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
<UseOfAtl>false</UseOfAtl>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -72,6 +98,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
|
@ -80,6 +110,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetName>SbieCtrl</TargetName>
|
||||
|
@ -89,6 +123,10 @@
|
|||
<TargetName>SbieCtrl</TargetName>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetName>SbieCtrl</TargetName>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SbieCtrl</TargetName>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
|
@ -97,6 +135,10 @@
|
|||
<TargetName>SbieCtrl</TargetName>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SbieCtrl</TargetName>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -136,6 +178,27 @@
|
|||
</IgnoreAllDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<IgnoreSpecificDefaultLibraries>uafxcw.lib</IgnoreSpecificDefaultLibraries>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<FunctionLevelLinking>
|
||||
|
@ -170,18 +233,42 @@
|
|||
</IgnoreAllDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<IgnoreSpecificDefaultLibraries>uafxcw.lib</IgnoreSpecificDefaultLibraries>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\common\json\JSON.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\json\JSONValue.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common\FontStore.cpp" />
|
||||
<ClCompile Include="..\common\Layout.cpp" />
|
||||
|
@ -189,23 +276,31 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common\RunBrowser.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common\RunStartExe.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common\WebView.c">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
|
@ -223,19 +318,25 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="BoxProc.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CreateDialog.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DeleteDialog.cpp" />
|
||||
<ClCompile Include="DisableForceDialog.cpp" />
|
||||
|
@ -245,7 +346,9 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FlashingButton.cpp" />
|
||||
<ClCompile Include="GettingStartedWizard.cpp" />
|
||||
|
@ -274,7 +377,9 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="TabbingComboBox.cpp" />
|
||||
<ClCompile Include="TemplateListBox.cpp" />
|
||||
|
|
|
@ -73,15 +73,17 @@ CInitWait::CInitWait(CWinApp *myApp)
|
|||
|
||||
m_pMenu = NULL;
|
||||
|
||||
m_app_ver.Format(L"%S", MY_VERSION_COMPAT);
|
||||
m_app_ver.Format(L"%S", MY_VERSION_STRING);
|
||||
m_svc_ver = L"?";
|
||||
m_svc_abi = 0;
|
||||
m_drv_ver = L"?";
|
||||
m_drv_abi = 0;
|
||||
|
||||
m_try_elevate = CMyApp::m_WindowsVista;
|
||||
|
||||
GetVersions();
|
||||
|
||||
if (m_app_ver == m_svc_ver && m_app_ver == m_drv_ver)
|
||||
if (m_svc_abi == MY_ABI_VERSION && m_drv_abi == MY_ABI_VERSION)
|
||||
return;
|
||||
|
||||
//
|
||||
|
@ -132,7 +134,7 @@ CInitWait::CInitWait(CWinApp *myApp)
|
|||
::DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
if (m_app_ver != m_svc_ver || m_app_ver != m_drv_ver)
|
||||
if (m_svc_abi != MY_ABI_VERSION|| m_drv_abi != MY_ABI_VERSION)
|
||||
exit(0);
|
||||
|
||||
KillTimer(ID_TIMER);
|
||||
|
@ -187,7 +189,8 @@ void CInitWait::GetVersions()
|
|||
if (rpl) {
|
||||
if (rpl->h.status == 0 && rpl->version[0]) {
|
||||
m_svc_ver = rpl->version;
|
||||
if (m_svc_ver != m_app_ver)
|
||||
m_svc_abi = rpl->abi_ver;
|
||||
if (m_svc_abi != MY_ABI_VERSION)
|
||||
fail = TRUE;
|
||||
}
|
||||
SbieDll_FreeMem(rpl);
|
||||
|
@ -196,10 +199,10 @@ void CInitWait::GetVersions()
|
|||
|
||||
if (m_drv_ver.GetAt(0) == L'?') {
|
||||
|
||||
SbieApi_GetVersion(drv_ver);
|
||||
SbieApi_GetVersionEx(drv_ver, &m_drv_abi);
|
||||
if (drv_ver[0] && _wcsicmp(drv_ver, L"unknown") != 0) {
|
||||
m_drv_ver = drv_ver;
|
||||
if (m_drv_ver != m_app_ver)
|
||||
if (m_drv_abi != MY_ABI_VERSION)
|
||||
fail = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -243,7 +246,7 @@ void CInitWait::OnTimer(UINT_PTR nIDEvent)
|
|||
CMyApp::ChangeTrayIcon(m_hIconPtr, CString());
|
||||
|
||||
GetVersions();
|
||||
if (m_app_ver == m_svc_ver && m_app_ver == m_drv_ver)
|
||||
if (m_svc_abi == MY_ABI_VERSION && m_drv_abi == MY_ABI_VERSION)
|
||||
m_hIconPtr = NULL;
|
||||
|
||||
else if (m_try_elevate) {
|
||||
|
|
|
@ -33,7 +33,9 @@ class CInitWait : public CWnd
|
|||
|
||||
CString m_app_ver;
|
||||
CString m_svc_ver;
|
||||
ULONG m_svc_abi;
|
||||
CString m_drv_ver;
|
||||
ULONG m_drv_abi;
|
||||
|
||||
HICON m_hIcon1;
|
||||
HICON m_hIcon2;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -49,6 +57,12 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -63,6 +77,13 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -74,6 +95,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
|
@ -82,6 +107,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
|
@ -89,12 +118,18 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetName>SbieIni</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
|
@ -121,6 +156,21 @@
|
|||
<AdditionalDependencies>SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
|
@ -149,6 +199,22 @@
|
|||
<AdditionalDependencies>SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<MinimalRebuild>
|
||||
</MinimalRebuild>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>SbieDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -36,6 +44,12 @@
|
|||
<UseOfMfc>Static</UseOfMfc>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -48,6 +62,12 @@
|
|||
<UseOfMfc>Static</UseOfMfc>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -57,12 +77,18 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
|
@ -70,12 +96,18 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
|
@ -106,6 +138,22 @@
|
|||
<OutputManifestFile>$(IntDir)$(TargetName)$(TargetExt).embed.manifest</OutputManifestFile>
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>libvcruntime.lib;libucrt.lib;ntdll.lib;User32.lib;Shell32.lib;Shlwapi.lib;Kernel32.lib;Gdi32.lib;SbieDll.lib;Ole32.lib;Common.lib;Advapi32.lib;Comctl32.lib;Comdlg32.lib;uuid.lib;Gdiplus.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_MSC_VER=1200;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Manifest>
|
||||
<OutputManifestFile>$(IntDir)$(TargetName)$(TargetExt).embed.manifest</OutputManifestFile>
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
|
@ -139,57 +187,92 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile />
|
||||
<Link>
|
||||
<AdditionalDependencies>libvcruntime.lib;libucrt.lib;ntdll.lib;User32.lib;Shell32.lib;Shlwapi.lib;Kernel32.lib;Gdi32.lib;SbieDll.lib;Ole32.lib;Common.lib;Advapi32.lib;Comctl32.lib;Comdlg32.lib;uuid.lib;Gdiplus.lib</AdditionalDependencies>
|
||||
<FullProgramDatabaseFile>true</FullProgramDatabaseFile>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_MSC_VER=1200;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Manifest>
|
||||
<OutputManifestFile>$(IntDir)$(TargetName)$(TargetExt).embed.manifest</OutputManifestFile>
|
||||
</Manifest>
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="aboutdlg.cpp" />
|
||||
<ClCompile Include="boxdlg.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="delete.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="env.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="links.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="menu.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="rundlg.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="start.cpp">
|
||||
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Sync</ExceptionHandling>
|
||||
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Sync</ExceptionHandling>
|
||||
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Sync</ExceptionHandling>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Use</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -201,6 +284,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="..\res\bigex.ico" />
|
||||
<Image Include="..\res\MastheadLogo.jpg" />
|
||||
<Image Include="..\res\start-icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
##############################################################################
|
||||
##
|
||||
## Makefile for Detours.
|
||||
##
|
||||
## Microsoft Research Detours Package, Version 4.0.1
|
||||
##
|
||||
## Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
##
|
||||
|
||||
ROOT = ..
|
||||
!include "$(ROOT)\system.mak"
|
||||
|
||||
!IF "$(DETOURS_SOURCE_BROWSING)" == ""
|
||||
DETOURS_SOURCE_BROWSING = 0
|
||||
!ENDIF
|
||||
|
||||
#######################/#######################################################
|
||||
##
|
||||
CFLAGS=/W4 /WX /Zi /MT /Gy /Gm- /Zl /Od
|
||||
|
||||
!IF $(DETOURS_SOURCE_BROWSING)==1
|
||||
CFLAGS=$(CFLAGS) /FR
|
||||
!ELSE
|
||||
CFLAGS=$(CFLAGS) /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x501
|
||||
!ENDIF
|
||||
|
||||
!IF "$(DETOURS_TARGET_PROCESSOR)" == "IA64"
|
||||
CFLAGS=$(CFLAGS) /wd4163 # intrinsic rdtebex not available; using newer Windows headers with older compiler
|
||||
!ENDIF
|
||||
|
||||
!if defined(DETOURS_WIN_7) && defined(DETOURS_CL_17_OR_NEWER)
|
||||
CFLAGS=$(CFLAGS) /D_USING_V110_SDK71_
|
||||
!elseif defined(DETOURS_ANALYZE)
|
||||
CFLAGS=$(CFLAGS) /analyze
|
||||
!endif
|
||||
|
||||
OBJS = \
|
||||
$(OBJD)\detours.obj \
|
||||
$(OBJD)\modules.obj \
|
||||
$(OBJD)\disasm.obj \
|
||||
$(OBJD)\image.obj \
|
||||
$(OBJD)\creatwth.obj \
|
||||
$(OBJD)\disolx86.obj \
|
||||
$(OBJD)\disolx64.obj \
|
||||
$(OBJD)\disolia64.obj \
|
||||
$(OBJD)\disolarm.obj \
|
||||
$(OBJD)\disolarm64.obj \
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
.SUFFIXES: .cpp .h .obj
|
||||
|
||||
!ifdef DETOURS_ANALYZE
|
||||
.cpp{$(OBJD)}.obj:
|
||||
$(CC) $(CFLAGS) /Fd$(LIBD)\detours.pdb /Fo$(OBJD)\ /c $<
|
||||
!else
|
||||
.cpp{$(OBJD)}.obj::
|
||||
$(CC) $(CFLAGS) /Fd$(LIBD)\detours.pdb /Fo$(OBJD)\ /c $<
|
||||
!endif
|
||||
|
||||
##############################################################################
|
||||
|
||||
all: dirs \
|
||||
$(LIBD)\detours.lib \
|
||||
$(INCD)\detours.h \
|
||||
$(INCD)\detver.h \
|
||||
!IF $(DETOURS_SOURCE_BROWSING)==1
|
||||
$(OBJD)\detours.bsc \
|
||||
!endif
|
||||
|
||||
##############################################################################
|
||||
|
||||
clean:
|
||||
-del *~ 2>nul
|
||||
-del $(LIBD)\detours.pdb $(LIBD)\detours.lib 2>nul
|
||||
-rmdir /q /s $(OBJD) 2>nul
|
||||
|
||||
realclean: clean
|
||||
-rmdir /q /s $(OBJDS) 2>nul
|
||||
|
||||
##############################################################################
|
||||
|
||||
dirs:
|
||||
@if not exist "$(INCD)" mkdir "$(INCD)" && echo. Created $(INCD)
|
||||
@if not exist "$(LIBD)" mkdir "$(LIBD)" && echo. Created $(LIBD)
|
||||
@if not exist "$(BIND)" mkdir "$(BIND)" && echo. Created $(BIND)
|
||||
@if not exist "$(OBJD)" mkdir "$(OBJD)" && echo. Created $(OBJD)
|
||||
|
||||
$(OBJD)\detours.bsc : $(OBJS)
|
||||
bscmake /v /n /o $@ $(OBJS:.obj=.sbr)
|
||||
|
||||
$(LIBD)\detours.lib : $(OBJS)
|
||||
link /lib /out:$@ $(OBJS)
|
||||
|
||||
$(INCD)\detours.h : detours.h
|
||||
copy detours.h $@
|
||||
|
||||
$(INCD)\detver.h : detver.h
|
||||
copy detver.h $@
|
||||
|
||||
$(OBJD)\detours.obj : detours.cpp detours.h
|
||||
$(OBJD)\modules.obj : modules.cpp detours.h
|
||||
$(OBJD)\disasm.obj : disasm.cpp detours.h
|
||||
$(OBJD)\image.obj : image.cpp detours.h
|
||||
$(OBJD)\creatwth.obj : creatwth.cpp uimports.cpp detours.h
|
||||
$(OBJD)\disolx86.obj: disasm.cpp detours.h
|
||||
$(OBJD)\disolx64.obj: disasm.cpp detours.h
|
||||
$(OBJD)\disolia64.obj: disasm.cpp detours.h
|
||||
$(OBJD)\disolarm.obj: disasm.cpp detours.h
|
||||
$(OBJD)\disolarm64.obj: disasm.cpp detours.h
|
||||
|
||||
test: all
|
||||
cd $(MAKEDIR)\..\samples\slept
|
||||
nmake /nologo test
|
||||
cd $(MAKEDIR)
|
||||
|
||||
################################################################# End of File.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,27 @@
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Common version parameters.
|
||||
//
|
||||
// Microsoft Research Detours Package, Version 4.0.1
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
|
||||
#define _USING_V110_SDK71_ 1
|
||||
#include "winver.h"
|
||||
#if 0
|
||||
#include <windows.h>
|
||||
#include <detours.h>
|
||||
#else
|
||||
#ifndef DETOURS_STRINGIFY
|
||||
#define DETOURS_STRINGIFY(x) DETOURS_STRINGIFY_(x)
|
||||
#define DETOURS_STRINGIFY_(x) #x
|
||||
#endif
|
||||
|
||||
#define VER_FILEFLAGSMASK 0x3fL
|
||||
#define VER_FILEFLAGS 0x0L
|
||||
#define VER_FILEOS 0x00040004L
|
||||
#define VER_FILETYPE 0x00000002L
|
||||
#define VER_FILESUBTYPE 0x00000000L
|
||||
#endif
|
||||
#define VER_DETOURS_BITS DETOUR_STRINGIFY(DETOURS_BITS)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,2 @@
|
|||
#define DETOURS_ARM_OFFLINE_LIBRARY
|
||||
#include "disasm.cpp"
|
|
@ -0,0 +1,2 @@
|
|||
#define DETOURS_ARM64_OFFLINE_LIBRARY
|
||||
#include "disasm.cpp"
|
|
@ -0,0 +1,2 @@
|
|||
#define DETOURS_IA64_OFFLINE_LIBRARY
|
||||
#include "disasm.cpp"
|
|
@ -0,0 +1,2 @@
|
|||
#define DETOURS_X64_OFFLINE_LIBRARY
|
||||
#include "disasm.cpp"
|
|
@ -0,0 +1,2 @@
|
|||
#define DETOURS_X86_OFFLINE_LIBRARY
|
||||
#include "disasm.cpp"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,929 @@
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Module Enumeration Functions (modules.cpp of detours.lib)
|
||||
//
|
||||
// Microsoft Research Detours Package, Version 4.0.1
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// Module enumeration functions.
|
||||
//
|
||||
|
||||
#define _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS 1
|
||||
|
||||
#pragma warning(disable:4068) // unknown pragma (suppress)
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4091) // empty typedef
|
||||
#endif
|
||||
|
||||
#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1
|
||||
#include <windows.h>
|
||||
#if (_MSC_VER < 1310)
|
||||
#else
|
||||
#pragma warning(push)
|
||||
#if _MSC_VER > 1400
|
||||
#pragma warning(disable:6102 6103) // /analyze warnings
|
||||
#endif
|
||||
#include <strsafe.h>
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
// #define DETOUR_DEBUG 1
|
||||
#define DETOURS_INTERNAL
|
||||
#include "detours.h"
|
||||
|
||||
#if DETOURS_VERSION != 0x4c0c1 // 0xMAJORcMINORcPATCH
|
||||
#error detours.h version mismatch
|
||||
#endif
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#define CLR_DIRECTORY OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR]
|
||||
#define IAT_DIRECTORY OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT]
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
const GUID DETOUR_EXE_RESTORE_GUID = {
|
||||
0x2ed7a3ff, 0x3339, 0x4a8d,
|
||||
{ 0x80, 0x5c, 0xd4, 0x98, 0x15, 0x3f, 0xc2, 0x8f }};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
PDETOUR_SYM_INFO DetourLoadImageHlp(VOID)
|
||||
{
|
||||
static DETOUR_SYM_INFO symInfo;
|
||||
static PDETOUR_SYM_INFO pSymInfo = NULL;
|
||||
static BOOL failed = false;
|
||||
|
||||
if (failed) {
|
||||
return NULL;
|
||||
}
|
||||
if (pSymInfo != NULL) {
|
||||
return pSymInfo;
|
||||
}
|
||||
|
||||
ZeroMemory(&symInfo, sizeof(symInfo));
|
||||
// Create a real handle to the process.
|
||||
#if 0
|
||||
DuplicateHandle(GetCurrentProcess(),
|
||||
GetCurrentProcess(),
|
||||
GetCurrentProcess(),
|
||||
&symInfo.hProcess,
|
||||
0,
|
||||
FALSE,
|
||||
DUPLICATE_SAME_ACCESS);
|
||||
#else
|
||||
symInfo.hProcess = GetCurrentProcess();
|
||||
#endif
|
||||
|
||||
symInfo.hDbgHelp = LoadLibraryExW(L"dbghelp.dll", NULL, 0);
|
||||
if (symInfo.hDbgHelp == NULL) {
|
||||
abort:
|
||||
failed = true;
|
||||
if (symInfo.hDbgHelp != NULL) {
|
||||
FreeLibrary(symInfo.hDbgHelp);
|
||||
}
|
||||
symInfo.pfImagehlpApiVersionEx = NULL;
|
||||
symInfo.pfSymInitialize = NULL;
|
||||
symInfo.pfSymSetOptions = NULL;
|
||||
symInfo.pfSymGetOptions = NULL;
|
||||
symInfo.pfSymLoadModule64 = NULL;
|
||||
symInfo.pfSymGetModuleInfo64 = NULL;
|
||||
symInfo.pfSymFromName = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
symInfo.pfImagehlpApiVersionEx
|
||||
= (PF_ImagehlpApiVersionEx)GetProcAddress(symInfo.hDbgHelp,
|
||||
"ImagehlpApiVersionEx");
|
||||
symInfo.pfSymInitialize
|
||||
= (PF_SymInitialize)GetProcAddress(symInfo.hDbgHelp, "SymInitialize");
|
||||
symInfo.pfSymSetOptions
|
||||
= (PF_SymSetOptions)GetProcAddress(symInfo.hDbgHelp, "SymSetOptions");
|
||||
symInfo.pfSymGetOptions
|
||||
= (PF_SymGetOptions)GetProcAddress(symInfo.hDbgHelp, "SymGetOptions");
|
||||
symInfo.pfSymLoadModule64
|
||||
= (PF_SymLoadModule64)GetProcAddress(symInfo.hDbgHelp, "SymLoadModule64");
|
||||
symInfo.pfSymGetModuleInfo64
|
||||
= (PF_SymGetModuleInfo64)GetProcAddress(symInfo.hDbgHelp, "SymGetModuleInfo64");
|
||||
symInfo.pfSymFromName
|
||||
= (PF_SymFromName)GetProcAddress(symInfo.hDbgHelp, "SymFromName");
|
||||
|
||||
API_VERSION av;
|
||||
ZeroMemory(&av, sizeof(av));
|
||||
av.MajorVersion = API_VERSION_NUMBER;
|
||||
|
||||
if (symInfo.pfImagehlpApiVersionEx == NULL ||
|
||||
symInfo.pfSymInitialize == NULL ||
|
||||
symInfo.pfSymLoadModule64 == NULL ||
|
||||
symInfo.pfSymGetModuleInfo64 == NULL ||
|
||||
symInfo.pfSymFromName == NULL) {
|
||||
goto abort;
|
||||
}
|
||||
|
||||
symInfo.pfImagehlpApiVersionEx(&av);
|
||||
if (av.MajorVersion < API_VERSION_NUMBER) {
|
||||
goto abort;
|
||||
}
|
||||
|
||||
if (!symInfo.pfSymInitialize(symInfo.hProcess, NULL, FALSE)) {
|
||||
// We won't retry the initialize if it fails.
|
||||
goto abort;
|
||||
}
|
||||
|
||||
if (symInfo.pfSymGetOptions != NULL && symInfo.pfSymSetOptions != NULL) {
|
||||
DWORD dw = symInfo.pfSymGetOptions();
|
||||
|
||||
dw &= ~(SYMOPT_CASE_INSENSITIVE |
|
||||
SYMOPT_UNDNAME |
|
||||
SYMOPT_DEFERRED_LOADS |
|
||||
0);
|
||||
dw |= (
|
||||
#if defined(SYMOPT_EXACT_SYMBOLS)
|
||||
SYMOPT_EXACT_SYMBOLS |
|
||||
#endif
|
||||
#if defined(SYMOPT_NO_UNQUALIFIED_LOADS)
|
||||
SYMOPT_NO_UNQUALIFIED_LOADS |
|
||||
#endif
|
||||
SYMOPT_DEFERRED_LOADS |
|
||||
#if defined(SYMOPT_FAIL_CRITICAL_ERRORS)
|
||||
SYMOPT_FAIL_CRITICAL_ERRORS |
|
||||
#endif
|
||||
#if defined(SYMOPT_INCLUDE_32BIT_MODULES)
|
||||
SYMOPT_INCLUDE_32BIT_MODULES |
|
||||
#endif
|
||||
0);
|
||||
symInfo.pfSymSetOptions(dw);
|
||||
}
|
||||
|
||||
pSymInfo = &symInfo;
|
||||
return pSymInfo;
|
||||
}
|
||||
|
||||
PVOID WINAPI DetourFindFunction(_In_ PCSTR pszModule,
|
||||
_In_ PCSTR pszFunction)
|
||||
{
|
||||
/////////////////////////////////////////////// First, try GetProcAddress.
|
||||
//
|
||||
#pragma prefast(suppress:28752, "We don't do the unicode conversion for LoadLibraryExA.")
|
||||
HMODULE hModule = LoadLibraryExA(pszModule, NULL, 0);
|
||||
if (hModule == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PBYTE pbCode = (PBYTE)GetProcAddress(hModule, pszFunction);
|
||||
if (pbCode) {
|
||||
return pbCode;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////// Then try ImageHelp.
|
||||
//
|
||||
DETOUR_TRACE(("DetourFindFunction(%hs, %hs)\n", pszModule, pszFunction));
|
||||
PDETOUR_SYM_INFO pSymInfo = DetourLoadImageHlp();
|
||||
if (pSymInfo == NULL) {
|
||||
DETOUR_TRACE(("DetourLoadImageHlp failed: %d\n",
|
||||
GetLastError()));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (pSymInfo->pfSymLoadModule64(pSymInfo->hProcess, NULL,
|
||||
(PCHAR)pszModule, NULL,
|
||||
(DWORD64)hModule, 0) == 0) {
|
||||
if (ERROR_SUCCESS != GetLastError()) {
|
||||
DETOUR_TRACE(("SymLoadModule64(%p) failed: %d\n",
|
||||
pSymInfo->hProcess, GetLastError()));
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT hrRet;
|
||||
CHAR szFullName[512];
|
||||
IMAGEHLP_MODULE64 modinfo;
|
||||
ZeroMemory(&modinfo, sizeof(modinfo));
|
||||
modinfo.SizeOfStruct = sizeof(modinfo);
|
||||
if (!pSymInfo->pfSymGetModuleInfo64(pSymInfo->hProcess, (DWORD64)hModule, &modinfo)) {
|
||||
DETOUR_TRACE(("SymGetModuleInfo64(%p, %p) failed: %d\n",
|
||||
pSymInfo->hProcess, hModule, GetLastError()));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
hrRet = StringCchCopyA(szFullName, sizeof(szFullName)/sizeof(CHAR), modinfo.ModuleName);
|
||||
if (FAILED(hrRet)) {
|
||||
DETOUR_TRACE(("StringCchCopyA failed: %08x\n", hrRet));
|
||||
return NULL;
|
||||
}
|
||||
hrRet = StringCchCatA(szFullName, sizeof(szFullName)/sizeof(CHAR), "!");
|
||||
if (FAILED(hrRet)) {
|
||||
DETOUR_TRACE(("StringCchCatA failed: %08x\n", hrRet));
|
||||
return NULL;
|
||||
}
|
||||
hrRet = StringCchCatA(szFullName, sizeof(szFullName)/sizeof(CHAR), pszFunction);
|
||||
if (FAILED(hrRet)) {
|
||||
DETOUR_TRACE(("StringCchCatA failed: %08x\n", hrRet));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct CFullSymbol : SYMBOL_INFO {
|
||||
CHAR szRestOfName[512];
|
||||
} symbol;
|
||||
ZeroMemory(&symbol, sizeof(symbol));
|
||||
//symbol.ModBase = (ULONG64)hModule;
|
||||
symbol.SizeOfStruct = sizeof(SYMBOL_INFO);
|
||||
#ifdef DBHLPAPI
|
||||
symbol.MaxNameLen = sizeof(symbol.szRestOfName)/sizeof(symbol.szRestOfName[0]);
|
||||
#else
|
||||
symbol.MaxNameLength = sizeof(symbol.szRestOfName)/sizeof(symbol.szRestOfName[0]);
|
||||
#endif
|
||||
|
||||
if (!pSymInfo->pfSymFromName(pSymInfo->hProcess, szFullName, &symbol)) {
|
||||
DETOUR_TRACE(("SymFromName(%hs) failed: %d\n", szFullName, GetLastError()));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if defined(DETOURS_IA64)
|
||||
// On the IA64, we get a raw code pointer from the symbol engine
|
||||
// and have to convert it to a wrapped [code pointer, global pointer].
|
||||
//
|
||||
PPLABEL_DESCRIPTOR pldEntry = (PPLABEL_DESCRIPTOR)DetourGetEntryPoint(hModule);
|
||||
PPLABEL_DESCRIPTOR pldSymbol = new PLABEL_DESCRIPTOR;
|
||||
|
||||
pldSymbol->EntryPoint = symbol.Address;
|
||||
pldSymbol->GlobalPointer = pldEntry->GlobalPointer;
|
||||
return (PBYTE)pldSymbol;
|
||||
#elif defined(DETOURS_ARM)
|
||||
// On the ARM, we get a raw code pointer, which we must convert into a
|
||||
// valied Thumb2 function pointer.
|
||||
return DETOURS_PBYTE_TO_PFUNC(symbol.Address);
|
||||
#else
|
||||
return (PBYTE)symbol.Address;
|
||||
#endif
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////// Module Image Functions.
|
||||
//
|
||||
|
||||
HMODULE WINAPI DetourEnumerateModules(_In_opt_ HMODULE hModuleLast)
|
||||
{
|
||||
PBYTE pbLast = (PBYTE)hModuleLast + MM_ALLOCATION_GRANULARITY;
|
||||
|
||||
MEMORY_BASIC_INFORMATION mbi;
|
||||
ZeroMemory(&mbi, sizeof(mbi));
|
||||
|
||||
// Find the next memory region that contains a mapped PE image.
|
||||
//
|
||||
for (;; pbLast = (PBYTE)mbi.BaseAddress + mbi.RegionSize) {
|
||||
if (VirtualQuery(pbLast, &mbi, sizeof(mbi)) <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Skip uncommitted regions and guard pages.
|
||||
//
|
||||
if ((mbi.State != MEM_COMMIT) ||
|
||||
((mbi.Protect & 0xff) == PAGE_NOACCESS) ||
|
||||
(mbi.Protect & PAGE_GUARD)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
__try {
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)pbLast;
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE ||
|
||||
(DWORD)pDosHeader->e_lfanew > mbi.RegionSize ||
|
||||
(DWORD)pDosHeader->e_lfanew < sizeof(*pDosHeader)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return (HMODULE)pDosHeader;
|
||||
}
|
||||
#pragma prefast(suppress:28940, "A bad pointer means this probably isn't a PE header.")
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PVOID WINAPI DetourGetEntryPoint(_In_opt_ HMODULE hModule)
|
||||
{
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
|
||||
if (hModule == NULL) {
|
||||
pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL);
|
||||
}
|
||||
|
||||
__try {
|
||||
#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL.
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PDETOUR_CLR_HEADER pClrHeader = NULL;
|
||||
if (pNtHeader->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
|
||||
if (((PIMAGE_NT_HEADERS32)pNtHeader)->CLR_DIRECTORY.VirtualAddress != 0 &&
|
||||
((PIMAGE_NT_HEADERS32)pNtHeader)->CLR_DIRECTORY.Size != 0) {
|
||||
pClrHeader = (PDETOUR_CLR_HEADER)
|
||||
(((PBYTE)pDosHeader)
|
||||
+ ((PIMAGE_NT_HEADERS32)pNtHeader)->CLR_DIRECTORY.VirtualAddress);
|
||||
}
|
||||
}
|
||||
else if (pNtHeader->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
|
||||
if (((PIMAGE_NT_HEADERS64)pNtHeader)->CLR_DIRECTORY.VirtualAddress != 0 &&
|
||||
((PIMAGE_NT_HEADERS64)pNtHeader)->CLR_DIRECTORY.Size != 0) {
|
||||
pClrHeader = (PDETOUR_CLR_HEADER)
|
||||
(((PBYTE)pDosHeader)
|
||||
+ ((PIMAGE_NT_HEADERS64)pNtHeader)->CLR_DIRECTORY.VirtualAddress);
|
||||
}
|
||||
}
|
||||
|
||||
if (pClrHeader != NULL) {
|
||||
// For MSIL assemblies, we want to use the _Cor entry points.
|
||||
|
||||
HMODULE hClr = GetModuleHandleW(L"MSCOREE.DLL");
|
||||
if (hClr == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SetLastError(NO_ERROR);
|
||||
return GetProcAddress(hClr, "_CorExeMain");
|
||||
}
|
||||
|
||||
SetLastError(NO_ERROR);
|
||||
|
||||
// Pure resource DLLs have neither an entry point nor CLR information
|
||||
// so handle them by returning NULL (LastError is NO_ERROR)
|
||||
if (pNtHeader->OptionalHeader.AddressOfEntryPoint == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return ((PBYTE)pDosHeader) +
|
||||
pNtHeader->OptionalHeader.AddressOfEntryPoint;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
ULONG WINAPI DetourGetModuleSize(_In_opt_ HMODULE hModule)
|
||||
{
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
|
||||
if (hModule == NULL) {
|
||||
pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL);
|
||||
}
|
||||
|
||||
__try {
|
||||
#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL.
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
|
||||
return (pNtHeader->OptionalHeader.SizeOfImage);
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
HMODULE WINAPI DetourGetContainingModule(_In_ PVOID pvAddr)
|
||||
{
|
||||
MEMORY_BASIC_INFORMATION mbi;
|
||||
ZeroMemory(&mbi, sizeof(mbi));
|
||||
|
||||
__try {
|
||||
if (VirtualQuery(pvAddr, &mbi, sizeof(mbi)) <= 0) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Skip uncommitted regions and guard pages.
|
||||
//
|
||||
if ((mbi.State != MEM_COMMIT) ||
|
||||
((mbi.Protect & 0xff) == PAGE_NOACCESS) ||
|
||||
(mbi.Protect & PAGE_GUARD)) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)mbi.AllocationBase;
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
|
||||
return (HMODULE)pDosHeader;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static inline PBYTE RvaAdjust(_Pre_notnull_ PIMAGE_DOS_HEADER pDosHeader, _In_ DWORD raddr)
|
||||
{
|
||||
if (raddr != NULL) {
|
||||
return ((PBYTE)pDosHeader) + raddr;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BOOL WINAPI DetourEnumerateExports(_In_ HMODULE hModule,
|
||||
_In_opt_ PVOID pContext,
|
||||
_In_ PF_DETOUR_ENUMERATE_EXPORT_CALLBACK pfExport)
|
||||
{
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
|
||||
if (hModule == NULL) {
|
||||
pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL);
|
||||
}
|
||||
|
||||
__try {
|
||||
#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL.
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return FALSE;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PIMAGE_EXPORT_DIRECTORY pExportDir
|
||||
= (PIMAGE_EXPORT_DIRECTORY)
|
||||
RvaAdjust(pDosHeader,
|
||||
pNtHeader->OptionalHeader
|
||||
.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);
|
||||
|
||||
if (pExportDir == NULL) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PBYTE pExportDirEnd = (PBYTE)pExportDir + pNtHeader->OptionalHeader
|
||||
.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size;
|
||||
PDWORD pdwFunctions = (PDWORD)RvaAdjust(pDosHeader, pExportDir->AddressOfFunctions);
|
||||
PDWORD pdwNames = (PDWORD)RvaAdjust(pDosHeader, pExportDir->AddressOfNames);
|
||||
PWORD pwOrdinals = (PWORD)RvaAdjust(pDosHeader, pExportDir->AddressOfNameOrdinals);
|
||||
|
||||
for (DWORD nFunc = 0; nFunc < pExportDir->NumberOfFunctions; nFunc++) {
|
||||
PBYTE pbCode = (pdwFunctions != NULL)
|
||||
? (PBYTE)RvaAdjust(pDosHeader, pdwFunctions[nFunc]) : NULL;
|
||||
PCHAR pszName = NULL;
|
||||
|
||||
// if the pointer is in the export region, then it is a forwarder.
|
||||
if (pbCode > (PBYTE)pExportDir && pbCode < pExportDirEnd) {
|
||||
pbCode = NULL;
|
||||
}
|
||||
|
||||
for (DWORD n = 0; n < pExportDir->NumberOfNames; n++) {
|
||||
if (pwOrdinals[n] == nFunc) {
|
||||
pszName = (pdwNames != NULL)
|
||||
? (PCHAR)RvaAdjust(pDosHeader, pdwNames[n]) : NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ULONG nOrdinal = pExportDir->Base + nFunc;
|
||||
|
||||
if (!pfExport(pContext, nOrdinal, pszName, pbCode)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
return TRUE;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL WINAPI DetourEnumerateImportsEx(_In_opt_ HMODULE hModule,
|
||||
_In_opt_ PVOID pContext,
|
||||
_In_opt_ PF_DETOUR_IMPORT_FILE_CALLBACK pfImportFile,
|
||||
_In_opt_ PF_DETOUR_IMPORT_FUNC_CALLBACK_EX pfImportFunc)
|
||||
{
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
|
||||
if (hModule == NULL) {
|
||||
pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL);
|
||||
}
|
||||
|
||||
__try {
|
||||
#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL.
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return FALSE;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PIMAGE_IMPORT_DESCRIPTOR iidp
|
||||
= (PIMAGE_IMPORT_DESCRIPTOR)
|
||||
RvaAdjust(pDosHeader,
|
||||
pNtHeader->OptionalHeader
|
||||
.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
|
||||
|
||||
if (iidp == NULL) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (; iidp->OriginalFirstThunk != 0; iidp++) {
|
||||
|
||||
PCSTR pszName = (PCHAR)RvaAdjust(pDosHeader, iidp->Name);
|
||||
if (pszName == NULL) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PIMAGE_THUNK_DATA pThunks = (PIMAGE_THUNK_DATA)
|
||||
RvaAdjust(pDosHeader, iidp->OriginalFirstThunk);
|
||||
PVOID * pAddrs = (PVOID *)
|
||||
RvaAdjust(pDosHeader, iidp->FirstThunk);
|
||||
|
||||
HMODULE hFile = DetourGetContainingModule(pAddrs[0]);
|
||||
|
||||
if (pfImportFile != NULL) {
|
||||
if (!pfImportFile(pContext, hFile, pszName)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD nNames = 0;
|
||||
if (pThunks) {
|
||||
for (; pThunks[nNames].u1.Ordinal; nNames++) {
|
||||
DWORD nOrdinal = 0;
|
||||
PCSTR pszFunc = NULL;
|
||||
|
||||
if (IMAGE_SNAP_BY_ORDINAL(pThunks[nNames].u1.Ordinal)) {
|
||||
nOrdinal = (DWORD)IMAGE_ORDINAL(pThunks[nNames].u1.Ordinal);
|
||||
}
|
||||
else {
|
||||
pszFunc = (PCSTR)RvaAdjust(pDosHeader,
|
||||
(DWORD)pThunks[nNames].u1.AddressOfData + 2);
|
||||
}
|
||||
|
||||
if (pfImportFunc != NULL) {
|
||||
if (!pfImportFunc(pContext,
|
||||
nOrdinal,
|
||||
pszFunc,
|
||||
&pAddrs[nNames])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pfImportFunc != NULL) {
|
||||
pfImportFunc(pContext, 0, NULL, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pfImportFile != NULL) {
|
||||
pfImportFile(pContext, NULL, NULL);
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
return TRUE;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// Context for DetourEnumerateImportsThunk, which adapts "regular" callbacks for use with "Ex".
|
||||
struct _DETOUR_ENUMERATE_IMPORTS_THUNK_CONTEXT
|
||||
{
|
||||
PVOID pContext;
|
||||
PF_DETOUR_IMPORT_FUNC_CALLBACK pfImportFunc;
|
||||
};
|
||||
|
||||
// Callback for DetourEnumerateImportsEx that adapts DetourEnumerateImportsEx
|
||||
// for use with a DetourEnumerateImports callback -- derefence the IAT and pass the value on.
|
||||
|
||||
static
|
||||
BOOL
|
||||
CALLBACK
|
||||
DetourEnumerateImportsThunk(_In_ PVOID VoidContext,
|
||||
_In_ DWORD nOrdinal,
|
||||
_In_opt_ PCSTR pszFunc,
|
||||
_In_opt_ PVOID* ppvFunc)
|
||||
{
|
||||
_DETOUR_ENUMERATE_IMPORTS_THUNK_CONTEXT const * const
|
||||
pContext = (_DETOUR_ENUMERATE_IMPORTS_THUNK_CONTEXT*)VoidContext;
|
||||
return pContext->pfImportFunc(pContext->pContext, nOrdinal, pszFunc, ppvFunc ? *ppvFunc : NULL);
|
||||
}
|
||||
|
||||
BOOL WINAPI DetourEnumerateImports(_In_opt_ HMODULE hModule,
|
||||
_In_opt_ PVOID pContext,
|
||||
_In_opt_ PF_DETOUR_IMPORT_FILE_CALLBACK pfImportFile,
|
||||
_In_opt_ PF_DETOUR_IMPORT_FUNC_CALLBACK pfImportFunc)
|
||||
{
|
||||
_DETOUR_ENUMERATE_IMPORTS_THUNK_CONTEXT const context = { pContext, pfImportFunc };
|
||||
|
||||
return DetourEnumerateImportsEx(hModule,
|
||||
(PVOID)&context,
|
||||
pfImportFile,
|
||||
&DetourEnumerateImportsThunk);
|
||||
}
|
||||
|
||||
static PDETOUR_LOADED_BINARY WINAPI GetPayloadSectionFromModule(HMODULE hModule)
|
||||
{
|
||||
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
|
||||
if (hModule == NULL) {
|
||||
pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL);
|
||||
}
|
||||
|
||||
__try {
|
||||
#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL.
|
||||
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader +
|
||||
pDosHeader->e_lfanew);
|
||||
if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) {
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PIMAGE_SECTION_HEADER pSectionHeaders
|
||||
= (PIMAGE_SECTION_HEADER)((PBYTE)pNtHeader
|
||||
+ sizeof(pNtHeader->Signature)
|
||||
+ sizeof(pNtHeader->FileHeader)
|
||||
+ pNtHeader->FileHeader.SizeOfOptionalHeader);
|
||||
|
||||
for (DWORD n = 0; n < pNtHeader->FileHeader.NumberOfSections; n++) {
|
||||
if (strcmp((PCHAR)pSectionHeaders[n].Name, ".detour") == 0) {
|
||||
if (pSectionHeaders[n].VirtualAddress == 0 ||
|
||||
pSectionHeaders[n].SizeOfRawData == 0) {
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
PBYTE pbData = (PBYTE)pDosHeader + pSectionHeaders[n].VirtualAddress;
|
||||
DETOUR_SECTION_HEADER *pHeader = (DETOUR_SECTION_HEADER *)pbData;
|
||||
if (pHeader->cbHeaderSize < sizeof(DETOUR_SECTION_HEADER) ||
|
||||
pHeader->nSignature != DETOUR_SECTION_HEADER_SIGNATURE) {
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (pHeader->nDataOffset == 0) {
|
||||
pHeader->nDataOffset = pHeader->cbHeaderSize;
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
return (PBYTE)pHeader;
|
||||
}
|
||||
}
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_EXE_MARKED_INVALID);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD WINAPI DetourGetSizeOfPayloads(_In_opt_ HMODULE hModule)
|
||||
{
|
||||
PDETOUR_LOADED_BINARY pBinary = GetPayloadSectionFromModule(hModule);
|
||||
if (pBinary == NULL) {
|
||||
// Error set by GetPayloadSectionFromModule.
|
||||
return 0;
|
||||
}
|
||||
|
||||
__try {
|
||||
DETOUR_SECTION_HEADER *pHeader = (DETOUR_SECTION_HEADER *)pBinary;
|
||||
if (pHeader->cbHeaderSize < sizeof(DETOUR_SECTION_HEADER) ||
|
||||
pHeader->nSignature != DETOUR_SECTION_HEADER_SIGNATURE) {
|
||||
|
||||
SetLastError(ERROR_INVALID_HANDLE);
|
||||
return 0;
|
||||
}
|
||||
SetLastError(NO_ERROR);
|
||||
return pHeader->cbDataSize;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_INVALID_HANDLE);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
_Writable_bytes_(*pcbData)
|
||||
_Readable_bytes_(*pcbData)
|
||||
_Success_(return != NULL)
|
||||
PVOID WINAPI DetourFindPayload(_In_opt_ HMODULE hModule,
|
||||
_In_ REFGUID rguid,
|
||||
_Out_ DWORD *pcbData)
|
||||
{
|
||||
PBYTE pbData = NULL;
|
||||
if (pcbData) {
|
||||
*pcbData = 0;
|
||||
}
|
||||
|
||||
PDETOUR_LOADED_BINARY pBinary = GetPayloadSectionFromModule(hModule);
|
||||
if (pBinary == NULL) {
|
||||
// Error set by GetPayloadSectionFromModule.
|
||||
return NULL;
|
||||
}
|
||||
|
||||
__try {
|
||||
DETOUR_SECTION_HEADER *pHeader = (DETOUR_SECTION_HEADER *)pBinary;
|
||||
if (pHeader->cbHeaderSize < sizeof(DETOUR_SECTION_HEADER) ||
|
||||
pHeader->nSignature != DETOUR_SECTION_HEADER_SIGNATURE) {
|
||||
|
||||
SetLastError(ERROR_INVALID_EXE_SIGNATURE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PBYTE pbBeg = ((PBYTE)pHeader) + pHeader->nDataOffset;
|
||||
PBYTE pbEnd = ((PBYTE)pHeader) + pHeader->cbDataSize;
|
||||
|
||||
for (pbData = pbBeg; pbData < pbEnd;) {
|
||||
DETOUR_SECTION_RECORD *pSection = (DETOUR_SECTION_RECORD *)pbData;
|
||||
|
||||
if (pSection->guid.Data1 == rguid.Data1 &&
|
||||
pSection->guid.Data2 == rguid.Data2 &&
|
||||
pSection->guid.Data3 == rguid.Data3 &&
|
||||
pSection->guid.Data4[0] == rguid.Data4[0] &&
|
||||
pSection->guid.Data4[1] == rguid.Data4[1] &&
|
||||
pSection->guid.Data4[2] == rguid.Data4[2] &&
|
||||
pSection->guid.Data4[3] == rguid.Data4[3] &&
|
||||
pSection->guid.Data4[4] == rguid.Data4[4] &&
|
||||
pSection->guid.Data4[5] == rguid.Data4[5] &&
|
||||
pSection->guid.Data4[6] == rguid.Data4[6] &&
|
||||
pSection->guid.Data4[7] == rguid.Data4[7]) {
|
||||
|
||||
if (pcbData) {
|
||||
*pcbData = pSection->cbBytes - sizeof(*pSection);
|
||||
SetLastError(NO_ERROR);
|
||||
return (PBYTE)(pSection + 1);
|
||||
}
|
||||
}
|
||||
|
||||
pbData = (PBYTE)pSection + pSection->cbBytes;
|
||||
}
|
||||
SetLastError(ERROR_INVALID_HANDLE);
|
||||
return NULL;
|
||||
}
|
||||
__except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
||||
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
||||
SetLastError(ERROR_INVALID_HANDLE);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
_Writable_bytes_(*pcbData)
|
||||
_Readable_bytes_(*pcbData)
|
||||
_Success_(return != NULL)
|
||||
PVOID WINAPI DetourFindPayloadEx(_In_ REFGUID rguid,
|
||||
_Out_ DWORD * pcbData)
|
||||
{
|
||||
for (HMODULE hMod = NULL; (hMod = DetourEnumerateModules(hMod)) != NULL;) {
|
||||
PVOID pvData;
|
||||
|
||||
pvData = DetourFindPayload(hMod, rguid, pcbData);
|
||||
if (pvData != NULL) {
|
||||
return pvData;
|
||||
}
|
||||
}
|
||||
SetLastError(ERROR_MOD_NOT_FOUND);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BOOL WINAPI DetourRestoreAfterWithEx(_In_reads_bytes_(cbData) PVOID pvData,
|
||||
_In_ DWORD cbData)
|
||||
{
|
||||
PDETOUR_EXE_RESTORE pder = (PDETOUR_EXE_RESTORE)pvData;
|
||||
|
||||
if (pder->cb != sizeof(*pder) || pder->cb > cbData) {
|
||||
SetLastError(ERROR_BAD_EXE_FORMAT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DWORD dwPermIdh = ~0u;
|
||||
DWORD dwPermInh = ~0u;
|
||||
DWORD dwPermClr = ~0u;
|
||||
DWORD dwIgnore;
|
||||
BOOL fSucceeded = FALSE;
|
||||
BOOL fUpdated32To64 = FALSE;
|
||||
|
||||
if (pder->pclr != NULL && pder->clr.Flags != ((PDETOUR_CLR_HEADER)pder->pclr)->Flags) {
|
||||
// If we had to promote the 32/64-bit agnostic IL to 64-bit, we can't restore
|
||||
// that.
|
||||
fUpdated32To64 = TRUE;
|
||||
}
|
||||
|
||||
if (DetourVirtualProtectSameExecute(pder->pidh, pder->cbidh,
|
||||
PAGE_EXECUTE_READWRITE, &dwPermIdh)) {
|
||||
if (DetourVirtualProtectSameExecute(pder->pinh, pder->cbinh,
|
||||
PAGE_EXECUTE_READWRITE, &dwPermInh)) {
|
||||
|
||||
CopyMemory(pder->pidh, &pder->idh, pder->cbidh);
|
||||
CopyMemory(pder->pinh, &pder->inh, pder->cbinh);
|
||||
|
||||
if (pder->pclr != NULL && !fUpdated32To64) {
|
||||
if (DetourVirtualProtectSameExecute(pder->pclr, pder->cbclr,
|
||||
PAGE_EXECUTE_READWRITE, &dwPermClr)) {
|
||||
CopyMemory(pder->pclr, &pder->clr, pder->cbclr);
|
||||
VirtualProtect(pder->pclr, pder->cbclr, dwPermClr, &dwIgnore);
|
||||
fSucceeded = TRUE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
fSucceeded = TRUE;
|
||||
}
|
||||
VirtualProtect(pder->pinh, pder->cbinh, dwPermInh, &dwIgnore);
|
||||
}
|
||||
VirtualProtect(pder->pidh, pder->cbidh, dwPermIdh, &dwIgnore);
|
||||
}
|
||||
return fSucceeded;
|
||||
}
|
||||
|
||||
BOOL WINAPI DetourRestoreAfterWith()
|
||||
{
|
||||
PVOID pvData;
|
||||
DWORD cbData;
|
||||
|
||||
pvData = DetourFindPayloadEx(DETOUR_EXE_RESTORE_GUID, &cbData);
|
||||
|
||||
if (pvData != NULL && cbData != 0) {
|
||||
return DetourRestoreAfterWithEx(pvData, cbData);
|
||||
}
|
||||
SetLastError(ERROR_MOD_NOT_FOUND);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// End of File
|
|
@ -0,0 +1,269 @@
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Add DLLs to a module import table (uimports.cpp of detours.lib)
|
||||
//
|
||||
// Microsoft Research Detours Package, Version 4.0.1
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// Note that this file is included into creatwth.cpp one or more times
|
||||
// (once for each supported module format).
|
||||
//
|
||||
|
||||
#if DETOURS_VERSION != 0x4c0c1 // 0xMAJORcMINORcPATCH
|
||||
#error detours.h version mismatch
|
||||
#endif
|
||||
|
||||
// UpdateImports32 aka UpdateImports64
|
||||
static BOOL UPDATE_IMPORTS_XX(HANDLE hProcess,
|
||||
HMODULE hModule,
|
||||
__in_ecount(nDlls) LPCSTR *plpDlls,
|
||||
DWORD nDlls)
|
||||
{
|
||||
BOOL fSucceeded = FALSE;
|
||||
DWORD cbNew = 0;
|
||||
|
||||
BYTE * pbNew = NULL;
|
||||
DWORD i;
|
||||
SIZE_T cbRead;
|
||||
DWORD n;
|
||||
|
||||
PBYTE pbModule = (PBYTE)hModule;
|
||||
|
||||
IMAGE_DOS_HEADER idh;
|
||||
ZeroMemory(&idh, sizeof(idh));
|
||||
if (!ReadProcessMemory(hProcess, pbModule, &idh, sizeof(idh), &cbRead)
|
||||
|| cbRead < sizeof(idh)) {
|
||||
|
||||
DETOUR_TRACE(("ReadProcessMemory(idh@%p..%p) failed: %d\n",
|
||||
pbModule, pbModule + sizeof(idh), GetLastError()));
|
||||
|
||||
finish:
|
||||
if (pbNew != NULL) {
|
||||
delete[] pbNew;
|
||||
pbNew = NULL;
|
||||
}
|
||||
return fSucceeded;
|
||||
}
|
||||
|
||||
IMAGE_NT_HEADERS_XX inh;
|
||||
ZeroMemory(&inh, sizeof(inh));
|
||||
|
||||
if (!ReadProcessMemory(hProcess, pbModule + idh.e_lfanew, &inh, sizeof(inh), &cbRead)
|
||||
|| cbRead < sizeof(inh)) {
|
||||
DETOUR_TRACE(("ReadProcessMemory(inh@%p..%p) failed: %d\n",
|
||||
pbModule + idh.e_lfanew,
|
||||
pbModule + idh.e_lfanew + sizeof(inh),
|
||||
GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (inh.OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR_MAGIC_XX) {
|
||||
DETOUR_TRACE(("Wrong size image (%04x != %04x).\n",
|
||||
inh.OptionalHeader.Magic, IMAGE_NT_OPTIONAL_HDR_MAGIC_XX));
|
||||
SetLastError(ERROR_INVALID_BLOCK);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
// Zero out the bound table so loader doesn't use it instead of our new table.
|
||||
inh.BOUND_DIRECTORY.VirtualAddress = 0;
|
||||
inh.BOUND_DIRECTORY.Size = 0;
|
||||
|
||||
// Find the size of the mapped file.
|
||||
DWORD dwSec = idh.e_lfanew +
|
||||
FIELD_OFFSET(IMAGE_NT_HEADERS_XX, OptionalHeader) +
|
||||
inh.FileHeader.SizeOfOptionalHeader;
|
||||
|
||||
for (i = 0; i < inh.FileHeader.NumberOfSections; i++) {
|
||||
IMAGE_SECTION_HEADER ish;
|
||||
ZeroMemory(&ish, sizeof(ish));
|
||||
|
||||
if (!ReadProcessMemory(hProcess, pbModule + dwSec + sizeof(ish) * i, &ish,
|
||||
sizeof(ish), &cbRead)
|
||||
|| cbRead < sizeof(ish)) {
|
||||
|
||||
DETOUR_TRACE(("ReadProcessMemory(ish@%p..%p) failed: %d\n",
|
||||
pbModule + dwSec + sizeof(ish) * i,
|
||||
pbModule + dwSec + sizeof(ish) * (i + 1),
|
||||
GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
DETOUR_TRACE(("ish[%d] : va=%08x sr=%d\n", i, ish.VirtualAddress, ish.SizeOfRawData));
|
||||
|
||||
// If the file didn't have an IAT_DIRECTORY, we assign it...
|
||||
if (inh.IAT_DIRECTORY.VirtualAddress == 0 &&
|
||||
inh.IMPORT_DIRECTORY.VirtualAddress >= ish.VirtualAddress &&
|
||||
inh.IMPORT_DIRECTORY.VirtualAddress < ish.VirtualAddress + ish.SizeOfRawData) {
|
||||
|
||||
inh.IAT_DIRECTORY.VirtualAddress = ish.VirtualAddress;
|
||||
inh.IAT_DIRECTORY.Size = ish.SizeOfRawData;
|
||||
}
|
||||
}
|
||||
|
||||
DETOUR_TRACE((" Imports: %p..%p\n",
|
||||
(DWORD_PTR)pbModule + inh.IMPORT_DIRECTORY.VirtualAddress,
|
||||
(DWORD_PTR)pbModule + inh.IMPORT_DIRECTORY.VirtualAddress +
|
||||
inh.IMPORT_DIRECTORY.Size));
|
||||
|
||||
DWORD nOldDlls = inh.IMPORT_DIRECTORY.Size / sizeof(IMAGE_IMPORT_DESCRIPTOR);
|
||||
DWORD obRem = sizeof(IMAGE_IMPORT_DESCRIPTOR) * nDlls;
|
||||
DWORD obOld = obRem + sizeof(IMAGE_IMPORT_DESCRIPTOR) * nOldDlls;
|
||||
DWORD obTab = PadToDwordPtr(obOld);
|
||||
DWORD obDll = obTab + sizeof(DWORD_XX) * 4 * nDlls;
|
||||
DWORD obStr = obDll;
|
||||
cbNew = obStr;
|
||||
for (n = 0; n < nDlls; n++) {
|
||||
cbNew += PadToDword((DWORD)strlen(plpDlls[n]) + 1);
|
||||
}
|
||||
|
||||
_Analysis_assume_(cbNew >
|
||||
sizeof(IMAGE_IMPORT_DESCRIPTOR) * (nDlls + nOldDlls)
|
||||
+ sizeof(DWORD_XX) * 4 * nDlls);
|
||||
pbNew = new BYTE [cbNew];
|
||||
if (pbNew == NULL) {
|
||||
DETOUR_TRACE(("new BYTE [cbNew] failed.\n"));
|
||||
goto finish;
|
||||
}
|
||||
ZeroMemory(pbNew, cbNew);
|
||||
|
||||
PBYTE pbBase = pbModule;
|
||||
PBYTE pbNext = pbBase
|
||||
+ inh.OptionalHeader.BaseOfCode
|
||||
+ inh.OptionalHeader.SizeOfCode
|
||||
+ inh.OptionalHeader.SizeOfInitializedData
|
||||
+ inh.OptionalHeader.SizeOfUninitializedData;
|
||||
if (pbBase < pbNext) {
|
||||
pbBase = pbNext;
|
||||
}
|
||||
DETOUR_TRACE(("pbBase = %p\n", pbBase));
|
||||
|
||||
PBYTE pbNewIid = FindAndAllocateNearBase(hProcess, pbModule, pbBase, cbNew);
|
||||
if (pbNewIid == NULL) {
|
||||
DETOUR_TRACE(("FindAndAllocateNearBase failed.\n"));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
PIMAGE_IMPORT_DESCRIPTOR piid = (PIMAGE_IMPORT_DESCRIPTOR)pbNew;
|
||||
DWORD_XX *pt;
|
||||
|
||||
DWORD obBase = (DWORD)(pbNewIid - pbModule);
|
||||
DWORD dwProtect = 0;
|
||||
|
||||
if (inh.IMPORT_DIRECTORY.VirtualAddress != 0) {
|
||||
// Read the old import directory if it exists.
|
||||
DETOUR_TRACE(("IMPORT_DIRECTORY perms=%x\n", dwProtect));
|
||||
|
||||
if (!ReadProcessMemory(hProcess,
|
||||
pbModule + inh.IMPORT_DIRECTORY.VirtualAddress,
|
||||
&piid[nDlls],
|
||||
nOldDlls * sizeof(IMAGE_IMPORT_DESCRIPTOR), &cbRead)
|
||||
|| cbRead < nOldDlls * sizeof(IMAGE_IMPORT_DESCRIPTOR)) {
|
||||
|
||||
DETOUR_TRACE(("ReadProcessMemory(imports) failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
}
|
||||
|
||||
for (n = 0; n < nDlls; n++) {
|
||||
HRESULT hrRet = StringCchCopyA((char*)pbNew + obStr, cbNew - obStr, plpDlls[n]);
|
||||
if (FAILED(hrRet)) {
|
||||
DETOUR_TRACE(("StringCchCopyA failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
// After copying the string, we patch up the size "??" bits if any.
|
||||
hrRet = ReplaceOptionalSizeA((char*)pbNew + obStr,
|
||||
cbNew - obStr,
|
||||
DETOURS_STRINGIFY(DETOURS_BITS_XX));
|
||||
if (FAILED(hrRet)) {
|
||||
DETOUR_TRACE(("ReplaceOptionalSizeA failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
DWORD nOffset = obTab + (sizeof(DWORD_XX) * (4 * n));
|
||||
piid[n].OriginalFirstThunk = obBase + nOffset;
|
||||
pt = ((DWORD_XX*)(pbNew + nOffset));
|
||||
pt[0] = IMAGE_ORDINAL_FLAG_XX + 1;
|
||||
pt[1] = 0;
|
||||
|
||||
nOffset = obTab + (sizeof(DWORD_XX) * ((4 * n) + 2));
|
||||
piid[n].FirstThunk = obBase + nOffset;
|
||||
pt = ((DWORD_XX*)(pbNew + nOffset));
|
||||
pt[0] = IMAGE_ORDINAL_FLAG_XX + 1;
|
||||
pt[1] = 0;
|
||||
piid[n].TimeDateStamp = 0;
|
||||
piid[n].ForwarderChain = 0;
|
||||
piid[n].Name = obBase + obStr;
|
||||
|
||||
obStr += PadToDword((DWORD)strlen(plpDlls[n]) + 1);
|
||||
}
|
||||
_Analysis_assume_(obStr <= cbNew);
|
||||
|
||||
#if 0
|
||||
for (i = 0; i < nDlls + nOldDlls; i++) {
|
||||
DETOUR_TRACE(("%8d. Look=%08x Time=%08x Fore=%08x Name=%08x Addr=%08x\n",
|
||||
i,
|
||||
piid[i].OriginalFirstThunk,
|
||||
piid[i].TimeDateStamp,
|
||||
piid[i].ForwarderChain,
|
||||
piid[i].Name,
|
||||
piid[i].FirstThunk));
|
||||
if (piid[i].OriginalFirstThunk == 0 && piid[i].FirstThunk == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!WriteProcessMemory(hProcess, pbNewIid, pbNew, obStr, NULL)) {
|
||||
DETOUR_TRACE(("WriteProcessMemory(iid) failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
DETOUR_TRACE(("obBaseBef = %08x..%08x\n",
|
||||
inh.IMPORT_DIRECTORY.VirtualAddress,
|
||||
inh.IMPORT_DIRECTORY.VirtualAddress + inh.IMPORT_DIRECTORY.Size));
|
||||
DETOUR_TRACE(("obBaseAft = %08x..%08x\n", obBase, obBase + obStr));
|
||||
|
||||
// If the file doesn't have an IAT_DIRECTORY, we create it...
|
||||
if (inh.IAT_DIRECTORY.VirtualAddress == 0) {
|
||||
inh.IAT_DIRECTORY.VirtualAddress = obBase;
|
||||
inh.IAT_DIRECTORY.Size = cbNew;
|
||||
}
|
||||
|
||||
inh.IMPORT_DIRECTORY.VirtualAddress = obBase;
|
||||
inh.IMPORT_DIRECTORY.Size = cbNew;
|
||||
|
||||
/////////////////////// Update the NT header for the new import directory.
|
||||
//
|
||||
if (!DetourVirtualProtectSameExecuteEx(hProcess, pbModule, inh.OptionalHeader.SizeOfHeaders,
|
||||
PAGE_EXECUTE_READWRITE, &dwProtect)) {
|
||||
DETOUR_TRACE(("VirtualProtectEx(inh) write failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
inh.OptionalHeader.CheckSum = 0;
|
||||
|
||||
if (!WriteProcessMemory(hProcess, pbModule, &idh, sizeof(idh), NULL)) {
|
||||
DETOUR_TRACE(("WriteProcessMemory(idh) failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
DETOUR_TRACE(("WriteProcessMemory(idh:%p..%p)\n", pbModule, pbModule + sizeof(idh)));
|
||||
|
||||
if (!WriteProcessMemory(hProcess, pbModule + idh.e_lfanew, &inh, sizeof(inh), NULL)) {
|
||||
DETOUR_TRACE(("WriteProcessMemory(inh) failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
DETOUR_TRACE(("WriteProcessMemory(inh:%p..%p)\n",
|
||||
pbModule + idh.e_lfanew,
|
||||
pbModule + idh.e_lfanew + sizeof(inh)));
|
||||
|
||||
if (!VirtualProtectEx(hProcess, pbModule, inh.OptionalHeader.SizeOfHeaders,
|
||||
dwProtect, &dwProtect)) {
|
||||
DETOUR_TRACE(("VirtualProtectEx(idh) restore failed: %d\n", GetLastError()));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
fSucceeded = TRUE;
|
||||
goto finish;
|
||||
}
|
|
@ -0,0 +1,154 @@
|
|||
#ifndef ARM64_ASM_H
|
||||
#define ARM64_ASM_H
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
Rd : 5,
|
||||
imm16 : 16,
|
||||
hw : 2,
|
||||
op1 : 6,
|
||||
op2 : 2,
|
||||
sf : 1;
|
||||
};
|
||||
} MOV;
|
||||
|
||||
#define IS_MOV(x) (x.hw == 0b00 && x.op1 == 0b100101 && x.op2 == 0b10 && x.sf == 0b1)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
imm26 : 26,
|
||||
op1 : 5,
|
||||
op2 : 1;
|
||||
};
|
||||
} B;
|
||||
|
||||
#define IS_B(x) (x.op1 == 0b00101 && x.op2 == 0b0)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
cond : 4,
|
||||
zero1 : 1,
|
||||
imm19 : 19,
|
||||
zero2 : 1,
|
||||
op : 7;
|
||||
};
|
||||
} B_COND;
|
||||
|
||||
#define IS_B_COND(x) (x.zero1 == 0b0 && x.zero2 == 0b0 && x.op == 0b0101010)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
imm26 : 26,
|
||||
op1 : 5,
|
||||
op2 : 1;
|
||||
};
|
||||
} BL;
|
||||
|
||||
#define IS_BL(x) (x.op1 == 0b00101 && x.op2 == 0b1)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
zero1 : 5,
|
||||
rn : 5,
|
||||
zero2 : 6,
|
||||
one : 5,
|
||||
op1 : 2,
|
||||
zero3 : 2,
|
||||
op2 : 7;
|
||||
};
|
||||
} BR;
|
||||
|
||||
#define IS_BR(x) (x.op2 == 0b1101011 && x.zero3 == 0b00 && x.op1 == 0b00 && x.one == 0b11111)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
Rd : 5,
|
||||
immHi : 19,
|
||||
op1 : 5,
|
||||
immLo : 2,
|
||||
op2 : 1;
|
||||
};
|
||||
} ADRP;
|
||||
|
||||
#define IS_ADRP(x) (x.op1 == 0b10000 && x.op2 == 0b1)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
Rt : 5,
|
||||
Rn : 5,
|
||||
imm12 : 12,
|
||||
op1 : 2,
|
||||
op2 : 2,
|
||||
op3 : 1,
|
||||
op4 : 3,
|
||||
size : 2;
|
||||
};
|
||||
} LDR;
|
||||
|
||||
#define IS_LDR(x) (x.op4 == 0b111 && x.op3 == 0b0 && x.op2 == 0b01 && x.op1 == 0b01)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
Rt : 5,
|
||||
Rn : 5,
|
||||
zero : 2,
|
||||
imm9 : 9,
|
||||
op1: 1,
|
||||
op2 : 2,
|
||||
op3 : 2,
|
||||
op4 : 1,
|
||||
op5 : 3,
|
||||
size : 2;
|
||||
};
|
||||
} LDUR;
|
||||
|
||||
#define IS_LDUR(x) (x.size = 0b11 && x.op5 == 0b111 && x.op4 == 0b0 && x.op3 == 0b01 && x.op2 == 0b01 && x.op1 == 0b0 && x.zero == 0b00)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
Rd : 5,
|
||||
Rn : 5,
|
||||
imm12 : 12,
|
||||
shift : 2,
|
||||
op1 : 5,
|
||||
S : 1,
|
||||
op2 : 1,
|
||||
sf : 1;
|
||||
};
|
||||
} ADD;
|
||||
|
||||
#define IS_ADD(x) (x.sf == 0b1 && x.op2 == 0b0 && x.S == 0b0 && x.op1 == 0b10001 && x.shift == 0)
|
||||
|
||||
typedef union {
|
||||
ULONG OP;
|
||||
struct {
|
||||
ULONG
|
||||
op1 : 2,
|
||||
zero1 : 3,
|
||||
imm16 : 16,
|
||||
zero2 : 3,
|
||||
op2 : 8;
|
||||
};
|
||||
} SVC;
|
||||
|
||||
#define IS_SVC(x) (x.op1 == 0x01 && x.zero1 == 0b000 && x.zero2 == 0b000 && x.op2 == 0b11010100)
|
||||
|
||||
#endif /* ARM64_ASM_H */
|
|
@ -20,15 +20,271 @@
|
|||
// Variouse generic hooking helpers
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
#include "common/arm64_asm.h"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Hook_GetXipTarget
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX void* Hook_GetXipTarget(void* ptr, int mode)
|
||||
{
|
||||
void* addr = ptr;
|
||||
|
||||
ADRP adrp;
|
||||
adrp.OP = ((ULONG*)ptr)[0];
|
||||
if (!IS_ADRP(adrp) || adrp.Rd != 16) // adrp x16, #0x4c000
|
||||
return ptr;
|
||||
|
||||
LONG delta = (adrp.immHi << 2 | adrp.immLo) << 12;
|
||||
|
||||
if (mode == 0) // default import jump mode
|
||||
{
|
||||
LDR ldr;
|
||||
ldr.OP = ((ULONG*)ptr)[1];
|
||||
if (!IS_LDR(ldr) || ldr.Rn != 16 || ldr.Rt != 16) // ldr x16, [x16, #0xa8]
|
||||
return ptr;
|
||||
|
||||
delta += (ldr.imm12 << ldr.size);
|
||||
|
||||
addr = *((void**)(((UINT_PTR)ptr & ~0xFFF) + delta));
|
||||
}
|
||||
else if (mode == 1)
|
||||
{
|
||||
ADD add;
|
||||
add.OP = ((ULONG*)ptr)[1];
|
||||
if(!IS_ADD(add) || add.Rn != 16 || add.Rd != 16)
|
||||
return ptr;
|
||||
|
||||
delta += (add.imm12 << add.shift);
|
||||
|
||||
addr = ((void*)(((UINT_PTR)ptr & ~0xFFF) + delta));
|
||||
}
|
||||
//else if (mode == 2)
|
||||
//{
|
||||
// LDUR ldur;
|
||||
// ldur.OP = ((ULONG*)ptr)[1];
|
||||
// if (!IS_LDUR(ldur) || ldur.Rn != 16 || ldur.Rt != 16) // ldur x16, [x16, #0xa9]
|
||||
// return ptr;
|
||||
//
|
||||
// delta += (ldr.imm12 << ldr.size);
|
||||
//
|
||||
// addr = *((void**)(((UINT_PTR)ptr & ~0xFFF) + delta));
|
||||
//}
|
||||
|
||||
BR br;
|
||||
br.OP = ((ULONG*)ptr)[2];
|
||||
if (!IS_BR(br) || br.rn != 16) // br x16
|
||||
return ptr;
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Hook_GetFFSTarget
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX void* Hook_GetFFSTarget(UCHAR* SourceFunc)
|
||||
{
|
||||
//
|
||||
// if we first have a jump to the FFS sequence, follow it
|
||||
//
|
||||
|
||||
if (*(UCHAR *)SourceFunc == 0x48 && // rex.W
|
||||
*(USHORT *)((UCHAR *)SourceFunc + 1) == 0x25FF) { // jmp QWORD PTR [rip+xx xx xx xx];
|
||||
// 48 FF 25 is same as FF 25
|
||||
SourceFunc = (UCHAR *)SourceFunc + 1;
|
||||
}
|
||||
|
||||
if (*(USHORT *)SourceFunc == 0x25FF) { // jmp QWORD PTR [rip+xx xx xx xx];
|
||||
|
||||
LONG diff = *(LONG *)((ULONG_PTR)SourceFunc + 2);
|
||||
ULONG_PTR target = (ULONG_PTR)SourceFunc + 6 + diff;
|
||||
|
||||
SourceFunc = (void *)*(ULONG_PTR *)target;
|
||||
}
|
||||
|
||||
//
|
||||
// check if the function is a FFS sequence and if so
|
||||
// return the address of the target native function
|
||||
//
|
||||
|
||||
//
|
||||
// Standard FFS Sequence:
|
||||
//
|
||||
// 48 8B FF mov rdi,rdi
|
||||
// 55 push rbp
|
||||
// 48 8B EC mov rbp,rsp
|
||||
// 5D pop rbp
|
||||
// 90 nop
|
||||
// E9 02481800 jmp #__GSHandlerCheck_SEH_AMD64+138h (07FFB572B8190h)
|
||||
//
|
||||
|
||||
if (*(UCHAR *)SourceFunc == 0x48 && // mov rdi,rdi
|
||||
*(USHORT *)((UCHAR *)SourceFunc + 1) == 0xFF8B)
|
||||
SourceFunc = (UCHAR *)SourceFunc + 3;
|
||||
if (*(UCHAR *)SourceFunc == 0x55) // push rbp
|
||||
SourceFunc = (UCHAR *)SourceFunc + 1;
|
||||
if (*(UCHAR *)SourceFunc == 0x48 && // mov rbp,rsp
|
||||
*(USHORT *)((UCHAR *)SourceFunc + 1) == 0xEC8B)
|
||||
SourceFunc = (UCHAR *)SourceFunc + 3;
|
||||
if (*(UCHAR *)SourceFunc == 0x5D) // pop rbp
|
||||
SourceFunc = (UCHAR *)SourceFunc + 1;
|
||||
if (*(UCHAR *)SourceFunc == 0x90) // nop
|
||||
SourceFunc = (UCHAR *)SourceFunc + 1;
|
||||
if (*(UCHAR *)SourceFunc == 0xE9) { // jmp 07FFB572B8190h
|
||||
|
||||
LONG diff = *(LONG*)(SourceFunc + 1);
|
||||
return (UCHAR*)SourceFunc + 5 + diff;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Hook_GetSysCallIndex
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX USHORT Hook_GetSysCallIndex(UCHAR* SourceFunc)
|
||||
{
|
||||
|
||||
//
|
||||
// Standard syscall fucntion
|
||||
//
|
||||
// 4C 8B D1 mov r10, rcx
|
||||
// B8 19000000 mov eax, 0x19
|
||||
// F6 04 25 0803FE7F 01 test byte [0x7ffe0308], 0x1
|
||||
// 75 03 jne +5
|
||||
//
|
||||
// 0F 05 syscall
|
||||
// C3 ret
|
||||
//
|
||||
// CD 2E int 0x2e
|
||||
// C3 ret
|
||||
//
|
||||
|
||||
USHORT index = -1;
|
||||
|
||||
if (*(UCHAR *)SourceFunc == 0x4C && // mov r10,rcx
|
||||
*(USHORT *)((UCHAR *)SourceFunc + 1) == 0xD18B)
|
||||
SourceFunc = (UCHAR *)SourceFunc + 3;
|
||||
|
||||
if (*(UCHAR *)SourceFunc == 0xB8) { // mov eax, 0x55
|
||||
|
||||
LONG value = *(LONG*)(SourceFunc + 1);
|
||||
if((value & 0xFFFF0000) == 0)
|
||||
index = (SHORT)value;
|
||||
}
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Hook_GetSysCallFunc
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX ULONG Hook_GetSysCallFunc(ULONG* aCode, void** pHandleStubHijack)
|
||||
{
|
||||
// 0: ff4300d1 sub sp, sp, #0x10
|
||||
if (aCode[0] != 0xd10043ff)
|
||||
return -1;
|
||||
|
||||
// 1: 10000090 adrp x16, #0xffffffffffffe000 ; data_180165740
|
||||
// 2: 10021d91 add x16, x16, #0x740 ; data_180165740
|
||||
|
||||
// 3: f00300f9 str x16, [sp]
|
||||
if (aCode[3] != 0xf90003f0)
|
||||
return -1;
|
||||
|
||||
// 4: e10000d4 svc #0x07
|
||||
SVC svc;
|
||||
svc.OP = aCode[4];
|
||||
if (!IS_SVC(svc))
|
||||
return -1;
|
||||
|
||||
// 5: e90340f9 ldr x9, [sp]
|
||||
if (aCode[5] != 0xf94003e9)
|
||||
return -1;
|
||||
|
||||
// 6: 10000090 adrp x16, #0xffffffffffffe000 ; data_180165740
|
||||
// 7: 10021d91 add x16, x16, #0x740 ; data_180165740
|
||||
|
||||
// 8: 100209eb subs x16, x16, x9
|
||||
if (aCode[8] != 0xeb090210)
|
||||
return -1;
|
||||
|
||||
// 9: ff430091 add sp, sp, #0x10
|
||||
if (aCode[9] != 0x910043ff)
|
||||
return -1;
|
||||
|
||||
// 10: c1eaff54 b.ne #0xffffffffffffe520 ; HandleStubHijack
|
||||
|
||||
B_COND b_cond;
|
||||
b_cond.OP = aCode[10];
|
||||
if (!IS_B_COND(b_cond) && b_cond.cond != 1)
|
||||
return -1;
|
||||
if (pHandleStubHijack) {
|
||||
LONG offset = b_cond.imm19 << 2;
|
||||
if (offset & (1 << 20)) // if this is negative
|
||||
offset |= 0xFFF00000; // make it properly negative
|
||||
*pHandleStubHijack = (void*)((UINT_PTR)(aCode + 10) + offset);
|
||||
}
|
||||
|
||||
// 11: 090080d2 movz x9, #0
|
||||
if (aCode[11] != 0xd2800009)
|
||||
return -1;
|
||||
|
||||
// 12: c0035fd6 ret
|
||||
if (aCode[12] != 0xd65f03c0)
|
||||
return -1;
|
||||
|
||||
return svc.imm16;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Hook_CheckChromeHook
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
#define MAX_FUNC_OPS (0x80/4)
|
||||
ULONGLONG* findChromeTarget(unsigned char* addr)
|
||||
{
|
||||
int i, j;
|
||||
ULONGLONG target;
|
||||
ULONGLONG * ChromeTarget = NULL;
|
||||
if (!addr) return NULL;
|
||||
// look for ADRP to soem register followed (not imminetly) by an LDR for and with the same register
|
||||
for (i = 0; i < MAX_FUNC_OPS && !ChromeTarget; i++) {
|
||||
ADRP adrp;
|
||||
adrp.OP = ((ULONG*)addr)[i];
|
||||
if (IS_ADRP(adrp)) {
|
||||
for (j = i + 1; j < MAX_FUNC_OPS && !ChromeTarget; j++) {
|
||||
LDR ldr;
|
||||
ldr.OP = ((ULONG*)addr)[j];
|
||||
if (IS_LDR(ldr) && ldr.Rn == adrp.Rd) { // ldr.Rt can be different idealy x0 or its same as adrp.Rd
|
||||
LONG delta = (adrp.immHi << 2 | adrp.immLo) << 12;
|
||||
delta += (ldr.imm12 << ldr.size);
|
||||
target = ((((UINT_PTR) & ((ULONG*)addr)[i]) & ~0xFFF) + delta);
|
||||
ChromeTarget = *(ULONGLONG **)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ChromeTarget;
|
||||
}
|
||||
#elif _WIN64
|
||||
#define MAX_FUNC_SIZE 0x76
|
||||
ULONGLONG * findChromeTarget(unsigned char* addr)
|
||||
{
|
||||
|
@ -97,7 +353,20 @@ _FX void* Hook_CheckChromeHook(void *SourceFunc)
|
|||
{
|
||||
if (!SourceFunc)
|
||||
return NULL;
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
ULONG *func = (ULONG *)SourceFunc;
|
||||
ULONGLONG *chrome64Target = NULL;
|
||||
|
||||
if (func[0] == 0x58000050 // ldr xip0,ZwCreateFile+8h (07FF99A6FF8C8h)
|
||||
&& func[1] == 0xD61F0200) { // ldr br xip0
|
||||
|
||||
ULONGLONG *longlongs = *(ULONGLONG **)&func[2];
|
||||
chrome64Target = findChromeTarget((unsigned char *)longlongs);
|
||||
}
|
||||
if (chrome64Target) {
|
||||
SourceFunc = chrome64Target;
|
||||
}
|
||||
#elif _WIN64
|
||||
UCHAR *func = (UCHAR *)SourceFunc;
|
||||
ULONGLONG *chrome64Target = NULL;
|
||||
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#ifndef _MY_VERSION_H
|
||||
#define _MY_VERSION_H
|
||||
|
||||
#define MY_VERSION_BINARY 5,59,2
|
||||
#define MY_VERSION_STRING "5.59.2"
|
||||
#define MY_VERSION_COMPAT "5.58.0" // this refers to the driver ABI compatibility
|
||||
#define MY_VERSION_BINARY 5,60,0
|
||||
#define MY_VERSION_STRING "5.60.0"
|
||||
#define MY_ABI_VERSION 0x56000
|
||||
|
||||
// These #defines are used by either Resource Compiler or NSIS installer
|
||||
#define SBIE_INSTALLER_PATH "..\\Bin\\"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2020-2021 DavidXanatos, xanasoft.com
|
||||
* Copyright 2020-2022 DavidXanatos, xanasoft.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -385,4 +385,34 @@ typedef struct _LDR_DATA_TABLE_ENTRY
|
|||
__inline struct _PEB * NtCurrentPeb() { return NtCurrentTeb()->ProcessEnvironmentBlock; }
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Gets a pointer to the PEB for x86, x64, ARM, ARM64, IA64, Alpha AXP, MIPS, and PowerPC.
|
||||
|
||||
// This relies on MS-compiler intrinsics.
|
||||
// It has only been tested on x86/x64/ARMv7.
|
||||
|
||||
inline PEB* NtCurrentPeb() {
|
||||
#ifdef _M_X64
|
||||
return (PEB*)(__readgsqword(0x60));
|
||||
#elif _M_IX86
|
||||
return (PEB*)(__readfsdword(0x30));
|
||||
#elif _M_ARM
|
||||
return *(PEB**)(_MoveFromCoprocessor(15, 0, 13, 0, 2) + 0x30);
|
||||
#elif _M_ARM64
|
||||
return *(PEB**)(__getReg(18) + 0x60); // TEB in x18
|
||||
#elif _M_IA64
|
||||
return *(PEB**)((size_t)_rdteb() + 0x60); // TEB in r13
|
||||
#elif _M_ALPHA
|
||||
return *(PEB**)((size_t)_rdteb() + 0x30); // TEB pointer returned from callpal 0xAB
|
||||
#elif _M_MIPS
|
||||
return *(PEB**)((*(size_t*)(0x7ffff030)) + 0x30); // TEB pointer located at 0x7ffff000 (PCR in user-mode) + 0x30
|
||||
#elif _M_PPC
|
||||
// winnt.h of the period uses __builtin_get_gpr13() or __gregister_get(13) depending on _MSC_VER
|
||||
return *(PEB**)(__gregister_get(13) + 0x30); // TEB in r13
|
||||
#else
|
||||
#error "This architecture is currently unsupported"
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _XEB_
|
|
@ -49,7 +49,11 @@ static int NetFw_IpCmp(const void * l, const void * r)
|
|||
NETFW_RULE* NetFw_AllocRule(POOL* pool, int MatchLevel)
|
||||
{
|
||||
#ifdef KERNEL_MODE
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
NETFW_RULE* rule = ExAllocatePool2(POOL_FLAG_NON_PAGED, sizeof(NETFW_RULE), tzuk);
|
||||
#else
|
||||
NETFW_RULE* rule = ExAllocatePoolWithTag(NonPagedPool, sizeof(NETFW_RULE), tzuk);
|
||||
#endif
|
||||
#else
|
||||
NETFW_RULE* rule = Pool_Alloc(pool, sizeof(NETFW_RULE));
|
||||
#endif
|
||||
|
@ -95,7 +99,11 @@ typedef struct _NETFW_PORTS
|
|||
void NetFw_RuleAddPortRange(rbtree_t* tree, USHORT PortBegin, USHORT PortEnd, POOL* pool)
|
||||
{
|
||||
#ifdef KERNEL_MODE
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
NETFW_PORTS* node = ExAllocatePool2(POOL_FLAG_NON_PAGED, sizeof(NETFW_PORTS), tzuk);
|
||||
#else
|
||||
NETFW_PORTS* node = ExAllocatePoolWithTag(NonPagedPool, sizeof(NETFW_PORTS), tzuk);
|
||||
#endif
|
||||
#else
|
||||
NETFW_PORTS* node = Pool_Alloc(pool, sizeof(NETFW_PORTS));
|
||||
#endif
|
||||
|
@ -183,7 +191,11 @@ typedef struct _NETFW_IPS
|
|||
void NetFw_RuleAddIpRange(rbtree_t* tree, IP_ADDRESS* IpBegin, IP_ADDRESS* IpEnd, POOL* pool)
|
||||
{
|
||||
#ifdef KERNEL_MODE
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
NETFW_IPS* node = ExAllocatePool2(POOL_FLAG_NON_PAGED, sizeof(NETFW_IPS), tzuk);
|
||||
#else
|
||||
NETFW_IPS* node = ExAllocatePoolWithTag(NonPagedPool, sizeof(NETFW_IPS), tzuk);
|
||||
#endif
|
||||
#else
|
||||
NETFW_IPS* node = Pool_Alloc(pool, sizeof(NETFW_IPS));
|
||||
#endif
|
||||
|
|
|
@ -993,6 +993,16 @@ typedef NTSTATUS (*P_NtProtectVirtualMemory)(
|
|||
IN ULONG NewProtect,
|
||||
OUT PULONG OldProtect);
|
||||
|
||||
typedef NTSTATUS (*P_NtAllocateVirtualMemoryEx)(
|
||||
_In_ HANDLE ProcessHandle,
|
||||
_Inout_ _At_ (*BaseAddress, _Readable_bytes_ (*RegionSize) _Writable_bytes_ (*RegionSize) _Post_readable_byte_size_ (*RegionSize)) PVOID* BaseAddress,
|
||||
_Inout_ PSIZE_T RegionSize,
|
||||
_In_ ULONG AllocationType,
|
||||
_In_ ULONG PageProtection,
|
||||
_Inout_updates_opt_(ExtendedParameterCount) PMEM_EXTENDED_PARAMETER ExtendedParameters,
|
||||
_In_ ULONG ExtendedParameterCount
|
||||
);
|
||||
|
||||
typedef NTSTATUS (*P_NtWriteFile)(
|
||||
IN HANDLE FileHandle,
|
||||
IN HANDLE Event OPTIONAL,
|
||||
|
|
|
@ -25,6 +25,11 @@
|
|||
#include "lock.h"
|
||||
#include "defines.h"
|
||||
|
||||
#ifndef KERNEL_MODE
|
||||
#ifdef _M_ARM64EC
|
||||
P_NtAllocateVirtualMemoryEx __sys_NtAllocateVirtualMemoryEx = NULL;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Parameters
|
||||
|
@ -380,12 +385,31 @@ ALIGNED void *Pool_Alloc_Mem(ULONG size, ULONG tag)
|
|||
// size parameter will be a multiple of POOL_PAGE_SIZE, and this routine
|
||||
// must return memory allocated with page-alignment
|
||||
#ifdef KERNEL_MODE
|
||||
ptr = ExAllocatePoolWithTag(PagedPool, size, tag);
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
ptr = ExAllocatePool2(POOL_FLAG_PAGED, size, tag);
|
||||
#else
|
||||
//ptr = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN,
|
||||
ULONG_PTR RegionSize = size;
|
||||
NtAllocateVirtualMemory(NtCurrentProcess(), &ptr, 0, &RegionSize, MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN,
|
||||
((UCHAR)tag == 0xFF ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE));
|
||||
ptr = ExAllocatePoolWithTag(PagedPool, size, tag);
|
||||
#endif
|
||||
#else
|
||||
SIZE_T RegionSize = size;
|
||||
#ifdef _M_ARM64EC
|
||||
if ((UCHAR)tag == 0xEC) {
|
||||
|
||||
//
|
||||
// this pool is designated for native ARM code in a EC process
|
||||
//
|
||||
|
||||
MEM_EXTENDED_PARAMETER Parameter = { 0 };
|
||||
Parameter.Type = MemExtendedParameterAttributeFlags;
|
||||
Parameter.ULong64 = MEM_EXTENDED_PARAMETER_EC_CODE;
|
||||
|
||||
__sys_NtAllocateVirtualMemoryEx(NtCurrentProcess(), &ptr, &RegionSize, MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN,
|
||||
PAGE_EXECUTE_READWRITE, &Parameter, 1);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
NtAllocateVirtualMemory(NtCurrentProcess(), &ptr, 0, &RegionSize, MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN,
|
||||
((UCHAR)tag == 0xFF ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE));
|
||||
#endif
|
||||
// printf("Allocated %d bytes at %08X\n", size, ptr);
|
||||
|
||||
|
@ -513,8 +537,13 @@ ALIGNED POOL *Pool_CreateTagged(ULONG tag)
|
|||
|
||||
#elif defined(KERNEL_MODE)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
pool->lock = ExAllocatePool2(
|
||||
POOL_FLAG_NON_PAGED, sizeof(ERESOURCE), tag);
|
||||
#else
|
||||
pool->lock = ExAllocatePoolWithTag(
|
||||
NonPagedPool, sizeof(ERESOURCE), tag);
|
||||
#endif
|
||||
if (! pool->lock) {
|
||||
Pool_Free_Mem(page, tag);
|
||||
return NULL;
|
||||
|
|
|
@ -105,7 +105,11 @@ NTSTATUS Stream_Open(
|
|||
|
||||
*out_stream = NULL;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
|
||||
stream = ExAllocatePool2(POOL_FLAG_PAGED, PAGE_SIZE, tzuk);
|
||||
#else
|
||||
stream = ExAllocatePoolWithTag(PagedPool, PAGE_SIZE, tzuk);
|
||||
#endif
|
||||
if (! stream)
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
|
||||
|
|
|
@ -2595,9 +2595,11 @@ __declspec(dllimport) NTSTATUS __stdcall NtRaiseHardError(
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
#define NtCurrentPeb() (*((ULONG_PTR*)(__getReg(18) + 0x60)))
|
||||
#elif _WIN64
|
||||
#define NtCurrentPeb() ((ULONG_PTR)__readgsqword(0x60))
|
||||
#else ! _WIN64
|
||||
#else // _M_X86
|
||||
#define NtCurrentPeb() ((ULONG_PTR)__readfsdword(0x30))
|
||||
#endif _WIN64
|
||||
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64EC">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +17,14 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64EC">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -39,6 +55,20 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -53,6 +83,20 @@
|
|||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -62,21 +106,45 @@
|
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64ec.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64ec.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
<LibraryPath>$(WindowsSDK_LibraryPath_x86)</LibraryPath>
|
||||
<LinkIncremental />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
<LibraryPath>$(WindowsSDK_LibraryPath_x64)</LibraryPath>
|
||||
<LinkIncremental />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
<LinkIncremental />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
<LinkIncremental />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
|
@ -88,6 +156,14 @@
|
|||
<TargetName>SbieDll</TargetName>
|
||||
<LibraryPath>$(WindowsSDK_LibraryPath_x64)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
<TargetName>SbieDll</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -134,6 +210,55 @@
|
|||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_WIN64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<PreprocessorDefinitions>WITH_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ntdll.lib;uuid.lib;kernel32.lib</AdditionalDependencies>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<EntryPointSymbol>DllMain</EntryPointSymbol>
|
||||
<ModuleDefinitionFile>SboxDll64.def</ModuleDefinitionFile>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_ARM64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<PreprocessorDefinitions>WITH_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ntdll.lib;uuid.lib;kernel32.lib</AdditionalDependencies>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<EntryPointSymbol>DllMain</EntryPointSymbol>
|
||||
<ModuleDefinitionFile>SboxDll64.def</ModuleDefinitionFile>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_ARM64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
|
@ -175,60 +300,188 @@
|
|||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_WIN64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">
|
||||
<ClCompile>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ntdll.lib;uuid.lib;kernel32.lib</AdditionalDependencies>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<EntryPointSymbol>DllMain</EntryPointSymbol>
|
||||
<ModuleDefinitionFile>SboxDll64.def</ModuleDefinitionFile>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_ARM64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ntdll.lib;uuid.lib;kernel32.lib</AdditionalDependencies>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<EntryPointSymbol>DllMain</EntryPointSymbol>
|
||||
<ModuleDefinitionFile>SboxDll64.def</ModuleDefinitionFile>
|
||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>BUILD_UTILITY_PASS2;MY_ARM64_FLAG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\common\Detours\detours.cpp" />
|
||||
<ClCompile Include="..\..\common\Detours\disasm.cpp" />
|
||||
<ClCompile Include="..\..\common\Detours\disolarm.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolarm64.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolx64.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolx86.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\dllimport.c" />
|
||||
<ClCompile Include="..\..\common\hook_util.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\map.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\str_util.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\list.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\my_ntdll.c">
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">Disabled</Optimization>
|
||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">Disabled</Optimization>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\netfw.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\pattern.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\pool.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\rbtree.c" />
|
||||
<ClCompile Include="..\..\common\stream.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="advapi.c">
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">false</ShowIncludes>
|
||||
</ClCompile>
|
||||
<ClCompile Include="callsvc.c" />
|
||||
<ClCompile Include="com.c" />
|
||||
|
@ -248,55 +501,91 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_dir.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_init.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_link.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_misc.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_copy.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_pipe.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_recovery.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_snapshots.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="gdi.c" />
|
||||
<ClCompile Include="gui.c" />
|
||||
|
@ -319,7 +608,11 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="iphlp.c" />
|
||||
<ClCompile Include="ipstore_enum.cpp" />
|
||||
|
@ -329,26 +622,42 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="key_merge.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="key_util.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ldr.c" />
|
||||
<ClCompile Include="ldr_init.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lowlevel_inject.c" />
|
||||
<ClCompile Include="lsa.c" />
|
||||
|
@ -367,37 +676,61 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="scm_event.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="scm_misc.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="scm_msi.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="scm_notify.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="scm_query.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="secure.c" />
|
||||
<ClCompile Include="setup.c" />
|
||||
|
@ -409,7 +742,11 @@
|
|||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">false</ShowIncludes>
|
||||
<ShowIncludes Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">false</ShowIncludes>
|
||||
</ClCompile>
|
||||
<ClCompile Include="taskbar.c" />
|
||||
<ClCompile Include="terminal.c" />
|
||||
|
@ -422,16 +759,31 @@
|
|||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">ml64 -c -Cx -nologo -D_WIN64 -D_M_ARM64EC -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">ml64 -c -Cx -nologo -D_WIN64 -D_M_ARM64EC -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\apps\com\common.h" />
|
||||
<ClInclude Include="..\..\common\arm64_asm.h" />
|
||||
<ClInclude Include="..\..\common\Detours\detours.h" />
|
||||
<ClInclude Include="..\..\common\Detours\detver.h" />
|
||||
<ClInclude Include="..\..\common\dllimport.h" />
|
||||
<ClInclude Include="..\..\common\map.h" />
|
||||
<ClInclude Include="..\..\common\my_version.h" />
|
||||
|
@ -475,13 +827,25 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x64</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:ARM64x</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:ARM64</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x64</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:ARM64x</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:ARM64</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\common\NtCRT\x86\ntdll.def">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x86</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x86</Command>
|
||||
|
@ -493,29 +857,207 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="util_64.asm">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<CustomBuild Include="util_arm.asm">
|
||||
<FileType>Document</FileType>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">armasm64 -machine arm64ec -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">armasm64 -machine arm64ec -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">armasm64 -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">armasm64 -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="util_EC.asm">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">armasm64 -machine arm64ec -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">armasm64 -machine arm64ec -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\atomics.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\chkstk_arm64ec.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\chpev2_support.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\ecsecgs.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandlerseh_amd64.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandlerseh_arm64ec.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandler_amd64.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandler_arm64ec.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gs_cookie.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gs_report.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_check_arm64ec.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_dispatch.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_support.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\icall_helper_arm64ec.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\loadcfg.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\eh3valid_user.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup2.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup3.obj">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64EC'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</Object>
|
||||
|
|
|
@ -232,9 +232,30 @@
|
|||
<ClCompile Include="file_snapshots.c">
|
||||
<Filter>file</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\detours.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disasm.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolarm.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolarm64.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolx64.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\Detours\disolx86.cpp">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\dllimport.c">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\hook_util.c">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="advapi.h" />
|
||||
|
@ -323,9 +344,18 @@
|
|||
<ClInclude Include="handle.h">
|
||||
<Filter>obj</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\common\Detours\detours.h">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\common\Detours\detver.h">
|
||||
<Filter>common\Detours</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\common\dllimport.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\common\arm64_asm.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="resource.rc" />
|
||||
|
@ -387,8 +417,17 @@
|
|||
<Filter Include="obj">
|
||||
<UniqueIdentifier>{05955a21-494a-4624-854e-d7c9b1e33401}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="common\ntdll">
|
||||
<UniqueIdentifier>{3306e464-8b2d-48cb-8d8f-0d222f17e31d}</UniqueIdentifier>
|
||||
<Filter Include="common\Detours">
|
||||
<UniqueIdentifier>{2533049a-777d-4956-aa94-b09dee0483c0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="common\NtCRT">
|
||||
<UniqueIdentifier>{5a5af632-b07e-4e18-b7c8-f8be4f6c646f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="common\NtCRT\libcmt">
|
||||
<UniqueIdentifier>{854b7879-8bf9-4399-a5d9-5d1be7278d4b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="common\NtCRT\ntdll">
|
||||
<UniqueIdentifier>{6dd7d86a-d2ee-465a-897e-63540d7fc47f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -400,21 +439,76 @@
|
|||
<CustomBuild Include="util_asm.asm">
|
||||
<Filter>hook</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\common\NtCRT\x64\ntdll.def" />
|
||||
<CustomBuild Include="..\..\common\NtCRT\x86\ntdll.def" />
|
||||
<CustomBuild Include="util_arm.asm">
|
||||
<Filter>hook</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\common\NtCRT\x64\ntdll.def">
|
||||
<Filter>common\NtCRT</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\common\NtCRT\x86\ntdll.def">
|
||||
<Filter>common\NtCRT</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="util_EC.asm">
|
||||
<Filter>hook</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\chkstk_arm64ec.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\chpev2_support.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gs_cookie.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_check_arm64ec.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_dispatch.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\guard_support.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\icall_helper_arm64ec.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\loadcfg.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandlerseh_arm64ec.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandlerseh_amd64.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandler_arm64ec.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gshandler_amd64.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\ecsecgs.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\gs_report.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\eh3valid_user.obj">
|
||||
<Filter>common\ntdll</Filter>
|
||||
<Filter>common\NtCRT\ntdll</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup.obj">
|
||||
<Filter>common\ntdll</Filter>
|
||||
<Filter>common\NtCRT\ntdll</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup2.obj">
|
||||
<Filter>common\ntdll</Filter>
|
||||
<Filter>common\NtCRT\ntdll</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\x86\ntdll\exsup3.obj">
|
||||
<Filter>common\ntdll</Filter>
|
||||
<Filter>common\NtCRT\ntdll</Filter>
|
||||
</Object>
|
||||
<Object Include="..\..\common\NtCRT\a64ec\libcmt\atomics.obj">
|
||||
<Filter>common\NtCRT\libcmt</Filter>
|
||||
</Object>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -23,6 +23,7 @@ SbieApi_GetFileName=_SbieApi_GetFileName@12
|
|||
SbieApi_GetHomePath=_SbieApi_GetHomePath@16
|
||||
SbieApi_GetUnmountHive=_SbieApi_GetUnmountHive@4
|
||||
SbieApi_GetVersion=_SbieApi_GetVersion@4
|
||||
SbieApi_GetVersionEx=_SbieApi_GetVersionEx@8
|
||||
;;; SbieApi_GetWork=_SbieApi_GetWork@12
|
||||
SbieApi_GetMessage=_SbieApi_GetMessage@24
|
||||
|
||||
|
|
|
@ -22,9 +22,10 @@
|
|||
|
||||
#define NOGDI
|
||||
#include "dll.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include "common\pattern.h"
|
||||
|
||||
#include "common\arm64_asm.h"
|
||||
#include "core/drv/api_defs.h"
|
||||
#include "core/low/lowdata.h"
|
||||
|
||||
|
@ -40,6 +41,11 @@ NTSTATUS SbieApi_QueryVirtualMemory(HANDLE hProcess, DWORD64 BaseAddress, MEMORY
|
|||
BOOLEAN Win32_HookWin32WoW64();
|
||||
#endif
|
||||
|
||||
#ifdef _M_ARM64EC
|
||||
ULONG Hook_GetSysCallFunc(ULONG* aCode, void** pHandleStubHijack);
|
||||
ULONG* SbieDll_FindFirstSysCallFunc(ULONG* aCode, void** pHandleStubHijack);
|
||||
void* SbieDll_GetEcExitThunk(void* HandleStubHijack);
|
||||
#endif
|
||||
|
||||
ULONG SbieDll_GetSysCallOffset(const ULONG *SyscallPtr, ULONG syscall_index);
|
||||
|
||||
|
@ -82,6 +88,55 @@ _FX BOOLEAN Win32_HookWin32SysCalls(HMODULE win32u_base)
|
|||
SyscallPtr = (ULONG *)(syscall_data
|
||||
+ sizeof(ULONG)); // size of buffer
|
||||
|
||||
#ifdef _M_ARM64EC
|
||||
|
||||
ULONG* aCode = SbieDll_FindFirstSysCallFunc((ULONG*)win32u_base, NULL);
|
||||
if (aCode == NULL) {
|
||||
HeapFree(GetProcessHeap(), 0, syscall_data);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (ULONG pos = 0; pos < 128; aCode++, pos += 4) {
|
||||
|
||||
SyscallNum = Hook_GetSysCallFunc(aCode, NULL);
|
||||
if (SyscallNum == -1)
|
||||
continue;
|
||||
|
||||
if (SbieDll_GetSysCallOffset(SyscallPtr, SyscallNum)) {
|
||||
|
||||
RegionBase = aCode;
|
||||
|
||||
RegionSize = 16;
|
||||
|
||||
SBIELOW_CALL(NtProtectVirtualMemory)(
|
||||
NtCurrentProcess(), &RegionBase, &RegionSize,
|
||||
PAGE_EXECUTE_READWRITE, &OldProtect);
|
||||
|
||||
MOV mov;
|
||||
mov.OP = 0xD2800011; // mov x17, #0xFFFF
|
||||
mov.imm16 = (USHORT)SyscallNum;
|
||||
*aCode++ = mov.OP;
|
||||
*aCode++ = 0x18000048; // ldr w8, 8
|
||||
*aCode++ = 0xD61F0100; // br x8
|
||||
*(ULONG*)aCode = (ULONG)(ULONG_PTR)SystemServiceAsm;
|
||||
|
||||
SBIELOW_CALL(NtFlushInstructionCache)(
|
||||
NtCurrentProcess(), RegionBase, (ULONG)RegionSize);
|
||||
|
||||
SBIELOW_CALL(NtProtectVirtualMemory)(
|
||||
NtCurrentProcess(), &RegionBase, &RegionSize,
|
||||
OldProtect, &OldProtect);
|
||||
|
||||
}
|
||||
|
||||
//if (aCode[13] != 0 || aCode[14] != 0 || aCode[15] != 0 || aCode[16] != 0)
|
||||
// break;
|
||||
//aCode += (13 + 3 + 3 + 1);
|
||||
aCode += 16;
|
||||
pos = 0; // reset
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
while (SyscallPtr[0] || SyscallPtr[1]) {
|
||||
|
||||
|
@ -97,7 +152,9 @@ _FX BOOLEAN Win32_HookWin32SysCalls(HMODULE win32u_base)
|
|||
//
|
||||
RegionBase = ZwXxxPtr;
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
RegionSize = 16;
|
||||
#elif _WIN64
|
||||
RegionSize = 14;
|
||||
#else ! _WIN64
|
||||
RegionSize = 10;
|
||||
|
@ -118,7 +175,23 @@ _FX BOOLEAN Win32_HookWin32SysCalls(HMODULE win32u_base)
|
|||
|
||||
SyscallNum = SyscallPtr[0];
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
|
||||
ULONG* aCode = (ULONG*)ZwXxxPtr;
|
||||
|
||||
MOV mov;
|
||||
mov.OP = 0xD2800011; // mov x17, #0xFFFF
|
||||
mov.imm16 = (USHORT)SyscallNum;
|
||||
*aCode++ = mov.OP;
|
||||
*aCode++ = 0x18000048; // ldr w8, 8
|
||||
*aCode++ = 0xD61F0100; // br x8
|
||||
*(ULONG*)aCode = (ULONG)(ULONG_PTR)SystemServiceAsm;
|
||||
|
||||
|
||||
SBIELOW_CALL(NtFlushInstructionCache)(
|
||||
NtCurrentProcess(), RegionBase, (ULONG)RegionSize);
|
||||
|
||||
#elif _WIN64
|
||||
|
||||
ZwXxxPtr[0] = 0x49; // mov r10, SyscallNumber
|
||||
ZwXxxPtr[1] = 0xC7;
|
||||
|
@ -160,6 +233,8 @@ _FX BOOLEAN Win32_HookWin32SysCalls(HMODULE win32u_base)
|
|||
SyscallPtr += 2;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, syscall_data);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -249,6 +324,27 @@ ULONG Win32_GetSysCallNumberWoW64(DWORD64 pos, UCHAR* dll_data)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Win32_GetSysCallNumberArm64
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX ULONG Win32_GetSysCallNumberArm64(ULONG* aCode)
|
||||
{
|
||||
// 0: e10000d4 svc #0x1000
|
||||
SVC svc;
|
||||
svc.OP = aCode[0];
|
||||
if (!IS_SVC(svc) || svc.imm16 < 0x1000) // win32 syscalls are >= 0x1000
|
||||
return -1;
|
||||
|
||||
// 1: c0035fd6 ret
|
||||
if (aCode[1] != 0xd65f03c0)
|
||||
return -1;
|
||||
|
||||
return svc.imm16;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Win32_HookWin32WoW64
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -314,7 +410,85 @@ _FX BOOLEAN Win32_HookWin32WoW64()
|
|||
}
|
||||
|
||||
SyscallPtr = (ULONG*)(syscall_data + sizeof(ULONG)); // size of buffer
|
||||
|
||||
|
||||
if (Dll_IsXtAjit) { // x86 on arm64
|
||||
|
||||
UCHAR* ZwXxxPtr;
|
||||
|
||||
ULONG* aCode = (ULONG*)dll_data;
|
||||
|
||||
for (ULONG64 pos = 0; pos < SizeRead; aCode++, pos += 4) {
|
||||
if (Win32_GetSysCallNumberArm64(aCode) != -1)
|
||||
break;
|
||||
}
|
||||
|
||||
if ((DWORD64)aCode >= (DWORD64)dll_data + SizeRead) {
|
||||
SbieApi_Log(2303, L"win32k, get first syscall wrapper failed");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
for (ULONG pos = 0; pos < 128; aCode++, pos += 4) {
|
||||
|
||||
ULONG SyscallNum = Win32_GetSysCallNumberArm64(aCode);
|
||||
if (SyscallNum == -1)
|
||||
continue;
|
||||
|
||||
if (SbieDll_GetSysCallOffset(SyscallPtr, SyscallNum)) {
|
||||
|
||||
DWORD64 offset = (DWORD64)aCode - (DWORD64)dll_data;
|
||||
|
||||
RegionBase = BaseAddress + offset;
|
||||
RegionSize = 16;
|
||||
|
||||
//
|
||||
// prepare call to call our SystemServiceAsm
|
||||
//
|
||||
|
||||
ZwXxxPtr = aCode;
|
||||
|
||||
MOV mov;
|
||||
mov.OP = 0xD2800011; // mov x17, #0xFFFF
|
||||
mov.imm16 = (USHORT)SyscallNum;
|
||||
*aCode++ = mov.OP;
|
||||
*aCode++ = 0x18000048; // ldr w8, 8
|
||||
*aCode++ = 0xD61F0100; // br x8
|
||||
*(ULONG*)aCode = (ULONG)(ULONG_PTR)SystemServiceAsm;
|
||||
|
||||
//
|
||||
// overwrite the ZwXxx export to call our SystemServiceAsm,
|
||||
// and then restore the original page protection
|
||||
//
|
||||
|
||||
if (!NT_SUCCESS(SbieApi_ProtectVirtualMemory(NtCurrentProcess(), RegionBase, RegionSize, PAGE_EXECUTE_READWRITE, &OldProtect))) {
|
||||
SbieApi_Log(2303, L"win32k %d (1)", SyscallNum);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(SbieApi_WriteVirtualMemory(NtCurrentProcess(), RegionBase, ZwXxxPtr, RegionSize, &SizeRead))) {
|
||||
SbieApi_Log(2303, L"win32k %d (2)", SyscallNum);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(SbieApi_FlushInstructionCache(NtCurrentProcess(), RegionBase, RegionSize))) {
|
||||
SbieApi_Log(2303, L"win32k %d (3)", SyscallNum);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(SbieApi_ProtectVirtualMemory(NtCurrentProcess(), RegionBase, RegionSize, OldProtect, &OldProtect))) {
|
||||
SbieApi_Log(2303, L"win32k %d (4)", SyscallNum);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//if (aCode[2] != 0 || aCode[3] != 0)
|
||||
// break;
|
||||
aCode += 4;
|
||||
pos = 0; // reset
|
||||
}
|
||||
|
||||
}
|
||||
else { // x86 on x64
|
||||
|
||||
UCHAR ZwXxxPtr[16];
|
||||
|
||||
|
@ -400,6 +574,8 @@ _FX BOOLEAN Win32_HookWin32WoW64()
|
|||
pos++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
finish:
|
||||
|
||||
if(syscall_data)
|
||||
|
@ -574,28 +750,3 @@ NTSTATUS SbieApi_QueryVirtualMemory(HANDLE hProcess, DWORD64 BaseAddress, MEMORY
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// SbieDll_GetSysCallOffset
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX ULONG SbieDll_GetSysCallOffset(const ULONG *SyscallPtr, ULONG syscall_index)
|
||||
{
|
||||
ULONG SyscallNum;
|
||||
|
||||
while (SyscallPtr[0] || SyscallPtr[1]) {
|
||||
|
||||
SyscallNum = SyscallPtr[0];
|
||||
|
||||
SyscallNum &= 0xFFFF; // clear the not needed param count
|
||||
|
||||
if (SyscallNum == syscall_index)
|
||||
return SyscallPtr[1];
|
||||
|
||||
SyscallPtr += 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ _FX const WCHAR *SbieDll_PortName(void)
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _WIN64
|
||||
_FX BOOLEAN SbieDll_IsWow64(void)
|
||||
{
|
||||
//
|
||||
|
@ -53,8 +54,6 @@ _FX BOOLEAN SbieDll_IsWow64(void)
|
|||
// initialize the variable here
|
||||
//
|
||||
|
||||
#ifndef _WIN64
|
||||
|
||||
static BOOLEAN init = FALSE;
|
||||
typedef BOOL (*P_IsWow64Process)(HANDLE, BOOL *);
|
||||
|
||||
|
@ -73,10 +72,9 @@ _FX BOOLEAN SbieDll_IsWow64(void)
|
|||
init = TRUE;
|
||||
}
|
||||
|
||||
#endif ! _WIN64
|
||||
|
||||
return Dll_IsWow64;
|
||||
}
|
||||
#endif ! _WIN64
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -123,6 +121,7 @@ _FX BOOLEAN SbieDll_ConnectPort(BOOLEAN Silent)
|
|||
|
||||
data->SizeofPortMsg = sizeof(PORT_MESSAGE);
|
||||
|
||||
#ifndef _WIN64
|
||||
if (! Dll_BoxName)
|
||||
SbieDll_IsWow64();
|
||||
|
||||
|
@ -137,6 +136,7 @@ _FX BOOLEAN SbieDll_ConnectPort(BOOLEAN Silent)
|
|||
|
||||
data->SizeofPortMsg += sizeof(ULONG) * 4;
|
||||
}
|
||||
#endif
|
||||
|
||||
data->MaxDataLen -= data->SizeofPortMsg;
|
||||
}
|
||||
|
|
|
@ -73,7 +73,9 @@ typedef struct _COM_IUNKNOWN {
|
|||
// Functions
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef _WIN64
|
||||
BOOLEAN SbieDll_IsWow64();
|
||||
#endif
|
||||
|
||||
static BOOLEAN Com_IsFirewallClsid(REFCLSID rclsid, const WCHAR *BoxName);
|
||||
|
||||
|
@ -93,6 +95,7 @@ static HRESULT Com_CoCreateInstanceEx(
|
|||
REFCLSID rclsid, void *pUnkOuter, ULONG clsctx, void *pServerInfo,
|
||||
ULONG cmq, MULTI_QI *pmqs);
|
||||
|
||||
#ifndef _M_ARM64
|
||||
static BOOLEAN Com_Hook_CoUnmarshalInterface_W8(UCHAR *code, HMODULE module);
|
||||
|
||||
static HRESULT __fastcall Com_CoUnmarshalInterface_W8(
|
||||
|
@ -100,6 +103,7 @@ static HRESULT __fastcall Com_CoUnmarshalInterface_W8(
|
|||
|
||||
static HRESULT __fastcall Com_CoUnmarshalInterface_W81(
|
||||
ULONG_PTR StreamAddr, ULONG zero, REFIID riid, void **ppv);
|
||||
#endif
|
||||
|
||||
static HRESULT Com_CoUnmarshalInterface_W10(
|
||||
ULONG_PTR StreamAddr, REFIID riid,void **ppv);
|
||||
|
@ -231,8 +235,10 @@ P_CoGetObject __sys_CoGetObject = NULL;
|
|||
P_CoCreateInstance __sys_CoCreateInstance = NULL;
|
||||
P_CoCreateInstanceEx __sys_CoCreateInstanceEx = NULL;
|
||||
P_CoUnmarshalInterface __sys_CoUnmarshalInterface = NULL;
|
||||
#ifndef _M_ARM64
|
||||
P_CoUnmarshalInterface_W8 __sys_CoUnmarshalInterface_W8 = NULL;
|
||||
P_CoUnmarshalInterface_W81 __sys_CoUnmarshalInterface_W81 = NULL;
|
||||
#endif
|
||||
P_CoUnmarshalInterface_W10 __sys_CoUnmarshalInterface_W10 = NULL;
|
||||
P_CoMarshalInterface __sys_CoMarshalInterface = NULL;
|
||||
|
||||
|
@ -873,7 +879,7 @@ _FX HRESULT Com_CoCreateInstanceEx(
|
|||
// Com_Hook_CoUnmarshalInterface_W8
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _M_ARM64
|
||||
_FX BOOLEAN Com_Hook_CoUnmarshalInterface_W8(UCHAR *code, HMODULE module)
|
||||
{
|
||||
|
||||
|
@ -900,7 +906,7 @@ _FX BOOLEAN Com_Hook_CoUnmarshalInterface_W8(UCHAR *code, HMODULE module)
|
|||
|
||||
#ifdef _WIN64
|
||||
|
||||
if (Dll_OsBuild >= 15002) {
|
||||
if (Dll_OsBuild >= 15002) { // Windows 10 1703 preview
|
||||
|
||||
if (code[0x18] == 0xe9) {
|
||||
|
||||
|
@ -912,7 +918,7 @@ _FX BOOLEAN Com_Hook_CoUnmarshalInterface_W8(UCHAR *code, HMODULE module)
|
|||
}
|
||||
}
|
||||
|
||||
else if (Dll_OsBuild >= 14942) {
|
||||
else if (Dll_OsBuild >= 14942) { // Windows 10 1703 preview #7
|
||||
|
||||
if (code[0x20] == 0xe9) {
|
||||
LONG_PTR jump_target = (LONG_PTR)code + (*(LONG *)(code + 0x21)) + 0x25;
|
||||
|
@ -1149,6 +1155,7 @@ _FX HRESULT Com_CoUnmarshalInterface_W10(
|
|||
|
||||
return Com_CoUnmarshalInterface_Common(pStream, riid, ppv, &posl);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -1406,13 +1413,16 @@ _FX BOOLEAN Com_Init_ComBase(HMODULE module)
|
|||
|
||||
if (!Ipc_OpenCOM) {
|
||||
if (Dll_OsBuild >= 8400) {
|
||||
if (!Com_Hook_CoUnmarshalInterface_W8(
|
||||
(UCHAR*)CoUnmarshalInterface, module))
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
SBIEDLL_HOOK(Com_, CoUnmarshalInterface);
|
||||
CoUnmarshalInterface = (P_CoUnmarshalInterface)GetProcAddress(GetModuleHandle(L"combase.dll"), "CoUnmarshalInterface");
|
||||
#ifndef _M_ARM64
|
||||
// $HookHack$ - Custom, not automated, Hook for windows 8 and 8.1 and early windows 10 builds
|
||||
if (!CoUnmarshalInterface) {
|
||||
if (!Com_Hook_CoUnmarshalInterface_W8((UCHAR*)CoUnmarshalInterface, module))
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
SBIEDLL_HOOK(Com_, CoUnmarshalInterface);
|
||||
|
||||
SBIEDLL_HOOK(Com_, CoMarshalInterface);
|
||||
SbieDll_IsOpenClsid(&IID_IUnknown, CLSCTX_LOCAL_SERVER, NULL); // trigger list loading
|
||||
|
@ -1431,6 +1441,12 @@ _FX BOOLEAN Com_Init_ComBase(HMODULE module)
|
|||
if (SbieApi_QueryConf(NULL, L"ClsidTrace", 0, wsTraceOptions, sizeof(wsTraceOptions)) == STATUS_SUCCESS && wsTraceOptions[0] != L'\0')
|
||||
Com_TraceFlag = TRUE;
|
||||
|
||||
if (!__sys_RegOpenKeyExW) {
|
||||
HMODULE module = Dll_KernelBase ? Dll_KernelBase : LoadLibrary(DllName_advapi32);
|
||||
__sys_RegOpenKeyExW = (P_RegOpenKeyEx)GetProcAddress(module, "RegOpenKeyExW");
|
||||
GETPROCADDR_SYS(RegCloseKey);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1450,7 +1450,11 @@ _FX BOOLEAN Custom_OsppcDll(HMODULE module)
|
|||
ULONG zero = 0;
|
||||
ULONG ProductIndex, ValueIndex;
|
||||
|
||||
ULONG Wow64 = Dll_IsWow64 ? KEY_WOW64_64KEY : 0;
|
||||
ULONG Wow64 = 0;
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64)
|
||||
Wow64 = KEY_WOW64_64KEY;
|
||||
#endif
|
||||
|
||||
//
|
||||
// open Microsoft Office 2010 registry key
|
||||
|
@ -1527,6 +1531,7 @@ _FX BOOLEAN Custom_OsppcDll(HMODULE module)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
#ifndef _M_ARM64
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Custom_InternetDownloadManager
|
||||
|
@ -1731,3 +1736,5 @@ _FX BOOLEAN Acscmonitor_Init(HMODULE hDll)
|
|||
CloseHandle(ThreadHandle);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright 2004-2020 Sandboxie Holdings, LLC
|
||||
* Copyright 2022 DavidXanatos, xanasoft.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -29,6 +30,7 @@
|
|||
|
||||
#include "dll.h"
|
||||
#include <stdio.h>
|
||||
#include "../../common/my_xeb.h"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -53,6 +55,13 @@
|
|||
// Functions
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static NTSTATUS Debug_NtRaiseHardError(
|
||||
NTSTATUS ErrorStatus,
|
||||
ULONG NumberOfParameters,
|
||||
ULONG UnicodeBitMask,
|
||||
ULONG_PTR *Parameters,
|
||||
ULONG ErrorOption,
|
||||
ULONG *ErrorReturn);
|
||||
|
||||
static void Debug_RtlSetLastWin32Error(ULONG err);
|
||||
|
||||
|
@ -79,6 +88,13 @@ static NTSTATUS Debug_LdrGetDllHandle(
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
typedef NTSTATUS (*P_NtRaiseHardError)(
|
||||
NTSTATUS ErrorStatus,
|
||||
ULONG NumberOfParameters,
|
||||
ULONG UnicodeBitMask,
|
||||
ULONG_PTR *Parameters,
|
||||
ULONG ErrorOption,
|
||||
ULONG *ErrorReturn);
|
||||
typedef void (*P_RtlSetLastWin32Error)(ULONG err);
|
||||
typedef void (*P_OutputDebugString)(const void *str);
|
||||
typedef BOOL (*P_DebugActiveProcess)(ULONG dwProcessId);
|
||||
|
@ -86,6 +102,7 @@ typedef BOOL (*P_WaitForDebugEvent)(
|
|||
LPDEBUG_EVENT lpDebugEvent, DWORD dwMilliseconds);
|
||||
|
||||
|
||||
static P_NtRaiseHardError __sys_NtRaiseHardError = NULL;
|
||||
static P_RtlSetLastWin32Error __sys_RtlSetLastWin32Error = NULL;
|
||||
static P_OutputDebugString __sys_OutputDebugStringW = NULL;
|
||||
static P_OutputDebugString __sys_OutputDebugStringA = NULL;
|
||||
|
@ -119,8 +136,7 @@ __declspec(dllimport) NTSTATUS LdrGetDllHandle(
|
|||
|
||||
_FX int Debug_Init(void)
|
||||
{
|
||||
HMODULE module = NULL; // fix-me
|
||||
|
||||
P_NtRaiseHardError NtRaiseHardError;
|
||||
P_OutputDebugString OutputDebugStringW;
|
||||
P_OutputDebugString OutputDebugStringA;
|
||||
P_RtlSetLastWin32Error RtlSetLastWin32Error;
|
||||
|
@ -131,6 +147,14 @@ _FX int Debug_Init(void)
|
|||
// intercept NTDLL entry points
|
||||
//
|
||||
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
NtRaiseHardError = (P_NtRaiseHardError)
|
||||
GetProcAddress(Dll_Ntdll, "NtRaiseHardError");
|
||||
|
||||
SBIEDLL_HOOK(Debug_,NtRaiseHardError);
|
||||
|
||||
|
||||
RtlSetLastWin32Error = (P_RtlSetLastWin32Error)
|
||||
GetProcAddress(Dll_Ntdll, "RtlSetLastWin32Error");
|
||||
|
||||
|
@ -140,6 +164,8 @@ _FX int Debug_Init(void)
|
|||
// intercept KERNEL32 entry points
|
||||
//
|
||||
|
||||
module = Dll_Kernel32;
|
||||
|
||||
OutputDebugStringW = (P_OutputDebugString)
|
||||
GetProcAddress(Dll_Kernel32, "OutputDebugStringW");
|
||||
OutputDebugStringA = (P_OutputDebugString)
|
||||
|
@ -241,6 +267,23 @@ _FX int Debug_Init(void)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Debug_NtRaiseHardError
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
ALIGNED NTSTATUS Debug_NtRaiseHardError(
|
||||
NTSTATUS ErrorStatus,
|
||||
ULONG NumberOfParameters,
|
||||
ULONG UnicodeBitMask,
|
||||
ULONG_PTR *Parameters,
|
||||
ULONG ErrorOption,
|
||||
ULONG *ErrorReturn)
|
||||
{
|
||||
return __sys_NtRaiseHardError(ErrorStatus, NumberOfParameters, UnicodeBitMask, Parameters, ErrorOption, ErrorReturn);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Debug_RtlSetLastWin32Error
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
|
@ -42,9 +42,6 @@
|
|||
|
||||
int Debug_Init(void);
|
||||
|
||||
void DbgPrint(const char* format, ...);
|
||||
void DbgTrace(const char* format, ...);
|
||||
|
||||
#endif WITH_DEBUG
|
||||
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ extern __declspec(dllexport) int __CRTDECL Sbie_snprintf(char *_Buffer, size_t C
|
|||
#ifdef _WIN64
|
||||
|
||||
// Pointer to 64-bit PEB_LDR_DATA is at offset 0x0018 of 64-bit PEB
|
||||
#define GET_ADDR_OF_PEB __readgsqword(0x60)
|
||||
#define GET_ADDR_OF_PEB NtCurrentPeb()
|
||||
#define GET_PEB_LDR_DATA (*(PEB_LDR_DATA **)(GET_ADDR_OF_PEB + 0x18))
|
||||
#define GET_PEB_IMAGE_BASE (*(ULONG_PTR *)(GET_ADDR_OF_PEB + 0x10))
|
||||
#define GET_PEB_MAJOR_VERSION (*(USHORT *)(GET_ADDR_OF_PEB + 0x118))
|
||||
|
@ -251,6 +251,7 @@ extern HINSTANCE Dll_Instance;
|
|||
extern HMODULE Dll_Ntdll;
|
||||
extern HMODULE Dll_Kernel32;
|
||||
extern HMODULE Dll_KernelBase;
|
||||
// $Workaround$ - 3rd party fix
|
||||
extern HMODULE Dll_DigitalGuardian;
|
||||
|
||||
extern const WCHAR *Dll_BoxName;
|
||||
|
@ -276,7 +277,15 @@ extern ULONG Dll_SessionId;
|
|||
|
||||
extern ULONG64 Dll_ProcessFlags;
|
||||
|
||||
#ifndef _WIN64
|
||||
extern BOOLEAN Dll_IsWow64;
|
||||
#endif
|
||||
#ifdef _M_X64
|
||||
extern BOOLEAN Dll_IsArm64ec;
|
||||
#endif
|
||||
#ifndef _M_ARM64
|
||||
extern BOOLEAN Dll_IsXtAjit;
|
||||
#endif
|
||||
extern BOOLEAN Dll_IsSystemSid;
|
||||
extern BOOLEAN Dll_InitComplete;
|
||||
extern BOOLEAN Dll_RestrictedToken;
|
||||
|
@ -424,7 +433,9 @@ BOOLEAN Dll_SkipHook(const WCHAR *HookName);
|
|||
|
||||
void *Dll_JumpStub(void *OldCode, void *NewCode, ULONG_PTR StubArg);
|
||||
|
||||
#if !defined(_M_ARM64) && !defined(_M_ARM64EC)
|
||||
ULONG_PTR *Dll_JumpStubData(void);
|
||||
#endif
|
||||
|
||||
ULONG_PTR *Dll_JumpStubDataForCode(void *StubCode);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -42,6 +42,8 @@ static void Dll_SelectImageType(void);
|
|||
|
||||
void Ldr_Inject_Init(BOOLEAN bHostInject);
|
||||
|
||||
void Dll_Wow64DisableTurboThunks(void);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Variables
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -50,11 +52,15 @@ void Ldr_Inject_Init(BOOLEAN bHostInject);
|
|||
const ULONG tzuk = 'xobs';
|
||||
|
||||
SBIELOW_DATA* SbieApi_data = NULL;
|
||||
#ifdef _M_ARM64EC
|
||||
ULONG* SbieApi_SyscallPtr = NULL;
|
||||
#endif
|
||||
|
||||
HINSTANCE Dll_Instance = NULL;
|
||||
HMODULE Dll_Ntdll = NULL;
|
||||
HMODULE Dll_Kernel32 = NULL;
|
||||
HMODULE Dll_KernelBase = NULL;
|
||||
// $Workaround$ - 3rd party fix
|
||||
HMODULE Dll_DigitalGuardian = NULL;
|
||||
|
||||
const WCHAR *Dll_BoxName = NULL;
|
||||
|
@ -80,7 +86,15 @@ ULONG Dll_SessionId = 0;
|
|||
|
||||
ULONG64 Dll_ProcessFlags = 0;
|
||||
|
||||
#ifndef _WIN64
|
||||
BOOLEAN Dll_IsWow64 = FALSE;
|
||||
#endif
|
||||
#ifdef _M_X64
|
||||
BOOLEAN Dll_IsArm64ec = FALSE;
|
||||
#endif
|
||||
#ifndef _M_ARM64
|
||||
BOOLEAN Dll_IsXtAjit = FALSE;
|
||||
#endif
|
||||
BOOLEAN Dll_IsSystemSid = FALSE;
|
||||
BOOLEAN Dll_InitComplete = FALSE;
|
||||
BOOLEAN Dll_RestrictedToken = FALSE;
|
||||
|
@ -91,10 +105,10 @@ BOOLEAN Dll_CompartmentMode = FALSE;
|
|||
|
||||
ULONG Dll_ImageType = DLL_IMAGE_UNSPECIFIED;
|
||||
|
||||
ULONG Dll_OsBuild = 0; // initialized by Key module
|
||||
ULONG Dll_OsBuild = 0;
|
||||
ULONG Dll_Windows = 0;
|
||||
|
||||
const UCHAR *SbieDll_Version = MY_VERSION_COMPAT;
|
||||
const UCHAR *SbieDll_Version = MY_VERSION_STRING;
|
||||
|
||||
BOOLEAN Dll_SbieTrace = FALSE;
|
||||
|
||||
|
@ -141,7 +155,8 @@ _FX BOOL WINAPI DllMain(
|
|||
if (dwReason == DLL_THREAD_ATTACH) {
|
||||
|
||||
if (Dll_BoxName) {
|
||||
Dll_FixWow64Syscall();
|
||||
if (Dll_Windows < 10)
|
||||
Dll_FixWow64Syscall();
|
||||
Gui_ConnectToWindowStationAndDesktop(NULL);
|
||||
}
|
||||
|
||||
|
@ -150,17 +165,29 @@ _FX BOOL WINAPI DllMain(
|
|||
Dll_FreeTlsData();
|
||||
|
||||
} else if (dwReason == DLL_PROCESS_ATTACH) {
|
||||
|
||||
// $Workaround$ - 3rd party fix
|
||||
#ifdef _WIN64
|
||||
Dll_DigitalGuardian = GetModuleHandleA("DgApi64.dll");
|
||||
#else
|
||||
Dll_DigitalGuardian = GetModuleHandleA("DgApi.dll");
|
||||
#endif
|
||||
if (GetProcAddress(GetModuleHandleA("ntdll.dll"), "LdrFastFailInLoaderCallout")) {
|
||||
|
||||
Dll_OsBuild = GET_PEB_IMAGE_BUILD;
|
||||
|
||||
//if (GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtQueueApcThreadEx2")) // Somewhere around windows insider build 19603
|
||||
// Dll_Windows = 11;
|
||||
//else if (GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtGetCurrentProcessorNumberEx"))
|
||||
//else
|
||||
if (GetProcAddress(GetModuleHandleA("ntdll.dll"), "LdrFastFailInLoaderCallout"))
|
||||
Dll_Windows = 10;
|
||||
}
|
||||
else {
|
||||
else //if (GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtAlpcConnectPortEx"))
|
||||
Dll_Windows = 8;
|
||||
}
|
||||
// else
|
||||
// Dll_Windows = 7;
|
||||
|
||||
ProcessIdToSessionId(GetCurrentProcessId(), &Dll_SessionId);
|
||||
|
||||
Dll_InitGeneric(hInstance);
|
||||
SbieDll_HookInit();
|
||||
|
||||
|
@ -233,7 +260,11 @@ _FX void Dll_InitInjected(void)
|
|||
|
||||
Trace_Init();
|
||||
|
||||
OutputDebugString(L"SbieDll injected...");
|
||||
OutputDebugString(L"SbieDll injected...\n");
|
||||
for (int i = 0; i < 16; i++) {
|
||||
if (SbieApi_data->DebugData[i] != 0)
|
||||
DbgPrint("DebugData[%d]: %p\n", i, (UINT_PTR)SbieApi_data->DebugData[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -379,8 +410,14 @@ _FX void Dll_InitInjected(void)
|
|||
|
||||
ok = Dll_InitPathList();
|
||||
|
||||
if (ok)
|
||||
Dll_FixWow64Syscall();
|
||||
#ifndef _WIN64
|
||||
if (ok) {
|
||||
if (Dll_Windows < 10)
|
||||
Dll_FixWow64Syscall();
|
||||
else
|
||||
Dll_Wow64DisableTurboThunks();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ok)
|
||||
ok = Handle_Init();
|
||||
|
@ -735,29 +772,24 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3,
|
||||
ULONG_PTR arg4, ULONG_PTR arg5)
|
||||
{
|
||||
struct _INJECT_DATA { // keep in sync with core/low/inject.c
|
||||
|
||||
ULONG64 sbielow_data; // syscall_data_len & extra_data_offset;
|
||||
ULONG64 RtlFindActCtx_SavedArg1; // LdrLoadDll
|
||||
|
||||
ULONG64 LdrGetProcAddr;
|
||||
ULONG64 NtRaiseHardError;
|
||||
ULONG64 RtlFindActCtx;
|
||||
ULONG RtlFindActCtx_Protect;
|
||||
|
||||
UCHAR Reserved[188]; // the rest of _INJECT_DATA
|
||||
|
||||
} *inject; // total size 232
|
||||
|
||||
typedef ULONG_PTR (*P_RtlFindActivationContextSectionString)(
|
||||
ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3,
|
||||
ULONG_PTR arg4, ULONG_PTR arg5);
|
||||
P_RtlFindActivationContextSectionString RtlFindActCtx;
|
||||
|
||||
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
//
|
||||
// on ARM64 we hook LdrLoadDll instead, using the prototype for
|
||||
// RtlFindActCtx is fine though as arguments 1-8 are passed in registers
|
||||
// so if we set x4 or not does not mater in the least
|
||||
//
|
||||
#endif
|
||||
|
||||
INJECT_DATA *inject;
|
||||
SBIELOW_DATA *data;
|
||||
ULONG dummy_prot;
|
||||
BOOLEAN bHostInject = FALSE;
|
||||
|
||||
|
||||
extern HANDLE SbieApi_DeviceHandle;
|
||||
|
||||
//
|
||||
|
@ -765,24 +797,33 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
// hook in core/low/entry.asm, with a parameter that points to the
|
||||
// syscall/inject data area. the first ULONG64 in this data area
|
||||
// includes a pointer to the SbieLow data area
|
||||
//
|
||||
//
|
||||
|
||||
inject = (struct _INJECT_DATA *)arg1;
|
||||
|
||||
data = (SBIELOW_DATA *)inject->sbielow_data;
|
||||
|
||||
SbieApi_data = data;
|
||||
|
||||
VirtualProtect((void *)(ULONG_PTR)data, sizeof(SBIELOW_DATA),
|
||||
PAGE_EXECUTE_READ, &dummy_prot);
|
||||
|
||||
bHostInject = data->flags.bHostInject == 1;
|
||||
#ifdef _M_ARM64EC
|
||||
SbieApi_SyscallPtr = (ULONG*)((ULONG64)data->syscall_data + sizeof(ULONG) + sizeof(ULONG) + (NATIVE_FUNCTION_SIZE * NATIVE_FUNCTION_COUNT));
|
||||
#endif
|
||||
|
||||
//
|
||||
// the SbieLow data area includes values that are useful to us
|
||||
// so we copy them into dedicated variables if we are going to use them more often
|
||||
//
|
||||
|
||||
bHostInject = data->flags.bHostInject == 1;
|
||||
|
||||
#ifndef _WIN64
|
||||
Dll_IsWow64 = data->flags.is_wow64 == 1;
|
||||
#endif
|
||||
#ifdef _M_X64
|
||||
Dll_IsArm64ec = data->flags.is_arm64ec == 1;
|
||||
#endif
|
||||
#ifndef _M_ARM64
|
||||
Dll_IsXtAjit = data->flags.is_xtajit == 1;
|
||||
#endif
|
||||
|
||||
SbieApi_DeviceHandle = (HANDLE)data->api_device_handle;
|
||||
|
||||
|
@ -800,10 +841,13 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
inject->RtlFindActCtx;
|
||||
|
||||
//
|
||||
// free the syscall/inject data area which is no longer needed
|
||||
// make sbielow_data read only, as it contsins required
|
||||
// nt dll function copies it must stay executive
|
||||
//
|
||||
|
||||
VirtualFree(inject, 0, MEM_RELEASE);
|
||||
VirtualProtect((void *)data, sizeof(SBIELOW_DATA),
|
||||
PAGE_EXECUTE_READ, &dummy_prot);
|
||||
|
||||
|
||||
if (!bHostInject)
|
||||
{
|
||||
|
@ -816,7 +860,7 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
Dll_InitInjected(); // install required hooks
|
||||
|
||||
//
|
||||
// notify RPCSS that a new process was created in the current sandbox
|
||||
// notify RPCSS that a new proces was created in the current sandbox
|
||||
//
|
||||
|
||||
if (Dll_ImageType != DLL_IMAGE_SANDBOXIE_RPCSS) {
|
||||
|
@ -871,6 +915,16 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
Ldr_Inject_Init(bHostInject);
|
||||
}
|
||||
|
||||
//
|
||||
// free the syscall/inject data area which is no longer needed
|
||||
//
|
||||
|
||||
#ifdef _M_ARM64EC
|
||||
SbieApi_SyscallPtr = NULL;
|
||||
#endif
|
||||
VirtualFree(inject, 0, MEM_RELEASE);
|
||||
|
||||
|
||||
//
|
||||
// conclude the detour by passing control back to the original
|
||||
// RtlFindActivationContextSectionString. the detour code used
|
||||
|
@ -880,3 +934,69 @@ _FX ULONG_PTR Dll_Ordinal1(
|
|||
|
||||
return RtlFindActCtx(arg1, arg2, arg3, arg4, arg5);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Dll_Wow64DisableTurboThunks
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef _WIN64
|
||||
|
||||
typedef enum _WOW64_FUNCTION {
|
||||
Wow64Function64Nop,
|
||||
Wow64FunctionQueryProcessDebugInfo,
|
||||
Wow64FunctionTurboThunkControl,
|
||||
Wow64FunctionCfgDispatchControl,
|
||||
Wow64FunctionOptimizeChpeImportThunks,
|
||||
} WOW64_FUNCTION;
|
||||
|
||||
typedef NTSTATUS(*P_NtWow64CallFunction64)(
|
||||
_In_ WOW64_FUNCTION Wow64Function,
|
||||
_In_ ULONG Flags,
|
||||
_In_ ULONG InputBufferLength,
|
||||
_In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer,
|
||||
_In_ ULONG OutputBufferLength,
|
||||
_Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer,
|
||||
_Out_opt_ PULONG ReturnLength
|
||||
);
|
||||
|
||||
#define WOW64_TURBO_THUNK_DISABLE 0
|
||||
#define WOW64_TURBO_THUNK_ENABLE 1 // STATUS_NOT_SUPPORTED :(
|
||||
|
||||
_FX void Dll_Wow64DisableTurboThunks(void)
|
||||
{
|
||||
//
|
||||
// Dll_FixWow64Syscall (dllhooks.c):
|
||||
// the Wow64 thunking layer for syscalls in ntdll32 has several thunks:
|
||||
// thunk 0 calls the corresponding NtXxx export in the 64-bit ntdll.
|
||||
// other thunks issue the syscall instruction directly and are probably
|
||||
// intended as an optimization. we want all 32-bit syscalls to go
|
||||
// through our SbieLow syscall interface, so we need to always force
|
||||
// use of thunk 0 rather than the optimization thunks.
|
||||
//
|
||||
// Windows 10:
|
||||
// Starting with windows 10 we can use Wow64FunctionTurboThunkControl
|
||||
// to disable this "optimization" properly.
|
||||
//
|
||||
// Windows on ARM64:
|
||||
// On ARM64 there is no wow64cpu.dll and Wow64FunctionTurboThunkControl
|
||||
// returns STATUS_NOT_IMPLEMENTED, and no use of Turbo Thunks has been
|
||||
// yet observed hence we can sattle on doing nothing for the time being.
|
||||
//
|
||||
|
||||
if (Dll_IsXtAjit)
|
||||
return;
|
||||
|
||||
NTSTATUS status = STATUS_NOT_SUPPORTED;
|
||||
|
||||
P_NtWow64CallFunction64 NtWow64CallFunction64 = (P_NtWow64CallFunction64)GetProcAddress(Dll_Ntdll, "NtWow64CallFunction64");
|
||||
if (NtWow64CallFunction64) {
|
||||
ULONG ThunkInput = WOW64_TURBO_THUNK_DISABLE;
|
||||
status = NtWow64CallFunction64(Wow64FunctionTurboThunkControl, 0, sizeof(ThunkInput), &ThunkInput, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
if(!NT_SUCCESS(status))
|
||||
SbieApi_Log(2205, L"Wow64FunctionTurboThunkControl %08X", status);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -204,7 +204,7 @@ ALIGNED LPTOP_LEVEL_EXCEPTION_FILTER Dump_SetUnhandledExceptionFilter(
|
|||
|
||||
_FX int Dump_Init(void)
|
||||
{
|
||||
HMODULE module = NULL; // fix-me
|
||||
HMODULE module = Dll_Kernel32;
|
||||
|
||||
if (Dump_DbgHelpMod != NULL)
|
||||
return 2;
|
||||
|
|
|
@ -2888,6 +2888,7 @@ ReparseLoop:
|
|||
|
||||
if (CreateOptions & FILE_DELETE_ON_CLOSE) {
|
||||
|
||||
// $Workaround$ - 3rd party fix
|
||||
if (Dll_DigitalGuardian && (PATH_IS_WRITE(mp_flags) || PATH_IS_CLOSED(mp_flags)))
|
||||
{
|
||||
HaveTrueFile = 'N';
|
||||
|
@ -6779,6 +6780,7 @@ _FX NTSTATUS File_RenameFile(
|
|||
{
|
||||
status = STATUS_OBJECT_NAME_NOT_FOUND;
|
||||
}
|
||||
// $Workaround$ - 3rd party fix
|
||||
else if (!Dll_DigitalGuardian)
|
||||
{
|
||||
status = __sys_NtQueryFullAttributesFile(&objattrs, &open_info);
|
||||
|
@ -7385,6 +7387,7 @@ _FX NTSTATUS StopTailCallOptimization(NTSTATUS status)
|
|||
return status;
|
||||
}
|
||||
|
||||
// $Workaround$ - 3rd party fix
|
||||
_FX BOOLEAN DigitalGuardian_Init(HMODULE hModule)
|
||||
{
|
||||
Dll_DigitalGuardian = hModule;
|
||||
|
|
|
@ -127,7 +127,7 @@ static const WCHAR *File_DeviceMap_EnvVar = ENV_VAR_PFX L"DEVICE_MAP";
|
|||
|
||||
_FX BOOLEAN File_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
void *RtlGetFullPathName_UEx;
|
||||
void *GetTempPathW;
|
||||
|
@ -1705,6 +1705,7 @@ _FX void File_GetSetDeviceMap(WCHAR *DeviceMap96)
|
|||
NtCurrentProcess(), ProcessDeviceMap,
|
||||
&info, sizeof(info.Set));
|
||||
|
||||
#ifndef _WIN64
|
||||
if (status == STATUS_INFO_LENGTH_MISMATCH && Dll_IsWow64) {
|
||||
|
||||
//
|
||||
|
@ -1726,6 +1727,7 @@ _FX void File_GetSetDeviceMap(WCHAR *DeviceMap96)
|
|||
Dll_Free(rpl);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
NtClose(info.Set.DirectoryHandle);
|
||||
|
||||
|
|
|
@ -759,6 +759,15 @@ _FX BOOLEAN Gdi_InitZero(HMODULE module)
|
|||
} else
|
||||
Gdi_GdiDllInitialize = Gdi_GdiDllInitialize_XP;
|
||||
|
||||
#ifdef _M_ARM64EC
|
||||
|
||||
//
|
||||
// set module -1 to not try to find the FFS sequence
|
||||
//
|
||||
|
||||
module = (HMODULE)- 1;
|
||||
#endif
|
||||
|
||||
SBIEDLL_HOOK(Gdi_,GdiDllInitialize);
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -31,6 +31,12 @@
|
|||
#include <stdio.h>
|
||||
#include <psapi.h>
|
||||
|
||||
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
void* Hook_GetFFSTarget(void* ptr);
|
||||
void* Hook_GetXipTarget(void* ptr, int mode);
|
||||
void* SbieDll_Hook_arm(const char* SourceFuncName, void* SourceFunc, void* DetourFunc, HMODULE module);
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Variables
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -679,6 +685,7 @@ _FX BOOLEAN Gui_Init3(HMODULE module)
|
|||
|
||||
_FX void Gui_InitWindows7(void)
|
||||
{
|
||||
// $HookHack$ - Custom, not automated, Hook
|
||||
if (Dll_KernelBase) {
|
||||
|
||||
//
|
||||
|
@ -720,12 +727,48 @@ _FX void Gui_InitWindows7(void)
|
|||
SourceFunc = (UCHAR *)(*pSourceFunc);
|
||||
if (! SourceFunc)
|
||||
continue;
|
||||
|
||||
|
||||
//
|
||||
// confirm the function starts with an indirect jmp,
|
||||
// and try to replace the value at [x]
|
||||
//
|
||||
|
||||
#ifdef _M_ARM64EC
|
||||
|
||||
// 48 8B FF mov rdi,rdi
|
||||
// 55 push rbp
|
||||
// 48 8B EC mov rbp,rsp
|
||||
// 5D pop rbp
|
||||
// 90 nop
|
||||
// E9 02 48 18 00 jmp #__GSHandlerCheck_SEH_AMD64+138h (07FFB572B8190h)
|
||||
|
||||
// B0FFFEF0 adrp xip0,#NtdllScrollBarWndProc_A (07FFD30995000h)
|
||||
// 91018210 add xip0,xip0,#0x60
|
||||
// D61F0200 br xip0
|
||||
|
||||
// F0001050 adrp xip0,NtUserPfn (07FFD30BA0000h)
|
||||
// F9426A10 ldr xip0,[xip0,#0x4D0] // DefWindowProcA/DefWindowProcW
|
||||
// D61F0200 br xip0
|
||||
|
||||
UCHAR* Target = Hook_GetFFSTarget(SourceFunc);
|
||||
if(Target) {
|
||||
|
||||
Target = Hook_GetXipTarget(Target, 1); // adrp add br
|
||||
Target = Hook_GetXipTarget(Target, 0); // adrp ldr br
|
||||
|
||||
*pSourceFunc = (ULONG_PTR)SbieDll_Hook_arm(
|
||||
FuncName, Target, DetourFunc, NULL);
|
||||
}
|
||||
else // fall back to SbieDll_Hook
|
||||
#else
|
||||
|
||||
#ifdef _M_ARM64
|
||||
void* ptr = Hook_GetXipTarget(SourceFunc, 1); // adrp add br
|
||||
ptr = Hook_GetXipTarget(ptr, 0); // adrp ldr br
|
||||
if (ptr != SourceFunc)
|
||||
*pSourceFunc = (ULONG_PTR)ptr;
|
||||
#else
|
||||
|
||||
#ifdef _WIN64
|
||||
|
||||
if (*(UCHAR *)SourceFunc == 0x48 &&
|
||||
|
@ -753,8 +796,10 @@ _FX void Gui_InitWindows7(void)
|
|||
*pSourceFunc = *(ULONG_PTR *)target;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
*pSourceFunc = (ULONG_PTR)SbieDll_Hook(
|
||||
FuncName, (void *)(*pSourceFunc), DetourFunc, NULL); // fix-me: module
|
||||
FuncName, (void *)(*pSourceFunc), DetourFunc, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -267,7 +267,7 @@ _FX void Gui_Hook_CREATESTRUCT_Handler(void)
|
|||
Gui_HighestAddress = (ULONG_PTR)sysinfo.lpMaximumApplicationAddress;
|
||||
|
||||
#ifdef _WIN64
|
||||
peb = __readgsqword(0x60);
|
||||
peb = NtCurrentPeb();
|
||||
KernelCallbackTable = *(ULONG_PTR *)(peb + 0x58);
|
||||
#else ! _WIN64
|
||||
peb = __readfsdword(0x30); // PEB
|
||||
|
|
|
@ -79,7 +79,7 @@ static P_GetMessage __sys_GetMessageW = NULL;
|
|||
|
||||
_FX BOOLEAN Gui_InitConsole1(void)
|
||||
{
|
||||
HMODULE module = NULL; // fix-me
|
||||
HMODULE module = Dll_Kernel32;
|
||||
|
||||
// NoSbieCons BEGIN
|
||||
if (Dll_CompartmentMode || SbieApi_QueryConfBool(NULL, L"NoSandboxieConsole", FALSE)) {
|
||||
|
|
|
@ -448,7 +448,12 @@ _FX DLGPROC Gui_MyDialogProc1(DLGPROC OrigDlgProc, UINT fAnsiFlag)
|
|||
_FX LRESULT Gui_MyDialogProc2(
|
||||
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
#if !defined(_M_ARM64) && !defined(_M_ARM64EC)
|
||||
ULONG_PTR *StubData = Dll_JumpStubData();
|
||||
#else
|
||||
ULONG_PTR *StubData = (ULONG_PTR *)lParam;
|
||||
lParam = StubData[3];
|
||||
#endif
|
||||
LRESULT lResult;
|
||||
|
||||
//
|
||||
|
|
|
@ -266,89 +266,94 @@ _FX BOOLEAN Gui_HookQueryWindow(HMODULE module)
|
|||
UCHAR *code;
|
||||
BOOLEAN ok = FALSE;
|
||||
|
||||
code = Ldr_GetProcAddrNew(DllName_user32, _ProcName,_ProcNameA);
|
||||
//Windows 10 RS1 now exports win32k functions in win32u.dll
|
||||
code = Ldr_GetProcAddrNew(L"win32u.dll", L"NtUserQueryWindow","NtUserQueryWindow");
|
||||
if (code) {
|
||||
|
||||
//
|
||||
// IsHungAppWindow should start with a call to NtUserQueryWindow
|
||||
//
|
||||
|
||||
#ifdef _WIN64
|
||||
const ULONG _E8_Offset = 9;
|
||||
#else ! _WIN64
|
||||
const ULONG _E8_Offset = 10;
|
||||
#endif _WIN64
|
||||
|
||||
if (code[_E8_Offset] == 0xE8) {
|
||||
|
||||
code = code + _E8_Offset + 5
|
||||
+ (LONG_PTR)*(LONG *)(code + _E8_Offset + 1);
|
||||
|
||||
//
|
||||
// make sure the address we think is NtUserQueryWindow
|
||||
// actually looks like a syscall stub
|
||||
//
|
||||
|
||||
#ifdef _WIN64
|
||||
|
||||
if ( *(ULONG *)code == 0xB8D18B4C
|
||||
&& (*(USHORT *)(code + 8) == 0x050F) || *(USHORT *)(code + 8) == 0x04F6)
|
||||
ok = TRUE;
|
||||
|
||||
#else ! _WIN64
|
||||
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
// 64-bit prior Windows 7
|
||||
if ( (code[0] == 0xb8) && (code[5] == 0xba) && (*(USHORT *)(code + 10) == 0xd2ff)) {
|
||||
ok = TRUE;
|
||||
}
|
||||
else if (code[0] == 0xB8 && code[5] == 0x8D && code[9] == 0xB9 && code[14] == 0x64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit prior Windows 7
|
||||
else if (code[0] == 0xB8 && code[5] == 0xB9 && code[10] == 0x8D && code[14] == 0x64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit Windows 8
|
||||
else if (code[0] == 0xB8 && code[12] == 0xC2 && *(USHORT *)(code + 5) == 0xFF64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit Windows 10
|
||||
else if(code[0] == 0xB8 && code[12] == 0xC2 && *(USHORT *)(code + 5) == 0x40BA) {
|
||||
ok = TRUE;
|
||||
}
|
||||
|
||||
} else {
|
||||
//OutputDebugStringA("32 bit code\n");
|
||||
// 32-bit prior to Windows 8
|
||||
if ( code[0] == 0xB8 && code[5] == 0xBA
|
||||
&& *(USHORT *)(code + 10) == 0x12FF)
|
||||
ok = TRUE;
|
||||
|
||||
// 32-bit Windows 8
|
||||
if ( code[0] == 0xB8 && code[5] == 0xE8
|
||||
&& *(SHORT *)(code + 10) == 0x08C2)
|
||||
ok = TRUE;
|
||||
|
||||
// 32-bit Windows 10
|
||||
if ( code[0] == 0xB8 && code[5] == 0xBA
|
||||
&& *(USHORT *)(code + 10) == 0xD2FF)
|
||||
ok = TRUE;
|
||||
}
|
||||
|
||||
#endif _WIN64
|
||||
|
||||
}
|
||||
ok = TRUE;
|
||||
}
|
||||
#ifndef _M_ARM64
|
||||
else {
|
||||
|
||||
if (! ok) {
|
||||
//Windows 10 RS1 now exports win32k functions in win32u.dll
|
||||
code = Ldr_GetProcAddrNew(L"win32u.dll", L"NtUserQueryWindow","NtUserQueryWindow");
|
||||
code = Ldr_GetProcAddrNew(DllName_user32, _ProcName, _ProcNameA);
|
||||
if (code) {
|
||||
ok = TRUE;
|
||||
|
||||
//
|
||||
// IsHungAppWindow should start with a call to NtUserQueryWindow
|
||||
//
|
||||
|
||||
// $HookHack$ - Custom, not automated, Hook
|
||||
#ifdef _WIN64
|
||||
const ULONG _E8_Offset = 9;
|
||||
#else ! _WIN64
|
||||
const ULONG _E8_Offset = 10;
|
||||
#endif _WIN64
|
||||
|
||||
if (code[_E8_Offset] == 0xE8) {
|
||||
|
||||
code = code + _E8_Offset + 5
|
||||
+ (LONG_PTR) * (LONG*)(code + _E8_Offset + 1);
|
||||
|
||||
//
|
||||
// make sure the address we think is NtUserQueryWindow
|
||||
// actually looks like a syscall stub
|
||||
//
|
||||
|
||||
#ifdef _WIN64
|
||||
|
||||
if (*(ULONG*)code == 0xB8D18B4C
|
||||
&& (*(USHORT*)(code + 8) == 0x050F) || *(USHORT*)(code + 8) == 0x04F6)
|
||||
ok = TRUE;
|
||||
|
||||
#else ! _WIN64
|
||||
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
// 64-bit prior Windows 7
|
||||
if ((code[0] == 0xb8) && (code[5] == 0xba) && (*(USHORT*)(code + 10) == 0xd2ff)) {
|
||||
ok = TRUE;
|
||||
}
|
||||
else if (code[0] == 0xB8 && code[5] == 0x8D && code[9] == 0xB9 && code[14] == 0x64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit prior Windows 7
|
||||
else if (code[0] == 0xB8 && code[5] == 0xB9 && code[10] == 0x8D && code[14] == 0x64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit Windows 8
|
||||
else if (code[0] == 0xB8 && code[12] == 0xC2 && *(USHORT*)(code + 5) == 0xFF64) {
|
||||
ok = TRUE;
|
||||
}
|
||||
// 64-bit Windows 10
|
||||
else if (code[0] == 0xB8 && code[12] == 0xC2 && *(USHORT*)(code + 5) == 0x40BA) {
|
||||
ok = TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
//OutputDebugStringA("32 bit code\n");
|
||||
// 32-bit prior to Windows 8
|
||||
if (code[0] == 0xB8 && code[5] == 0xBA
|
||||
&& *(USHORT*)(code + 10) == 0x12FF)
|
||||
ok = TRUE;
|
||||
|
||||
// 32-bit Windows 8
|
||||
if (code[0] == 0xB8 && code[5] == 0xE8
|
||||
&& *(SHORT*)(code + 10) == 0x08C2)
|
||||
ok = TRUE;
|
||||
|
||||
// 32-bit Windows 10
|
||||
if (code[0] == 0xB8 && code[5] == 0xBA
|
||||
&& *(USHORT*)(code + 10) == 0xD2FF)
|
||||
ok = TRUE;
|
||||
}
|
||||
|
||||
#endif _WIN64
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!ok ){
|
||||
SbieApi_Log(2303, L"%S (0)", _ProcName);
|
||||
}
|
||||
|
|
|
@ -132,7 +132,9 @@ static LRESULT Gui_SendMessageA_MdiCreate(HWND hWnd, LPARAM lParam);
|
|||
|
||||
static LRESULT Gui_DispatchMessage8(const MSG *lpmsg, ULONG IsAscii);
|
||||
|
||||
#ifndef _M_ARM64
|
||||
static BOOLEAN Gui_Hook_DispatchMessage8(HMODULE module);
|
||||
#endif
|
||||
|
||||
static P_DispatchMessage8 __sys_DispatchMessage8 = 0;
|
||||
|
||||
|
@ -207,12 +209,24 @@ _FX BOOLEAN Gui_InitMsg(HMODULE module)
|
|||
|
||||
#else _WIN64
|
||||
|
||||
if (Dll_OsBuild < 8400) {
|
||||
if (Dll_OsBuild >= 14942) { // Windows 10 1703 preview #7
|
||||
HMODULE hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_DispatchMessage8 = (P_DispatchMessage8)GetProcAddress(hWin32u, "NtUserDispatchMessage");
|
||||
SBIEDLL_HOOK_GUI(DispatchMessage8);
|
||||
}
|
||||
else if (Dll_OsBuild < 8400) {
|
||||
SBIEDLL_HOOK_GUI(DispatchMessageA);
|
||||
SBIEDLL_HOOK_GUI(DispatchMessageW);
|
||||
|
||||
} else if (! Gui_Hook_DispatchMessage8(module))
|
||||
}
|
||||
else
|
||||
#ifndef _M_ARM64
|
||||
if (!Gui_Hook_DispatchMessage8(module))
|
||||
#endif
|
||||
{
|
||||
SbieApi_Log(2205, L"DispatchMessage8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
#endif _WIN64
|
||||
|
||||
|
@ -851,7 +865,8 @@ _FX LRESULT Gui_DispatchMessage8(const MSG *lpmsg, ULONG IsAscii)
|
|||
// Gui_Hook_DispatchMessage8
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _M_ARM64
|
||||
// $HookHack$ - Custom, not automated, Hook
|
||||
_FX BOOLEAN Gui_Hook_DispatchMessage8(HMODULE module)
|
||||
{
|
||||
//
|
||||
|
@ -870,16 +885,6 @@ _FX BOOLEAN Gui_Hook_DispatchMessage8(HMODULE module)
|
|||
UCHAR *a = (UCHAR *)__sys_DispatchMessageA;
|
||||
UCHAR *w = (UCHAR *)__sys_DispatchMessageW;
|
||||
|
||||
if (Dll_OsBuild >= 14942) {
|
||||
|
||||
HMODULE hWin32u;
|
||||
|
||||
hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_DispatchMessage8 = (P_DispatchMessage8)GetProcAddress(hWin32u, "NtUserDispatchMessage");
|
||||
SBIEDLL_HOOK_GUI(DispatchMessage8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (*(ULONG *)a == 0x000001BA && *(USHORT *)w == 0xD233) {
|
||||
|
||||
LONG a_offset;
|
||||
|
@ -907,10 +912,9 @@ _FX BOOLEAN Gui_Hook_DispatchMessage8(HMODULE module)
|
|||
}
|
||||
}
|
||||
|
||||
SbieApi_Log(2205, L"DispatchMessage8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif _WIN64
|
||||
|
||||
|
|
|
@ -72,7 +72,9 @@ static ULONG Gui_SetWindowLongA(HWND hWnd, int nIndex, ULONG dwNew);
|
|||
static ULONG_PTR Gui_SetWindowLong8(
|
||||
HWND hWnd, int nIndex, ULONG_PTR dwNew, ULONG IsAscii);
|
||||
|
||||
#ifndef _M_ARM64
|
||||
static BOOLEAN Gui_Hook_SetWindowLong8(HMODULE module);
|
||||
#endif
|
||||
|
||||
static ULONG Gui_GetClassLongW(HWND hWnd, int nIndex);
|
||||
|
||||
|
@ -93,7 +95,9 @@ static ULONG_PTR Gui_SetWindowLongPtrA(
|
|||
static ULONG_PTR Gui_SetWindowLongPtr8(
|
||||
HWND hWnd, int nIndex, ULONG_PTR dwNew, ULONG IsAscii);
|
||||
|
||||
#ifndef _M_ARM64
|
||||
static BOOLEAN Gui_Hook_SetWindowLongPtr8(HMODULE module);
|
||||
#endif
|
||||
|
||||
static ULONG_PTR Gui_GetClassLongPtrW(HWND hWnd, int nIndex);
|
||||
|
||||
|
@ -175,13 +179,25 @@ _FX BOOLEAN Gui_InitProp(HMODULE module)
|
|||
|
||||
#ifdef _WIN64
|
||||
|
||||
// new style hook on SetWindowLong on 64-bit Windows 8.1 and later
|
||||
if (Dll_OsBuild < 9600) {
|
||||
if (Dll_OsBuild >= 14942) { // Windows 10 1703 preview #7
|
||||
HMODULE hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_SetWindowLong8 = (P_SetWindowLong8) GetProcAddress(hWin32u, "NtUserSetWindowLong");
|
||||
SBIEDLL_HOOK_GUI(SetWindowLong8);
|
||||
}
|
||||
else if (Dll_OsBuild < 9600) {
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongA);
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongW);
|
||||
|
||||
} else if (! Gui_Hook_SetWindowLong8(module))
|
||||
}
|
||||
else
|
||||
#ifndef _M_ARM64
|
||||
// new style hook on SetWindowLong on 64-bit Windows 8.1 and later
|
||||
if (! Gui_Hook_SetWindowLong8(module))
|
||||
#endif
|
||||
{
|
||||
SbieApi_Log(2205, L"SetWindowLong8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#else ! _WIN64
|
||||
|
||||
|
@ -199,13 +215,25 @@ _FX BOOLEAN Gui_InitProp(HMODULE module)
|
|||
SBIEDLL_HOOK_GUI(GetWindowLongPtrA);
|
||||
SBIEDLL_HOOK_GUI(GetWindowLongPtrW);
|
||||
|
||||
// special hook on SetWindowLongPtr on 64-bit Windows 8 and later
|
||||
if (Dll_OsBuild < 8400) {
|
||||
if (Dll_OsBuild >= 14942) { // Windows 10 1703 preview #7
|
||||
HMODULE hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_SetWindowLongPtr8 = (P_SetWindowLongPtr8) GetProcAddress(hWin32u,"NtUserSetWindowLongPtr");
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongPtr8);
|
||||
}
|
||||
else if (Dll_OsBuild < 8400) {
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongPtrA);
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongPtrW);
|
||||
|
||||
} else if (! Gui_Hook_SetWindowLongPtr8(module))
|
||||
}
|
||||
else
|
||||
#ifndef _M_ARM64
|
||||
// special hook on SetWindowLongPtr on 64-bit Windows 8 and later
|
||||
if (! Gui_Hook_SetWindowLongPtr8(module))
|
||||
#endif
|
||||
{
|
||||
SbieApi_Log(2205, L"SetWindowLongPtr8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
SBIEDLL_HOOK_GUI(GetClassLongPtrA);
|
||||
SBIEDLL_HOOK_GUI(GetClassLongPtrW);
|
||||
|
@ -1052,7 +1080,8 @@ _FX ULONG_PTR Gui_SetWindowLong8(
|
|||
// Gui_Hook_SetWindowLong8
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _M_ARM64
|
||||
// $HookHack$ - Custom, not automated, Hook
|
||||
_FX BOOLEAN Gui_Hook_SetWindowLong8(HMODULE module)
|
||||
{
|
||||
//
|
||||
|
@ -1071,16 +1100,6 @@ _FX BOOLEAN Gui_Hook_SetWindowLong8(HMODULE module)
|
|||
UCHAR *a = (UCHAR *)__sys_SetWindowLongA;
|
||||
UCHAR *w = (UCHAR *)__sys_SetWindowLongW;
|
||||
|
||||
if (Dll_OsBuild >= 14942) {
|
||||
|
||||
HMODULE hWin32u;
|
||||
|
||||
hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_SetWindowLong8 = (P_SetWindowLong8) GetProcAddress(hWin32u, "NtUserSetWindowLong");
|
||||
SBIEDLL_HOOK_GUI(SetWindowLong8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (*(ULONG *)a == 0x0001B941 && *(ULONG *)w == 0xE9C93345) {
|
||||
|
||||
LONG a_offset = *(LONG *)(a + 7);
|
||||
|
@ -1108,10 +1127,9 @@ _FX BOOLEAN Gui_Hook_SetWindowLong8(HMODULE module)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
SbieApi_Log(2205, L"SetWindowLong8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Gui_SetWindowLongPtr8
|
||||
|
@ -1152,7 +1170,8 @@ _FX ULONG_PTR Gui_SetWindowLongPtr8(
|
|||
// Gui_Hook_SetWindowLongPtr8
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _M_ARM64
|
||||
// $HookHack$ - Custom, not automated, Hook
|
||||
_FX BOOLEAN Gui_Hook_SetWindowLongPtr8(HMODULE module)
|
||||
{
|
||||
//
|
||||
|
@ -1171,14 +1190,6 @@ _FX BOOLEAN Gui_Hook_SetWindowLongPtr8(HMODULE module)
|
|||
UCHAR *a = (UCHAR *)__sys_SetWindowLongPtrA;
|
||||
UCHAR *w = (UCHAR *)__sys_SetWindowLongPtrW;
|
||||
|
||||
if (Dll_OsBuild >= 14942) {
|
||||
HMODULE hWin32u;
|
||||
hWin32u = GetModuleHandleA("win32u.dll");
|
||||
__sys_SetWindowLongPtr8 = (P_SetWindowLongPtr8) GetProcAddress(hWin32u,"NtUserSetWindowLongPtr");
|
||||
SBIEDLL_HOOK_GUI(SetWindowLongPtr8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (*(ULONG *)a == 0x0001B941 && *(ULONG *)w == 0xE9C93345) {
|
||||
|
||||
LONG a_offset = *(LONG *)(a + 7);
|
||||
|
@ -1195,10 +1206,9 @@ _FX BOOLEAN Gui_Hook_SetWindowLongPtr8(HMODULE module)
|
|||
}
|
||||
}
|
||||
|
||||
SbieApi_Log(2205, L"SetWindowLongPtr8");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// End 64-bit Get/SetWindowLongPtr functions
|
||||
|
|
|
@ -326,7 +326,7 @@ BOOLEAN RpcRt_IsDynamicPortOpen(const WCHAR* wszPortName);
|
|||
|
||||
_FX BOOLEAN Ipc_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
void *NtAlpcCreatePort;
|
||||
void *NtAlpcConnectPort;
|
||||
|
@ -3678,7 +3678,7 @@ finish:
|
|||
}
|
||||
|
||||
if (err) {
|
||||
SbieApi_Log(2205, L"ConnectPort (%02X/%08X)", err, status);
|
||||
SbieApi_Log(2205, L"ConnectPort (%02X/%08X) %S", err, status, TruePath);
|
||||
if (status == STATUS_SUCCESS)
|
||||
status = STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
|
|
@ -69,6 +69,9 @@ _FX BOOLEAN Ipc_StartServer(const WCHAR *TruePath, BOOLEAN Async)
|
|||
BOOLEAN event_created = FALSE;
|
||||
BOOLEAN bRet = TRUE;
|
||||
|
||||
if (SbieApi_QueryConfBool(NULL, L"NoSandboxieRpcSs", FALSE))
|
||||
return FALSE;
|
||||
|
||||
//
|
||||
// in async mode, several args are passed through the TruePath pointer
|
||||
//
|
||||
|
|
|
@ -447,7 +447,9 @@ _FX ULONG IpHlp_CommonSend( ULONG_PTR IcmpHandle,
|
|||
req->h.length = len;
|
||||
req->h.msgid = MSGID_IPHLP_SEND_ECHO;
|
||||
|
||||
#ifndef _WIN64
|
||||
req->iswow64 = Dll_IsWow64;
|
||||
#endif
|
||||
|
||||
req->ip6 = ip6;
|
||||
req->ex2 = ex2;
|
||||
|
|
|
@ -249,11 +249,11 @@ static NTSTATUS Key_NtRenameKey(
|
|||
HANDLE KeyHandle, UNICODE_STRING *ReplacementName);
|
||||
|
||||
|
||||
//static NTSTATUS Key_NtSaveKey(
|
||||
// HANDLE KeyHandle, HANDLE FileHandle);
|
||||
//
|
||||
//static NTSTATUS Key_NtSaveKeyEx(
|
||||
// HANDLE KeyHandle, HANDLE FileHandle, ULONG Flags);
|
||||
static NTSTATUS Key_NtSaveKey(
|
||||
HANDLE KeyHandle, HANDLE FileHandle);
|
||||
|
||||
static NTSTATUS Key_NtSaveKeyEx(
|
||||
HANDLE KeyHandle, HANDLE FileHandle, ULONG Flags);
|
||||
|
||||
static NTSTATUS Key_NtLoadKey(
|
||||
OBJECT_ATTRIBUTES *TargetObjectAttributes,
|
||||
|
@ -294,8 +294,8 @@ static P_NtNotifyChangeKey __sys_NtNotifyChangeKey = NULL;
|
|||
static P_NtNotifyChangeMultipleKeys __sys_NtNotifyChangeMultipleKeys= NULL;
|
||||
static P_NtRenameKey __sys_NtRenameKey = NULL;
|
||||
|
||||
//static P_NtSaveKey __sys_NtSaveKey = NULL;
|
||||
//static P_NtSaveKeyEx __sys_NtSaveKeyEx = NULL;
|
||||
static P_NtSaveKey __sys_NtSaveKey = NULL;
|
||||
static P_NtSaveKeyEx __sys_NtSaveKeyEx = NULL;
|
||||
static P_NtLoadKey __sys_NtLoadKey = NULL;
|
||||
static P_NtLoadKey2 __sys_NtLoadKey2 = NULL;
|
||||
static P_NtLoadKey3 __sys_NtLoadKey3 = NULL;
|
||||
|
@ -377,7 +377,7 @@ BOOLEAN Key_Delete_v2 = FALSE;
|
|||
|
||||
_FX BOOLEAN Key_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
InitializeCriticalSection(&Key_Handles_CritSec);
|
||||
|
||||
|
@ -429,12 +429,12 @@ _FX BOOLEAN Key_Init(void)
|
|||
}
|
||||
|
||||
|
||||
//SBIEDLL_HOOK(Key_, NtSaveKey);
|
||||
//
|
||||
//void* NtSaveKeyEx = GetProcAddress(Dll_Ntdll, "NtSaveKeyEx");
|
||||
//if (NtSaveKeyEx) {
|
||||
// SBIEDLL_HOOK(Key_,NtSaveKeyEx);
|
||||
//}
|
||||
SBIEDLL_HOOK(Key_, NtSaveKey);
|
||||
|
||||
void* NtSaveKeyEx = GetProcAddress(Dll_Ntdll, "NtSaveKeyEx");
|
||||
if (NtSaveKeyEx) {
|
||||
SBIEDLL_HOOK(Key_,NtSaveKeyEx);
|
||||
}
|
||||
|
||||
SBIEDLL_HOOK(Key_, NtLoadKey);
|
||||
|
||||
|
@ -451,8 +451,6 @@ _FX BOOLEAN Key_Init(void)
|
|||
SBIEDLL_HOOK(Key_,NtLoadKeyEx);
|
||||
}
|
||||
|
||||
|
||||
Dll_OsBuild = GET_PEB_IMAGE_BUILD;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -832,11 +830,13 @@ check_sandbox_prefix:
|
|||
_FX NTSTATUS Key_FixNameWow64(
|
||||
ACCESS_MASK DesiredAccess, WCHAR **OutTruePath, WCHAR **OutCopyPath)
|
||||
{
|
||||
#ifndef _WIN64
|
||||
NTSTATUS status;
|
||||
OBJECT_ATTRIBUTES objattrs;
|
||||
UNICODE_STRING objname;
|
||||
HANDLE handle;
|
||||
WCHAR *TruePath, *BackslashPtr, *NewPtr;
|
||||
#endif
|
||||
|
||||
//
|
||||
// WOW64 Registry Redirector. in case that either of these is true:
|
||||
|
@ -848,8 +848,9 @@ _FX NTSTATUS Key_FixNameWow64(
|
|||
// and then reconstruct the output TruePath and CopyPath
|
||||
//
|
||||
|
||||
#ifndef _WIN64
|
||||
if (! Dll_IsWow64) { // caller is 64-bit process
|
||||
|
||||
#endif
|
||||
if (! (DesiredAccess & KEY_WOW64_32KEY))
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
|
@ -860,6 +861,7 @@ _FX NTSTATUS Key_FixNameWow64(
|
|||
// NoSysCallHooks END
|
||||
|
||||
return Key_FixNameWow64_2(OutTruePath, OutCopyPath);
|
||||
#ifndef _WIN64
|
||||
}
|
||||
|
||||
if (DesiredAccess & KEY_WOW64_64KEY)
|
||||
|
@ -955,6 +957,7 @@ _FX NTSTATUS Key_FixNameWow64(
|
|||
}
|
||||
|
||||
return status;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -1392,8 +1395,10 @@ _FX NTSTATUS Key_NtCreateKeyImpl(
|
|||
if (!NT_SUCCESS(status))
|
||||
__leave;
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64)
|
||||
OriginalDesiredAccess = DesiredAccess;
|
||||
#endif
|
||||
|
||||
DesiredAccess &= ~(KEY_WOW64_32KEY | KEY_WOW64_64KEY);
|
||||
}
|
||||
|
@ -4539,12 +4544,13 @@ finish:
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
//_FX NTSTATUS Key_NtSaveKey(
|
||||
// HANDLE KeyHandle, HANDLE FileHandle)
|
||||
//{
|
||||
// SbieApi_Log(2205, L"NtSaveKey");
|
||||
// return STATUS_SUCCESS;
|
||||
//}
|
||||
_FX NTSTATUS Key_NtSaveKey(
|
||||
HANDLE KeyHandle, HANDLE FileHandle)
|
||||
{
|
||||
// todo: copy all reg keys from host to box for the used KeyHandle such that all will be saved
|
||||
SbieApi_Log(2205, L"NtSaveKey");
|
||||
return __sys_NtSaveKey(KeyHandle, FileHandle);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -4552,12 +4558,13 @@ finish:
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
//_FX NTSTATUS Key_NtSaveKeyEx(
|
||||
// HANDLE KeyHandle, HANDLE FileHandle, ULONG Flags)
|
||||
//{
|
||||
// SbieApi_Log(2205, L"NtSaveKeyEx");
|
||||
// return STATUS_SUCCESS;
|
||||
//}
|
||||
_FX NTSTATUS Key_NtSaveKeyEx(
|
||||
HANDLE KeyHandle, HANDLE FileHandle, ULONG Flags)
|
||||
{
|
||||
// todo: copy all reg keys from host to box for the used KeyHandle such that all will be saved
|
||||
SbieApi_Log(2205, L"NtSaveKeyEx");
|
||||
return __sys_NtSaveKeyEx(KeyHandle, FileHandle, Flags);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -4577,8 +4584,12 @@ _FX WCHAR* Key_NtLoadKey_GetPath(OBJECT_ATTRIBUTES* SourceObjectAttributes)
|
|||
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
|
||||
//
|
||||
// open the file for write to migrate it into the box
|
||||
//
|
||||
|
||||
status = NtCreateFile(
|
||||
&FileHandle, FILE_READ_ATTRIBUTES | SYNCHRONIZE,
|
||||
&FileHandle, FILE_GENERIC_WRITE | SYNCHRONIZE,
|
||||
SourceObjectAttributes,
|
||||
&IoStatusBlock, NULL, 0, FILE_SHARE_VALID_FLAGS,
|
||||
FILE_OPEN,
|
||||
|
|
|
@ -109,8 +109,10 @@ _FX void Key_DeleteValueFromCLSID(
|
|||
HANDLE handle;
|
||||
|
||||
DesiredAccess = KEY_SET_VALUE;
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64)
|
||||
DesiredAccess |= KEY_WOW64_64KEY;
|
||||
#endif
|
||||
|
||||
path = Dll_AllocTemp(128 * sizeof(WCHAR));
|
||||
|
||||
|
|
|
@ -226,12 +226,16 @@ static DLL Ldr_Dlls[] = {
|
|||
{ L"osppc.dll", "osppc.dll", Scm_OsppcDll, 0}, // ensure osppsvc is running
|
||||
{ L"mso.dll", "mso.dll", File_MsoDll, 0}, // hack for File_IsRecoverable
|
||||
{ L"agcore.dll", "agcore.dll", Custom_SilverlightAgCore, 0}, // msft silverlight - deprecated
|
||||
|
||||
// $Workaround$ - 3rd party fix
|
||||
#ifndef _M_ARM64
|
||||
// Non Microsoft DLLs:
|
||||
{ L"acscmonitor.dll", "acscmonitor.dll", Acscmonitor_Init, 0},
|
||||
{ L"IDMIECC.dll", "IDMIECC.dll", Custom_InternetDownloadManager, 0},
|
||||
{ L"snxhk.dll", "snxhk.dll", Custom_Avast_SnxHk, 0},
|
||||
{ L"snxhk64.dll", "snxhk64.dll", Custom_Avast_SnxHk, 0},
|
||||
{ L"sysfer.dll", "sysfer.dll", Custom_SYSFER_DLL, 0},
|
||||
#endif
|
||||
#ifdef _WIN64
|
||||
{ L"dgapi64.dll", "dgapi64.dll", DigitalGuardian_Init, 0},
|
||||
#else
|
||||
|
@ -276,19 +280,22 @@ void CALLBACK Ldr_LdrDllNotification(ULONG NotificationReason, PLDR_DLL_NOTIFICA
|
|||
{
|
||||
ULONG_PTR LdrCookie = 0;
|
||||
NTSTATUS status = 0;
|
||||
|
||||
WCHAR text[4096];
|
||||
|
||||
if (NotificationReason == 1) {
|
||||
status = __sys_LdrLockLoaderLock(0, NULL, &LdrCookie);
|
||||
Ldr_MyDllCallbackNew(NotificationData->Loaded.BaseDllName->Buffer, (HMODULE)NotificationData->Loaded.DllBase, TRUE);
|
||||
__sys_LdrUnlockLoaderLock(0, LdrCookie);
|
||||
|
||||
return;
|
||||
Sbie_snwprintf(text, ARRAYSIZE(text), L"%s (loaded)", NotificationData->Loaded.BaseDllName->Buffer);
|
||||
}
|
||||
else if (NotificationReason == 2) {
|
||||
Ldr_MyDllCallbackNew(NotificationData->Unloaded.BaseDllName->Buffer, (HMODULE)NotificationData->Loaded.DllBase, FALSE);
|
||||
Ldr_MyDllCallbackNew(NotificationData->Unloaded.BaseDllName->Buffer, (HMODULE)NotificationData->Loaded.DllBase, FALSE);
|
||||
|
||||
Sbie_snwprintf(text, ARRAYSIZE(text), L"%s (unloaded)", NotificationData->Loaded.BaseDllName->Buffer);
|
||||
}
|
||||
return;
|
||||
|
||||
SbieApi_MonitorPutMsg(MONITOR_IMAGE, text);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -382,7 +389,7 @@ BOOL LdrCheckImmersive()
|
|||
|
||||
_FX BOOLEAN Ldr_Init()
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
UCHAR *ReadImageFileExecOptions;
|
||||
|
||||
|
|
|
@ -30,7 +30,15 @@
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
|
||||
|
||||
#define LDR_INJECT_SETTING_NAME L"InjectDllARM64"
|
||||
#define LDR_HOST_INJECT_SETTING_NAME L"HostInjectDllARM64"
|
||||
#define LDR_INJECT_NUM_SAVE_BYTES 16
|
||||
|
||||
|
||||
#elif _WIN64
|
||||
|
||||
|
||||
#define LDR_INJECT_SETTING_NAME L"InjectDll64"
|
||||
|
@ -38,7 +46,6 @@
|
|||
#define LDR_INJECT_NUM_SAVE_BYTES 12
|
||||
|
||||
|
||||
|
||||
#else ! _WIN64
|
||||
|
||||
|
||||
|
@ -747,7 +754,16 @@ _FX void Ldr_Inject_Init(BOOLEAN bHostInject)
|
|||
if (VirtualProtect(entrypoint, LDR_INJECT_NUM_SAVE_BYTES,
|
||||
PAGE_EXECUTE_READWRITE, &Ldr_Inject_OldProtect)) {
|
||||
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
|
||||
ULONG* aCode = (ULONG*)entrypoint;
|
||||
*aCode++ = 0x58000048; // ldr x8, 8
|
||||
*aCode++ = 0xD63F0100; // blr x8
|
||||
*(ULONG_PTR*)aCode = (ULONG_PTR)Ldr_Inject_Entry64;
|
||||
|
||||
NtFlushInstructionCache(GetCurrentProcess(), entrypoint, LDR_INJECT_NUM_SAVE_BYTES);
|
||||
|
||||
#elif _WIN64
|
||||
|
||||
entrypoint[0] = 0x48; // mov rax, Ldr_Inject_Entry64
|
||||
entrypoint[1] = 0xB8;
|
||||
|
@ -781,7 +797,11 @@ _FX void Ldr_Inject_Entry(ULONG_PTR *pRetAddr)
|
|||
// restore correct code sequence at the entrypoint
|
||||
//
|
||||
|
||||
#ifdef _M_ARM64
|
||||
entrypoint = ((UCHAR *)*pRetAddr) - (LDR_INJECT_NUM_SAVE_BYTES - sizeof(ULONG_PTR)); // after blr comes the 64bit address
|
||||
#else
|
||||
entrypoint = ((UCHAR *)*pRetAddr) - LDR_INJECT_NUM_SAVE_BYTES;
|
||||
#endif
|
||||
*pRetAddr = (ULONG_PTR)entrypoint;
|
||||
|
||||
// If entrypoint hook is different, need to adjust offset. Copying the original byets won't have the correct offset.
|
||||
|
@ -805,6 +825,10 @@ _FX void Ldr_Inject_Entry(ULONG_PTR *pRetAddr)
|
|||
VirtualProtect(entrypoint, LDR_INJECT_NUM_SAVE_BYTES,
|
||||
Ldr_Inject_OldProtect, &dummy_prot);
|
||||
|
||||
#ifdef _M_ARM64
|
||||
NtFlushInstructionCache(GetCurrentProcess(), entrypoint, LDR_INJECT_NUM_SAVE_BYTES);
|
||||
#endif
|
||||
|
||||
if (!g_bHostInject)
|
||||
{
|
||||
|
||||
|
|
|
@ -53,7 +53,9 @@
|
|||
|
||||
#ifdef BUILD_UTILITY_PASS2
|
||||
|
||||
#if MY_WIN64_FLAG
|
||||
#if MY_ARM64_FLAG
|
||||
LOWLEVEL RCDATA "../low/obj/ARM64/LowLevel.dll"
|
||||
#elif MY_WIN64_FLAG
|
||||
LOWLEVEL RCDATA "../low/obj/amd64/LowLevel.dll"
|
||||
#else
|
||||
LOWLEVEL RCDATA "../low/obj/i386/LowLevel.dll"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -63,7 +63,7 @@ static P_NtQueryObject __sys_NtQueryObject = NULL;
|
|||
|
||||
_FX BOOLEAN Obj_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
#if 0
|
||||
__sys_NtQueryObject = NtQueryObject;
|
||||
|
@ -71,6 +71,7 @@ _FX BOOLEAN Obj_Init(void)
|
|||
SBIEDLL_HOOK(Obj_,NtQueryObject);
|
||||
SBIEDLL_HOOK(Obj_,NtQueryVirtualMemory);
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -86,6 +86,15 @@ static _FX void Proc_FixBatchCommandLine(
|
|||
|
||||
static void Proc_StoreImagePath(THREAD_DATA *TlsData, HANDLE FileHandle);
|
||||
|
||||
static NTSTATUS Proc_LdrQueryImageFileExecutionOptionsEx(
|
||||
PUNICODE_STRING SubKey,
|
||||
PCWSTR ValueName,
|
||||
ULONG Type,
|
||||
PVOID Buffer,
|
||||
ULONG BufferSize,
|
||||
PULONG ReturnedLength,
|
||||
BOOLEAN Wow64);
|
||||
|
||||
static NTSTATUS Proc_RtlCreateProcessParametersEx(
|
||||
void *ProcessParameters,
|
||||
UNICODE_STRING *ImagePathName,
|
||||
|
@ -133,9 +142,11 @@ static BOOLEAN Proc_IsSoftwareUpdateW(const WCHAR *path);
|
|||
|
||||
//static BOOLEAN Proc_IsProcessRunning(const WCHAR *ImageToFind);
|
||||
|
||||
#ifndef _WIN64
|
||||
static BOOLEAN Proc_IsSplWow64(
|
||||
const WCHAR *lpApplicationName, const WCHAR *lpCommandLine,
|
||||
LPPROCESS_INFORMATION lpProcessInformation);
|
||||
#endif
|
||||
|
||||
static HRESULT Proc_RunSetupCommandW(
|
||||
HWND hWnd,
|
||||
|
@ -196,6 +207,15 @@ typedef BOOL (*P_CreateProcessWithTokenW)(
|
|||
void *lpStartupInfo,
|
||||
LPPROCESS_INFORMATION lpProcessInformation);
|
||||
|
||||
typedef NTSTATUS (*P_LdrQueryImageFileExecutionOptionsEx)(
|
||||
PUNICODE_STRING SubKey,
|
||||
PCWSTR ValueName,
|
||||
ULONG Type,
|
||||
PVOID Buffer,
|
||||
ULONG BufferSize,
|
||||
PULONG ReturnedLength,
|
||||
BOOLEAN Wow64);
|
||||
|
||||
typedef NTSTATUS (*P_RtlCreateProcessParametersEx)(
|
||||
void *ProcessParameters,
|
||||
UNICODE_STRING *ImagePathName,
|
||||
|
@ -279,6 +299,9 @@ static P_CreateProcessInternal __sys_CreateProcessInternalW = NULL;
|
|||
|
||||
static P_CreateProcessWithTokenW __sys_CreateProcessWithTokenW = NULL;
|
||||
|
||||
static P_LdrQueryImageFileExecutionOptionsEx
|
||||
__sys_LdrQueryImageFileExecutionOptionsEx = NULL;
|
||||
|
||||
static P_RtlCreateProcessParametersEx
|
||||
__sys_RtlCreateProcessParametersEx = NULL;
|
||||
|
||||
|
@ -317,6 +340,7 @@ static BOOL g_boolWasWerFaultLastProcess = FALSE;
|
|||
|
||||
BOOL Dll_ElectronWorkaround = FALSE;
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Proc_Init
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -324,7 +348,7 @@ BOOL Dll_ElectronWorkaround = FALSE;
|
|||
|
||||
_FX BOOLEAN Proc_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
P_CreateProcessInternal CreateProcessInternalW;
|
||||
ANSI_STRING ansi;
|
||||
|
@ -349,6 +373,9 @@ _FX BOOLEAN Proc_Init(void)
|
|||
|
||||
SBIEDLL_HOOK(Proc_,NtQueryInformationProcess);
|
||||
|
||||
if (Dll_OsBuild >= 14942) // Windows 10
|
||||
SbieDll_DisableCHPE();
|
||||
|
||||
//
|
||||
// RtlCreateProcessParameters
|
||||
//
|
||||
|
@ -366,6 +393,12 @@ _FX BOOLEAN Proc_Init(void)
|
|||
SBIEDLL_HOOK(Proc_,NtCreateUserProcess);
|
||||
}
|
||||
|
||||
//
|
||||
// Kernel32 stuff
|
||||
//
|
||||
|
||||
module = Dll_KernelBase;
|
||||
|
||||
//
|
||||
// UpdateProcThreadAttribute
|
||||
//
|
||||
|
@ -446,6 +479,24 @@ _FX BOOLEAN Proc_Init(void)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// SbieDll_DisableCHPE
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX BOOLEAN SbieDll_DisableCHPE(void)
|
||||
{
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
P_LdrQueryImageFileExecutionOptionsEx LdrQueryImageFileExecutionOptionsEx =
|
||||
(P_LdrQueryImageFileExecutionOptionsEx) GetProcAddress(
|
||||
Dll_Ntdll, "LdrQueryImageFileExecutionOptionsEx");
|
||||
SBIEDLL_HOOK(Proc_, LdrQueryImageFileExecutionOptionsEx);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Proc_Init_AdvApi
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -1451,11 +1502,13 @@ _FX BOOL Proc_AlternateCreateProcess(
|
|||
return TRUE; // exit CreateProcessInternal
|
||||
}
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Proc_IsSplWow64(lpApplicationName, lpCommandLine,
|
||||
lpProcessInformation)) {
|
||||
|
||||
return FALSE; // continue with CreateProcessInternal
|
||||
}
|
||||
#endif
|
||||
|
||||
if (Proc_IsForcedElevation(lpCommandLine,
|
||||
lpCurrentDirectory,
|
||||
|
@ -1886,6 +1939,38 @@ _FX NTSTATUS Proc_SectionCallback(HANDLE FileHandle)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Proc_LdrQueryImageFileExecutionOptionsEx
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX NTSTATUS Proc_LdrQueryImageFileExecutionOptionsEx(
|
||||
PUNICODE_STRING SubKey,
|
||||
PCWSTR ValueName,
|
||||
ULONG Type,
|
||||
PVOID Buffer,
|
||||
ULONG BufferSize,
|
||||
PULONG ReturnedLength,
|
||||
BOOLEAN Wow64)
|
||||
{
|
||||
//
|
||||
// Sandboxie on ARM64 requires x86 applications NOT to use the CHPE binaries.
|
||||
//
|
||||
// This hook causes CreateProcessInternalW to set PsAttributeChpe = 0 which
|
||||
// makes the kernel load the regular non hybrid version of ntdll into the new process.
|
||||
//
|
||||
// See comment in HookImageOptionsEx core/low/init.c for more details.
|
||||
//
|
||||
|
||||
if (_wcsicmp(ValueName, L"LoadCHPEBinaries") == 0) {
|
||||
*(ULONG*)Buffer = 0;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
return __sys_LdrQueryImageFileExecutionOptionsEx(SubKey, ValueName, Type, Buffer, BufferSize, ReturnedLength, Wow64);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Proc_RtlCreateProcessParametersEx
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -2523,7 +2608,7 @@ _FX BOOLEAN Proc_IsSoftwareUpdateW(const WCHAR *path)
|
|||
// Proc_IsSplWow64
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef _WIN64
|
||||
_FX BOOLEAN Proc_IsSplWow64(
|
||||
const WCHAR *lpApplicationName, const WCHAR *lpCommandLine,
|
||||
LPPROCESS_INFORMATION lpProcessInformation)
|
||||
|
@ -2551,7 +2636,7 @@ _FX BOOLEAN Proc_IsSplWow64(
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Proc_Init_AdvPack
|
||||
|
@ -2709,9 +2794,9 @@ _FX RTL_USER_PROCESS_PARAMETERS *Proc_GetRtlUserProcessParameters(void)
|
|||
RTL_USER_PROCESS_PARAMETERS *ProcessParms =
|
||||
(RTL_USER_PROCESS_PARAMETERS *)
|
||||
#ifdef _WIN64
|
||||
(*(ULONG_PTR *)(__readgsqword(0x60) + 0x20));
|
||||
(*(ULONG_PTR *)(NtCurrentPeb() + 0x20));
|
||||
#else
|
||||
(*(ULONG_PTR *)(__readfsdword(0x30) + 0x10));
|
||||
(*(ULONG_PTR *)(NtCurrentPeb() + 0x10));
|
||||
#endif _WIN64
|
||||
return ProcessParms;
|
||||
}
|
||||
|
|
|
@ -1020,12 +1020,35 @@ void RpcRt_NdrClientCallX(const WCHAR* Function, void* ReturnAddress, PMIDL_STUB
|
|||
SbieApi_MonitorPutMsg(MONITOR_RPC | MONITOR_TRACE, text);
|
||||
}
|
||||
|
||||
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
|
||||
#ifdef _WIN64
|
||||
ULONG_PTR RpcRt_NdrClientCall2ARM64(
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack, void* ReturnAddress) {
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor, pFormat, pStack);
|
||||
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
}
|
||||
|
||||
#if !defined(_M_ARM64EC)
|
||||
ULONG_PTR RpcRt_NdrClientCall3ARM64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack, void* ReturnAddress) {
|
||||
|
||||
#else
|
||||
ULONG_PTR RpcRt_NdrClientCall3ARM64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 4);
|
||||
#endif
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall3", ReturnAddress, pProxyInfo->pStubDesc, pProxyInfo->ProcFormatString, pStack);
|
||||
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
}
|
||||
|
||||
#elif _WIN64
|
||||
|
||||
ULONG_PTR RpcRt_NdrClientCall2_x64(
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack)
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 3);
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor, pFormat, pStack);
|
||||
|
@ -1034,8 +1057,7 @@ ULONG_PTR RpcRt_NdrClientCall2_x64(
|
|||
}
|
||||
|
||||
ULONG_PTR RpcRt_NdrClientCall3_x64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack)
|
||||
{
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 4);
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall3", ReturnAddress, pProxyInfo->pStubDesc, pProxyInfo->ProcFormatString, pStack);
|
||||
|
@ -1047,8 +1069,8 @@ ULONG_PTR RpcRt_NdrClientCall3_x64(
|
|||
|
||||
ULONG_PTR __cdecl RpcRt_NdrClientCall_x86(
|
||||
void* ReturnAddress,
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack)
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack) {
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall", ReturnAddress, pStubDescriptor, pFormat, pStack);
|
||||
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
|
@ -1056,8 +1078,8 @@ ULONG_PTR __cdecl RpcRt_NdrClientCall_x86(
|
|||
|
||||
ULONG_PTR __cdecl RpcRt_NdrClientCall2_x86(
|
||||
void* ReturnAddress,
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack)
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack) {
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor, pFormat, pStack);
|
||||
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
|
@ -1070,11 +1092,44 @@ ULONG_PTR __cdecl RpcRt_NdrClientCall2_x86(
|
|||
// RpcRt_NdrAsyncClientCall
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifdef _WIN64
|
||||
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
|
||||
ULONG_PTR RpcRt_NdrAsyncClientCallARM64(
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack, void* ReturnAddress) {
|
||||
|
||||
// pStack[0] -> RPC_ASYNC_STATE
|
||||
// pStack[1] -> RPC_BINDING_HANDLE
|
||||
// other args
|
||||
|
||||
RpcRt_NdrClientCallX(L"NdrAsyncClientCall", ReturnAddress, pStubDescriptor, pFormat, &pStack[1]);
|
||||
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
}
|
||||
|
||||
#if !defined(_M_ARM64EC)
|
||||
ALIGNED BOOLEAN __cdecl RpcRt_Ndr64AsyncClientCallARM64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack, void* ReturnAddress) {
|
||||
#else
|
||||
ALIGNED BOOLEAN __cdecl RpcRt_Ndr64AsyncClientCallARM64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 4);
|
||||
#endif
|
||||
|
||||
if (g_rpc_client_hooks) {
|
||||
RpcRt_NdrClientCallX(L"Ndr64AsyncClientCall", ReturnAddress, pProxyInfo->pStubDesc, pProxyInfo->ProcFormatString, &pStack[1]);
|
||||
}
|
||||
|
||||
if (!SbieApi_QueryConfBool(NULL, L"NoUACProxy", FALSE))
|
||||
if (Dll_OsBuild >= 6000) {
|
||||
return Secure_CheckElevation((struct SECURE_UAC_ARGS*)pStack);
|
||||
}
|
||||
return FALSE; // return TRUE to not call the trampoline upon return
|
||||
}
|
||||
|
||||
#elif _WIN64
|
||||
|
||||
ULONG_PTR RpcRt_NdrAsyncClientCall_x64(
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack)
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 3);
|
||||
|
||||
// pStack[0] -> RPC_ASYNC_STATE
|
||||
|
@ -1087,8 +1142,7 @@ ULONG_PTR RpcRt_NdrAsyncClientCall_x64(
|
|||
}
|
||||
|
||||
ALIGNED BOOLEAN __cdecl RpcRt_Ndr64AsyncClientCall_x64(
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack)
|
||||
{
|
||||
MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, void** pStack) {
|
||||
void* ReturnAddress = *(pStack - 4);
|
||||
|
||||
if (g_rpc_client_hooks) {
|
||||
|
@ -1106,8 +1160,8 @@ ALIGNED BOOLEAN __cdecl RpcRt_Ndr64AsyncClientCall_x64(
|
|||
|
||||
ALIGNED BOOLEAN __cdecl RpcRt_NdrAsyncClientCall_x86(
|
||||
void* ReturnAddress,
|
||||
PMIDL_STUB_DESC pStubDescriptor, void* pFormat, void** pStack)
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDescriptor, void* pFormat, void** pStack) {
|
||||
|
||||
if (g_rpc_client_hooks) {
|
||||
RpcRt_NdrClientCallX(L"NdrAsyncClientCall", ReturnAddress, pStubDescriptor, pFormat, &pStack[1]);
|
||||
}
|
||||
|
|
|
@ -207,6 +207,19 @@ _FX LONG SbieApi_Call(ULONG api_code, LONG arg_num, ...)
|
|||
|
||||
_FX LONG SbieApi_GetVersion(
|
||||
WCHAR *out_version) // WCHAR [16]
|
||||
{
|
||||
return SbieApi_GetVersionEx(out_version, NULL);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// SbieApi_GetVersionEx
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX LONG SbieApi_GetVersionEx(
|
||||
WCHAR* version_string, // WCHAR [16]
|
||||
ULONG* abi_version)
|
||||
{
|
||||
NTSTATUS status;
|
||||
__declspec(align(8)) ULONG64 parms[API_NUM_ARGS];
|
||||
|
@ -214,12 +227,15 @@ _FX LONG SbieApi_GetVersion(
|
|||
|
||||
memzero(parms, sizeof(parms));
|
||||
args->func_code = API_GET_VERSION;
|
||||
args->string.val64 = (ULONG_PTR)out_version;
|
||||
args->string.val = version_string;
|
||||
args->abi_ver.val = abi_version;
|
||||
|
||||
status = SbieApi_Ioctl(parms);
|
||||
|
||||
if (! NT_SUCCESS(status))
|
||||
wcscpy(out_version, L"unknown");
|
||||
if (! NT_SUCCESS(status)){
|
||||
if (version_string) wcscpy(version_string, L"unknown");
|
||||
if (abi_version) *abi_version = 0;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
|
|
@ -56,6 +56,10 @@ LONG SbieApi_Call(ULONG api_code, LONG arg_num, ...);
|
|||
SBIEAPI_EXPORT LONG SbieApi_GetVersion(
|
||||
WCHAR *version_string); // WCHAR [16]
|
||||
|
||||
SBIEAPI_EXPORT LONG SbieApi_GetVersionEx(
|
||||
WCHAR* version_string, // WCHAR [16]
|
||||
ULONG* abi_version);
|
||||
|
||||
/*SBIEAPI_EXPORT
|
||||
LONG SbieApi_GetWork(
|
||||
ULONG SessionId,
|
||||
|
|
|
@ -229,6 +229,11 @@ SBIEDLL_EXPORT BOOLEAN SbieDll_GetBorderColor(const WCHAR* box_name, COLORREF*
|
|||
|
||||
SBIEDLL_EXPORT BOOLEAN SbieDll_IsReservedFileName(const WCHAR* name);
|
||||
|
||||
SBIEDLL_EXPORT void DbgPrint(const char* format, ...);
|
||||
SBIEDLL_EXPORT void DbgTrace(const char* format, ...);
|
||||
|
||||
SBIEDLL_EXPORT BOOLEAN SbieDll_DisableCHPE(void);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -620,6 +620,10 @@ _FX BOOLEAN Scm_Init_AdvApi(HMODULE module)
|
|||
|
||||
BOOLEAN Scm_HookRegisterServiceCtrlHandler(HMODULE module)
|
||||
{
|
||||
|
||||
#ifndef _M_ARM64
|
||||
// $HookHack$ - Custom, not automated, Hook no longer applyes to later windows 10 builds
|
||||
#ifdef _WIN64
|
||||
static const UCHAR PrologW[] = {
|
||||
0x45, 0x33, 0xC9, // xor r9d,r9d
|
||||
0x45, 0x33, 0xC0, // xor r8d,r8d
|
||||
|
@ -631,8 +635,6 @@ BOOLEAN Scm_HookRegisterServiceCtrlHandler(HMODULE module)
|
|||
};
|
||||
BOOLEAN HookedRegisterServiceCtrlHandler = FALSE;
|
||||
|
||||
#ifdef _WIN64
|
||||
|
||||
//
|
||||
// on 64-bit Windows, ADVAPI32!RegisterServiceCtrlHandlerW is an 11-byte
|
||||
// function embedded in the code space of another function, so to prevent
|
||||
|
@ -662,19 +664,19 @@ BOOLEAN Scm_HookRegisterServiceCtrlHandler(HMODULE module)
|
|||
}
|
||||
}
|
||||
|
||||
if (HookedRegisterServiceCtrlHandler)
|
||||
return TRUE;
|
||||
#endif _WIN64
|
||||
#endif
|
||||
|
||||
//
|
||||
// otherwise hook the four functions normally
|
||||
//
|
||||
|
||||
if (! HookedRegisterServiceCtrlHandler) {
|
||||
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerA);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerW);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerExA);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerExW);
|
||||
}
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerA);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerW);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerExA);
|
||||
SBIEDLL_HOOK_SCM(RegisterServiceCtrlHandlerExW);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -146,6 +146,7 @@ _FX BOOLEAN Scm_SecHostDll(HMODULE module)
|
|||
}
|
||||
}
|
||||
|
||||
// $HookHack$ - API Redirection
|
||||
for (i = 0; funcNamesAW[i].FuncNameA; ++i) {
|
||||
|
||||
void *ResPtr;
|
||||
|
@ -156,7 +157,7 @@ _FX BOOLEAN Scm_SecHostDll(HMODULE module)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
ResPtr = SbieDll_Hook((char *)funcNamesAW[i].FuncNameA, SecPtr, AdvPtr, module);
|
||||
ResPtr = SbieDll_Hook((char *)funcNamesAW[i].FuncNameA, SecPtr, AdvPtr, (HMODULE)-1);
|
||||
if (! ResPtr)
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -166,6 +166,7 @@ _FX WCHAR *Scm_GetServiceConfigString(SERVICE_QUERY_RPL *rpl, UCHAR type)
|
|||
{
|
||||
ULONG_PTR ptr;
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
//
|
||||
|
@ -181,7 +182,9 @@ _FX WCHAR *Scm_GetServiceConfigString(SERVICE_QUERY_RPL *rpl, UCHAR type)
|
|||
else if (type == 'P')
|
||||
ptr = (ULONG_PTR)cfg->lpBinaryPathName;
|
||||
|
||||
} else {
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
||||
//
|
||||
// if not Wow64 then caller bitness matches bitness of SbieSvc
|
||||
|
@ -253,6 +256,7 @@ _FX void *Scm_QueryBoxedServiceByName(
|
|||
// lpLoadOrderGroup and lpDependencies
|
||||
+ sizeof(WCHAR) * 2;
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
//
|
||||
|
@ -266,6 +270,7 @@ _FX void *Scm_QueryBoxedServiceByName(
|
|||
|
||||
service_config_len += 5 * sizeof(ULONG);
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// DisplayName
|
||||
|
@ -338,19 +343,23 @@ _FX void *Scm_QueryBoxedServiceByName(
|
|||
service_config_len = sizeof(SERVICE_DESCRIPTION)
|
||||
+ (wcslen(ServiceNm) + 1) * sizeof(WCHAR);
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
// set up extra space for lpDescription
|
||||
service_config_len += sizeof(ULONG);
|
||||
}
|
||||
#endif
|
||||
|
||||
} else if (with_service_config == SERVICE_CONFIG_FAILURE_ACTIONS) {
|
||||
|
||||
service_config_len = sizeof(SERVICE_FAILURE_ACTIONS);
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
// set up extra space for lpRebootMsg, lpCommand and lpsaActions
|
||||
service_config_len += 3 * sizeof(ULONG);
|
||||
}
|
||||
#endif
|
||||
|
||||
} else if (with_service_config == 3 || with_service_config == 4) {
|
||||
|
||||
|
@ -622,6 +631,7 @@ after_service_status:
|
|||
// for the pointer fields
|
||||
//
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
p_lpBinaryPathName = (ULONG_PTR *)(base +
|
||||
|
@ -637,7 +647,9 @@ after_service_status:
|
|||
|
||||
next = (WCHAR *)(base + sizeof(QUERY_SERVICE_CONFIG_64));
|
||||
|
||||
} else {
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
||||
p_lpBinaryPathName = (ULONG_PTR *)(base +
|
||||
FIELD_OFFSET(QUERY_SERVICE_CONFIG, lpBinaryPathName));
|
||||
|
@ -713,8 +725,10 @@ after_service_status:
|
|||
|
||||
ULONG_PTR base = (ULONG_PTR)&rpl->service_config;
|
||||
ULONG offset = sizeof(ULONG_PTR);
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64)
|
||||
offset += sizeof(ULONG);
|
||||
#endif
|
||||
*(ULONG_PTR *)base = offset;
|
||||
wcscpy((WCHAR *)(base + offset), ServiceNm);
|
||||
}
|
||||
|
@ -870,6 +884,7 @@ _FX BOOL Scm_QueryServiceConfigW(
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
//
|
||||
|
@ -928,7 +943,9 @@ _FX BOOL Scm_QueryServiceConfigW(
|
|||
*optr = L'\0';
|
||||
}
|
||||
|
||||
} else {
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
||||
//
|
||||
// copy 32-bit QUERY_SERVICE_CONFIGW structure to caller
|
||||
|
|
|
@ -362,7 +362,7 @@ void Secure_InitSecurityDescriptors(void)
|
|||
|
||||
_FX BOOLEAN Secure_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
void *RtlQueryElevationFlags;
|
||||
void *RtlCheckTokenMembershipEx;
|
||||
|
|
|
@ -1142,6 +1142,7 @@ retry:
|
|||
// then look again in HKEY_CLASSES_ROOT\Wow64
|
||||
//
|
||||
|
||||
#ifndef _WIN64
|
||||
if (Dll_IsWow64) {
|
||||
|
||||
wcscpy(subkey2, L"Wow6432Node\\");
|
||||
|
@ -1152,6 +1153,7 @@ retry:
|
|||
if (NT_SUCCESS(status))
|
||||
return hkey;
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// if we looked at HKEY_CURRENT_USER, try again for HKEY_LOCAL_MACHINE
|
||||
|
@ -1771,12 +1773,16 @@ _FX HRESULT SH32_IShellExtInit_Initialize(
|
|||
void *pShellExtInit,
|
||||
void *pidlFolder, IDataObject *pDataObject, HKEY hkeyProgID)
|
||||
{
|
||||
typedef HRESULT (*P_Initialize)(void *, void *, IDataObject *, HKEY);
|
||||
#if !defined(_M_ARM64) && !defined(_M_ARM64EC)
|
||||
ULONG_PTR *StubData = Dll_JumpStubData();
|
||||
#else
|
||||
ULONG_PTR *StubData = (ULONG_PTR *)hkeyProgID;
|
||||
hkeyProgID = (HKEY)StubData[3];
|
||||
#endif
|
||||
|
||||
extern IDataObject *Ole_XDataObject_From_IDataObject(
|
||||
IDataObject *pDataObject);
|
||||
|
||||
typedef HRESULT (*P_Initialize)(void *, void *, IDataObject *, HKEY);
|
||||
return ((P_Initialize)StubData[1])(
|
||||
pShellExtInit, pidlFolder,
|
||||
Ole_XDataObject_From_IDataObject(pDataObject),
|
||||
|
@ -1785,12 +1791,16 @@ _FX HRESULT SH32_IShellExtInit_Initialize(
|
|||
|
||||
|
||||
_FX HRESULT SH32_IContextMenuHook_QueryInterface(
|
||||
void *pContextMenu, REFIID riid, void **ppv)
|
||||
{
|
||||
void *pContextMenu, REFIID riid, void **ppv
|
||||
#if !defined(_M_ARM64) && !defined(_M_ARM64EC)
|
||||
) {
|
||||
ULONG_PTR *StubData = Dll_JumpStubData();
|
||||
#else
|
||||
, ULONG_PTR *StubData) {
|
||||
#endif
|
||||
|
||||
EXTERN_C const IID IID_IShellExtInit;
|
||||
typedef HRESULT (*P_QueryInterface)(void *, REFIID, void **);
|
||||
ULONG_PTR *StubData = Dll_JumpStubData();
|
||||
|
||||
HRESULT hr = ((P_QueryInterface)StubData[1])(pContextMenu, riid, ppv);
|
||||
if (SUCCEEDED(hr) &&
|
||||
memcmp(riid, &IID_IShellExtInit, sizeof(GUID)) == 0) {
|
||||
|
|
|
@ -1216,9 +1216,9 @@ _FX HANDLE Sxs_CreateActCtxW(ACTCTX *ActCtx)
|
|||
if (ActCtx->dwFlags & ACTCTX_FLAG_SET_PROCESS_DEFAULT) {
|
||||
|
||||
#ifdef _WIN64
|
||||
pActivationContextData = (ULONG_PTR *)(__readgsqword(0x60) + 0x2F8);
|
||||
pActivationContextData = (ULONG_PTR *)(NtCurrentPeb() + 0x2F8);
|
||||
#else
|
||||
pActivationContextData = (ULONG_PTR *)(__readfsdword(0x30) + 0x1F8);
|
||||
pActivationContextData = (ULONG_PTR *)(NtCurrentPeb() + 0x1F8);
|
||||
#endif _WIN64
|
||||
|
||||
if (*pActivationContextData) {
|
||||
|
@ -1656,7 +1656,7 @@ _FX BOOLEAN Sxs_InitKernel32(void)
|
|||
|
||||
if (Dll_ImageType == DLL_IMAGE_SANDBOXIE_RPCSS ||
|
||||
|
||||
SbieApi_QueryConfBool(NULL, L"DisableBoxedWinSxS", FALSE)) {
|
||||
Config_GetSettingsForImageName_bool(L"DisableBoxedWinSxS", FALSE)) {
|
||||
|
||||
Sxs_UseAltCreateActCtx = TRUE;
|
||||
}
|
||||
|
@ -1682,6 +1682,8 @@ _FX BOOLEAN Sxs_InitKernel32(void)
|
|||
}
|
||||
}
|
||||
|
||||
module = Dll_Ntdll;
|
||||
|
||||
//
|
||||
// Opera hooks NtSetInformationThread. SboxDll calls __sys_NtSetInformationThread to bypass Opera hook.
|
||||
// See the comment about Thread_SetInformationThread_ChangeNotifyToken in Gui_ConnectToWindowStationAndDesktop
|
||||
|
@ -1699,8 +1701,6 @@ _FX BOOLEAN Sxs_InitKernel32(void)
|
|||
if (Dll_ImageType != DLL_IMAGE_TRUSTED_INSTALLER)
|
||||
return TRUE;
|
||||
|
||||
module = Dll_Ntdll;
|
||||
|
||||
NtCreateTransaction = GetProcAddress(module, "NtCreateTransaction");
|
||||
NtOpenTransaction = GetProcAddress(module, "NtOpenTransaction");
|
||||
NtCommitTransaction = GetProcAddress(module, "NtCommitTransaction");
|
||||
|
@ -1760,6 +1760,8 @@ _FX BOOLEAN Sxs_InitKernel32(void)
|
|||
|
||||
if (Dll_OsBuild >= 8400) {
|
||||
|
||||
module = Dll_KernelBase;
|
||||
|
||||
typedef BOOL (*P_CheckTokenMembership)(
|
||||
HANDLE hToken, void *pSid, BOOL *IsMember);
|
||||
P_CheckTokenMembership CheckTokenMembership =
|
||||
|
@ -1823,9 +1825,9 @@ _FX void Sxs_ActivateDefaultManifest(void *ImageBase)
|
|||
ULONG_PTR *pActivationContextData;
|
||||
|
||||
#ifdef _WIN64
|
||||
pActivationContextData = (ULONG_PTR *)(__readgsqword(0x60) + 0x2F8);
|
||||
pActivationContextData = (ULONG_PTR *)(NtCurrentPeb() + 0x2F8);
|
||||
#else
|
||||
pActivationContextData = (ULONG_PTR *)(__readfsdword(0x30) + 0x1F8);
|
||||
pActivationContextData = (ULONG_PTR *)(NtCurrentPeb() + 0x1F8);
|
||||
#endif _WIN64
|
||||
|
||||
*pActivationContextData = 0;
|
||||
|
|
|
@ -122,7 +122,7 @@ BOOLEAN SysInfo_CanUseJobs = FALSE;
|
|||
|
||||
_FX BOOLEAN SysInfo_Init(void)
|
||||
{
|
||||
HMODULE module = NULL;
|
||||
HMODULE module = Dll_Ntdll;
|
||||
|
||||
void *NtTraceEvent;
|
||||
|
||||
|
@ -146,9 +146,12 @@ _FX BOOLEAN SysInfo_Init(void)
|
|||
SBIEDLL_HOOK(SysInfo_, NtSetInformationJobObject);
|
||||
}
|
||||
|
||||
{
|
||||
HMODULE module = Dll_Kernel32;
|
||||
|
||||
SBIEDLL_HOOK(SysInfo_,SetLocaleInfoW);
|
||||
SBIEDLL_HOOK(SysInfo_,SetLocaleInfoA);
|
||||
SBIEDLL_HOOK(SysInfo_, SetLocaleInfoW);
|
||||
SBIEDLL_HOOK(SysInfo_, SetLocaleInfoA);
|
||||
}
|
||||
|
||||
//
|
||||
// we don't want to hook NtTraceEvent in kernel mode
|
||||
|
|
|
@ -61,7 +61,7 @@ static P_OutputDebugString __sys_OutputDebugStringA = NULL;
|
|||
|
||||
_FX int Trace_Init(void)
|
||||
{
|
||||
HMODULE module = NULL; // fix-me
|
||||
HMODULE module = NULL;
|
||||
|
||||
P_RtlSetLastWin32Error RtlSetLastWin32Error;
|
||||
P_OutputDebugString OutputDebugStringW;
|
||||
|
@ -160,7 +160,7 @@ WCHAR* Trace_FindModuleByAddress(void* address)
|
|||
{
|
||||
Entry = CONTAINING_RECORD(Next, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
|
||||
|
||||
if (Entry->DllBase < address && (UINT_PTR)Entry->DllBase + Entry->SizeOfImage > (UINT_PTR)address)
|
||||
if (Entry->DllBase <= address && (UINT_PTR)Entry->DllBase + Entry->SizeOfImage > (UINT_PTR)address)
|
||||
{
|
||||
found = Entry->BaseDllName.Buffer;
|
||||
break;
|
||||
|
@ -385,7 +385,6 @@ const wchar_t* Trace_SbieGuiFunc2Str(ULONG func)
|
|||
case GUI_WND_HOOK_NOTIFY: return L"GUI_WND_HOOK_NOTIFY";
|
||||
case GUI_WND_HOOK_REGISTER: return L"GUI_WND_HOOK_REGISTER";
|
||||
case GUI_KILL_JOB: return L"GUI_KILL_JOB";
|
||||
case GUI_MAX_REQUEST_CODE: return L"GUI_MAX_REQUEST_CODE";
|
||||
default: return L"GUI_UNKNOWN";
|
||||
}
|
||||
}
|
|
@ -139,6 +139,7 @@ Ldr_Inject_Entry32@0 PROC C PUBLIC
|
|||
; assumes the stack is zero
|
||||
;
|
||||
|
||||
; $Workaround$ - 3rd party fix
|
||||
lea edi,[esp-200h]
|
||||
mov ecx,200h/4
|
||||
xor eax,eax
|
||||
|
|
|
@ -77,6 +77,8 @@ ProtectCall4 PROC
|
|||
ProtectCall4 ENDP
|
||||
|
||||
|
||||
ifndef _M_ARM64EC
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_Ndr64AsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
@ -126,6 +128,8 @@ WeHandleElevation:
|
|||
RpcRt_Ndr64AsyncClientCall ENDP
|
||||
|
||||
|
||||
endif
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Ldr_Inject_Entry64
|
||||
;----------------------------------------------------------------------------
|
||||
|
@ -151,6 +155,7 @@ Ldr_Inject_Entry64 PROC
|
|||
; assumes the stack is zero
|
||||
;
|
||||
|
||||
; $Workaround$ - 3rd party fix
|
||||
lea rdi,[rsp-200h]
|
||||
mov rcx,200h/8
|
||||
xor rax,rax
|
||||
|
@ -166,7 +171,9 @@ Ldr_Inject_Entry64 ENDP
|
|||
; Gui_FixupCallbackPointers
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
Gui_FixupCallbackPointers PROC
|
||||
|
||||
;
|
||||
|
@ -192,6 +199,8 @@ l02: ret
|
|||
Gui_FixupCallbackPointers ENDP
|
||||
|
||||
|
||||
ifndef _M_ARM64EC
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Secure_NdrAsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
@ -340,4 +349,4 @@ CancelCall3:
|
|||
|
||||
RpcRt_NdrClientCall3 ENDP
|
||||
|
||||
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,259 @@
|
|||
;------------------------------------------------------------------------
|
||||
; Copyright 2022 David Xanatos, xanasoft.com
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, either version 3 of the License, or
|
||||
; (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
;------------------------------------------------------------------------
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Assembler Utilities -- ARM64EC
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
AREA my_arm__ec, CODE, READONLY
|
||||
|
||||
|
||||
EXPORT RpcRt_NdrClientCall2
|
||||
IMPORT RpcRt_NdrClientCall2ARM64
|
||||
IMPORT __sys_NdrClientCall2
|
||||
|
||||
EXPORT RpcRt_NdrClientCall3
|
||||
IMPORT RpcRt_NdrClientCall3ARM64
|
||||
IMPORT __sys_NdrClientCall3
|
||||
|
||||
EXPORT RpcRt_NdrAsyncClientCall
|
||||
IMPORT RpcRt_NdrAsyncClientCallARM64
|
||||
IMPORT __sys_NdrAsyncClientCall
|
||||
|
||||
EXPORT RpcRt_Ndr64AsyncClientCall
|
||||
IMPORT RpcRt_Ndr64AsyncClientCallARM64
|
||||
IMPORT Secure_HandleElevation
|
||||
IMPORT __sys_Ndr64AsyncClientCall
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrClientCall2
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrClientCall2 PROC
|
||||
|
||||
stp x2,x3,[sp,#-0x10]!
|
||||
; x4 first argument on stack
|
||||
; x5 arguments size on stack
|
||||
|
||||
mov x8, sp
|
||||
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
stp x4, x5, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pStubDescriptor
|
||||
;x1 ; pFormat
|
||||
mov x2, x8 ; pStack
|
||||
mov x3, lr ; ReturnAddress
|
||||
bl RpcRt_NdrClientCall2ARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
ldp x4, x5, [sp], #0x10
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
|
||||
ldp x2, x3, [sp], #0x10
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCall2
|
||||
|
||||
ldr x16, =__sys_NdrClientCall2
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCall2
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrClientCall3
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrClientCall3 PROC
|
||||
|
||||
sub sp,sp,#0x10
|
||||
str x3,[sp,#0x8]
|
||||
; x4 first argument on stack
|
||||
; x5 arguments size on stack
|
||||
|
||||
add x8, sp, #8
|
||||
|
||||
str x2,[sp,#0]
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
stp x4, x5, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pProxyInfo
|
||||
;x1 ; nProcNum
|
||||
;x2 ; pReturnValue
|
||||
mov x3, x8 ; pStack
|
||||
bl RpcRt_NdrClientCall3ARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
ldp x4, x5, [sp], #0x10
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
ldr x2, [sp]
|
||||
|
||||
ldr x3,[sp,#0x8]
|
||||
add sp,sp,#0x10
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCall3
|
||||
|
||||
ldr x16, =__sys_NdrClientCall3
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCall3
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrAsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrAsyncClientCall PROC
|
||||
|
||||
stp x2,x3,[sp,#-0x10]!
|
||||
; x4 first argument on stack
|
||||
; x5 arguments size on stack
|
||||
|
||||
mov x8, sp
|
||||
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
stp x4, x5, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pStubDescriptor
|
||||
;x1 ; pFormat
|
||||
mov x2, x8 ; pStack
|
||||
mov x3, lr ; ReturnAddress
|
||||
bl RpcRt_NdrAsyncClientCallARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
ldp x4, x5, [sp], #0x10
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
|
||||
ldp x2, x3, [sp], #0x10
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCallA
|
||||
|
||||
ldr x16, =__sys_NdrAsyncClientCall
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCallA
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_Ndr64AsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_Ndr64AsyncClientCall PROC
|
||||
|
||||
sub sp,sp,#0x10
|
||||
str x3,[sp,#0x8]
|
||||
; x4 first argument on stack
|
||||
; x5 arguments size on stack
|
||||
|
||||
add x8, sp, #8
|
||||
|
||||
str x2,[sp,#0]
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
stp x19, x20, [sp, #-0x10]!
|
||||
stp x4, x5, [sp, #-0x10]!
|
||||
|
||||
mov x19, x8
|
||||
|
||||
;x0 ; pProxyInfo
|
||||
;x1 ; nProcNum
|
||||
;x2 ; pReturnValue
|
||||
mov x3, x8 ; pStack
|
||||
bl RpcRt_Ndr64AsyncClientCallARM64
|
||||
|
||||
cmp x0, #0x00
|
||||
bne WeHandleElevation
|
||||
|
||||
ldp x4, x5, [sp], #0x10
|
||||
ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
ldr x2, [sp]
|
||||
|
||||
ldr x3,[sp,#0x8]
|
||||
|
||||
add sp,sp,#0x10
|
||||
|
||||
ldr x16, =__sys_Ndr64AsyncClientCall
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
WeHandleElevation
|
||||
|
||||
mov x0, #0 ; pStubDescriptor
|
||||
mov x1, #0 ; pFormat
|
||||
mov x2, x19 ; Args
|
||||
bl Secure_HandleElevation
|
||||
|
||||
ldp x4, x5, [sp], #0x10
|
||||
ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
add sp,sp,#0x20
|
||||
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
END
|
|
@ -0,0 +1,383 @@
|
|||
;------------------------------------------------------------------------
|
||||
; Copyright 2022 David Xanatos, xanasoft.com
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, either version 3 of the License, or
|
||||
; (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
;------------------------------------------------------------------------
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Assembler Utilities -- ARM64
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
AREA my_arm, CODE, READONLY
|
||||
|
||||
EXPORT ProtectCall2
|
||||
EXPORT ProtectCall3
|
||||
EXPORT ProtectCall4
|
||||
|
||||
EXPORT Gui_FixupCallbackPointers
|
||||
|
||||
EXPORT Ldr_Inject_Entry64
|
||||
IMPORT Ldr_Inject_Entry
|
||||
|
||||
EXPORT RpcRt_NdrClientCall2
|
||||
IMPORT RpcRt_NdrClientCall2ARM64
|
||||
IMPORT __sys_NdrClientCall2
|
||||
|
||||
EXPORT RpcRt_NdrClientCall3
|
||||
IMPORT RpcRt_NdrClientCall3ARM64
|
||||
IMPORT __sys_NdrClientCall3
|
||||
|
||||
EXPORT RpcRt_NdrAsyncClientCall
|
||||
IMPORT RpcRt_NdrAsyncClientCallARM64
|
||||
IMPORT __sys_NdrAsyncClientCall
|
||||
|
||||
EXPORT RpcRt_Ndr64AsyncClientCall
|
||||
IMPORT RpcRt_Ndr64AsyncClientCallARM64
|
||||
IMPORT Secure_HandleElevation
|
||||
IMPORT __sys_Ndr64AsyncClientCall
|
||||
|
||||
EXPORT Dll_JumpStubData
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; ProtectCall2
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
ProtectCall2 PROC
|
||||
stp fp, lr, [sp, #-0x10]! ; push
|
||||
mov x8, x0
|
||||
mov x0, x1
|
||||
mov x1, x2
|
||||
blr x8
|
||||
ldp fp, lr, [sp], #0x10 ; pop
|
||||
ret
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; ProtectCall3
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
ProtectCall3 PROC
|
||||
stp fp, lr, [sp, #-0x10]! ; push
|
||||
mov x8, x0
|
||||
mov x0, x1
|
||||
mov x1, x2
|
||||
mov x2, x3
|
||||
blr x8
|
||||
ldp fp, lr, [sp], #0x10 ; pop
|
||||
ret
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; ProtectCall4
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
ProtectCall4 PROC
|
||||
stp fp, lr, [sp, #-0x10]! ; push
|
||||
mov x8, x0
|
||||
mov x0, x1
|
||||
mov x1, x2
|
||||
mov x2, x3
|
||||
mov x3, x4
|
||||
blr x8
|
||||
ldp fp, lr, [sp], #0x10 ; pop
|
||||
ret
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Gui_FixupCallbackPointers
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
Gui_FixupCallbackPointers PROC
|
||||
|
||||
;
|
||||
; copy of USER32!FixupCallbackPointers
|
||||
; with additional zeroing of the dword at [X0+8] before returning
|
||||
;
|
||||
|
||||
ldr w8, [x0,#0x18]
|
||||
mov w11, #0
|
||||
ldr w9, [x0,#8]
|
||||
add x12, x0, w8,uxtw
|
||||
cbz w9, l02
|
||||
|
||||
l01
|
||||
ldr w10, [x12],#4
|
||||
add w11, w11, #1
|
||||
ldr x8, [x0,w10,uxtw]
|
||||
add x9, x0, x8
|
||||
str x9, [x0,w10,uxtw]
|
||||
ldr w8, [x0,#8]
|
||||
cmp w11, w8
|
||||
b.cc l01
|
||||
mov w8, #0
|
||||
str w8, [x0,#8]
|
||||
l02
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Ldr_Inject_Entry64
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
Ldr_Inject_Entry64 PROC
|
||||
|
||||
stp fp, lr, [sp, #-0x10]! ; push
|
||||
add x0, sp, 0x8 ; pRetAddr parameter
|
||||
ldr x8, =Ldr_Inject_Entry
|
||||
blr x8
|
||||
ldp fp, lr, [sp], #0x10 ; pop
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrClientCall2
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrClientCall2 PROC
|
||||
|
||||
stp x2,x3,[sp,#-0x30]!
|
||||
stp x4,x5,[sp,#0x10]
|
||||
stp x6,x7,[sp,#0x20]
|
||||
|
||||
mov x8, sp
|
||||
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pStubDescriptor
|
||||
;x1 ; pFormat
|
||||
mov x2, x8 ; pStack
|
||||
mov x3, lr ; ReturnAddress
|
||||
bl RpcRt_NdrClientCall2ARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
|
||||
ldp x2, x3, [sp], #0x10
|
||||
ldp x4, x5, [sp], #0x10
|
||||
ldp x6, x7, [sp], #0x10
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCall2
|
||||
|
||||
ldr x16, =__sys_NdrClientCall2
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCall2
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrClientCall3
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrClientCall3 PROC
|
||||
|
||||
sub sp,sp,#0x30
|
||||
stp x3,x4,[sp,#8]
|
||||
stp x5,x6,[sp,#0x18]
|
||||
str x7,[sp,#0x28]
|
||||
|
||||
add x8, sp, #8
|
||||
|
||||
str x2,[sp,#0]
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pProxyInfo
|
||||
;x1 ; nProcNum
|
||||
;x2 ; pReturnValue
|
||||
mov x3, x8 ; pStack
|
||||
mov x4, lr ; ReturnAddress
|
||||
bl RpcRt_NdrClientCall3ARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
ldr x2, [sp]
|
||||
|
||||
ldr x7,[sp,#0x28]
|
||||
ldp x5,x6,[sp,#0x18]
|
||||
ldp x3,x4,[sp,#8]
|
||||
add sp,sp,#0x30
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCall3
|
||||
|
||||
ldr x16, =__sys_NdrClientCall3
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCall3
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_NdrAsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_NdrAsyncClientCall PROC
|
||||
|
||||
stp x2,x3,[sp,#-0x30]!
|
||||
stp x4,x5,[sp,#0x10]
|
||||
stp x6,x7,[sp,#0x20]
|
||||
|
||||
mov x8, sp
|
||||
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
;stp x19, x20, [sp, #-0x10]!
|
||||
|
||||
;x0 ; pStubDescriptor
|
||||
;x1 ; pFormat
|
||||
mov x2, x8 ; pStack
|
||||
mov x3, lr ; ReturnAddress
|
||||
bl RpcRt_NdrAsyncClientCallARM64
|
||||
|
||||
mov x8, x0
|
||||
|
||||
;ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
|
||||
ldp x6, x7, [sp], #0x10
|
||||
ldp x4, x5, [sp], #0x10
|
||||
ldp x2, x3, [sp], #0x10
|
||||
|
||||
cmp x8, #0x00
|
||||
bne CancelCallA
|
||||
|
||||
ldr x16, =__sys_NdrAsyncClientCall
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
CancelCallA
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; RpcRt_Ndr64AsyncClientCall
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
RpcRt_Ndr64AsyncClientCall PROC
|
||||
|
||||
sub sp,sp,#0x30
|
||||
stp x3,x4,[sp,#8]
|
||||
stp x5,x6,[sp,#0x18]
|
||||
str x7,[sp,#0x28]
|
||||
|
||||
add x8, sp, #8
|
||||
|
||||
str x2,[sp,#0]
|
||||
stp x0, x1, [sp, #-0x10]!
|
||||
|
||||
stp fp, lr, [sp, #-0x10]!
|
||||
stp x19, x20, [sp, #-0x10]!
|
||||
|
||||
mov x19, x8
|
||||
|
||||
;x0 ; pProxyInfo
|
||||
;x1 ; nProcNum
|
||||
;x2 ; pReturnValue
|
||||
mov x3, x8 ; pStack
|
||||
mov x4, lr ; ReturnAddress
|
||||
bl RpcRt_Ndr64AsyncClientCallARM64
|
||||
|
||||
cmp x0, #0x00
|
||||
bne WeHandleElevation
|
||||
|
||||
ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
ldp x0, x1, [sp], #0x10
|
||||
ldr x2, [sp]
|
||||
|
||||
ldr x7,[sp,#0x28]
|
||||
ldp x5,x6,[sp,#0x18]
|
||||
ldp x3,x4,[sp,#8]
|
||||
add sp,sp,#0x30
|
||||
|
||||
ldr x16, =__sys_Ndr64AsyncClientCall
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
WeHandleElevation
|
||||
|
||||
mov x0, #0 ; pStubDescriptor
|
||||
mov x1, #0 ; pFormat
|
||||
mov x2, x19 ; Args
|
||||
bl Secure_HandleElevation
|
||||
|
||||
ldp x19, x20, [sp], #0x10
|
||||
ldp fp, lr, [sp], #0x10
|
||||
|
||||
add sp,sp,#0x40
|
||||
|
||||
ret
|
||||
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; Dll_JumpStubData
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
|
||||
Dll_JumpStubData PROC
|
||||
mov x0, x17
|
||||
ret
|
||||
ENDP
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
END
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="SbieDebug|ARM64">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieDebug|Win32">
|
||||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -9,6 +13,10 @@
|
|||
<Configuration>SbieDebug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|ARM64">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="SbieRelease|Win32">
|
||||
<Configuration>SbieRelease</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
|
@ -42,6 +50,16 @@
|
|||
<Driver_SpectreMitigation>false</Driver_SpectreMitigation>
|
||||
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Driver</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
|
||||
<TargetVersion>
|
||||
</TargetVersion>
|
||||
<DriverType>WDM</DriverType>
|
||||
<Driver_SpectreMitigation>false</Driver_SpectreMitigation>
|
||||
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Driver</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
|
@ -62,6 +80,16 @@
|
|||
<Driver_SpectreMitigation>false</Driver_SpectreMitigation>
|
||||
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Driver</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
|
||||
<TargetVersion>
|
||||
</TargetVersion>
|
||||
<DriverType>WDM</DriverType>
|
||||
<Driver_SpectreMitigation>false</Driver_SpectreMitigation>
|
||||
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
|
@ -73,6 +101,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox32.props" />
|
||||
|
@ -81,6 +113,10 @@
|
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\Sandbox64a.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<TargetExt>.sys</TargetExt>
|
||||
|
@ -94,6 +130,12 @@
|
|||
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
|
||||
<TargetName>SbieDrv</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<TargetExt>.sys</TargetExt>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
|
||||
<TargetName>SbieDrv</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<TargetExt>.sys</TargetExt>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
|
@ -106,6 +148,12 @@
|
|||
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
|
||||
<TargetName>SbieDrv</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<TargetExt>.sys</TargetExt>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
|
||||
<TargetName>SbieDrv</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
|
@ -187,6 +235,52 @@
|
|||
<Message>Test Signing binary</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<DisableSpecificWarnings>
|
||||
</DisableSpecificWarnings>
|
||||
<AdditionalOptions>/Wv:18 %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Native</SubSystem>
|
||||
<AdditionalDependencies>ntoskrnl.lib;hal.lib;wmilib.lib;fltmgr.lib;Ksecdd.lib;Fwpkclnt.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>DriverEntry</EntryPointSymbol>
|
||||
<RandomizedBaseAddress>
|
||||
</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<Driver>Driver</Driver>
|
||||
<AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
|
||||
<AllowIsolation>
|
||||
</AllowIsolation>
|
||||
<EnableUAC>
|
||||
</EnableUAC>
|
||||
<UACExecutionLevel>
|
||||
</UACExecutionLevel>
|
||||
<UACUIAccess>
|
||||
</UACUIAccess>
|
||||
<ManifestFile>
|
||||
</ManifestFile>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<DriverSign>
|
||||
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
|
||||
</DriverSign>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Test Signing binary</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">
|
||||
<ClCompile>
|
||||
<DisableSpecificWarnings>
|
||||
|
@ -263,67 +357,131 @@
|
|||
<Message>Test Signing binary</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
<ClCompile>
|
||||
<DisableSpecificWarnings>
|
||||
</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<CallingConvention />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Native</SubSystem>
|
||||
<AdditionalDependencies>ntoskrnl.lib;hal.lib;wmilib.lib;fltmgr.lib;Ksecdd.lib;Fwpkclnt.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>DriverEntry</EntryPointSymbol>
|
||||
<RandomizedBaseAddress>
|
||||
</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<Driver>Driver</Driver>
|
||||
<AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
|
||||
<AllowIsolation>
|
||||
</AllowIsolation>
|
||||
<EnableUAC>
|
||||
</EnableUAC>
|
||||
<UACExecutionLevel>
|
||||
</UACExecutionLevel>
|
||||
<UACUIAccess>
|
||||
</UACUIAccess>
|
||||
<ManifestFile>
|
||||
</ManifestFile>
|
||||
<BaseAddress>
|
||||
</BaseAddress>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<DriverSign>
|
||||
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
|
||||
</DriverSign>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Test Signing binary</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\common\base64.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\list.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\map.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\netfw.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\pattern.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\pool.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\rbtree.c" />
|
||||
<ClCompile Include="..\..\common\stream.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\common\str_util.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\dll\hook_inst.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\dll\hook_tramp.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="api.c" />
|
||||
<ClCompile Include="box.c" />
|
||||
|
@ -337,38 +495,53 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_flt.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="file_xlat.c" />
|
||||
<ClCompile Include="file_xp.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="gui.c" />
|
||||
<ClCompile Include="gui_xp.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hook.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hook.c" />
|
||||
<ClCompile Include="hook_32.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hook_64.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
@ -383,13 +556,17 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="key_xp.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="log.c" />
|
||||
<ClCompile Include="mem.c">
|
||||
|
@ -400,20 +577,26 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="obj_xp.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="process.c" />
|
||||
<ClCompile Include="process_api.c" />
|
||||
<ClCompile Include="process_force.c" />
|
||||
<ClCompile Include="process_hook.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
@ -426,38 +609,50 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syscall_64.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syscall_open.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syscall_util.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syscall_win32.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="thread.c" />
|
||||
<ClCompile Include="thread_token.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="token.c" />
|
||||
<ClCompile Include="util.c" />
|
||||
|
@ -469,26 +664,47 @@
|
|||
<FileType>Document</FileType>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="util_asm.asm">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">ml64 -c -Cx -nologo -D_WIN64 -Zi -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">
|
||||
</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">%(ProjectDir)$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">
|
||||
</Outputs>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\common\arm64_asm.h" />
|
||||
<ClInclude Include="..\..\common\list.h" />
|
||||
<ClInclude Include="..\..\common\map.h" />
|
||||
<ClInclude Include="..\..\common\my_version.h" />
|
||||
|
@ -502,7 +718,9 @@
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="alpc.h" />
|
||||
<ClInclude Include="api.h" />
|
||||
|
@ -514,7 +732,10 @@
|
|||
<ClInclude Include="driver.h" />
|
||||
<ClInclude Include="file.h" />
|
||||
<ClInclude Include="gui.h" />
|
||||
<ClInclude Include="hook.h" />
|
||||
<ClInclude Include="hook.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ipc.h" />
|
||||
<ClInclude Include="key.h" />
|
||||
<ClInclude Include="log.h" />
|
||||
|
@ -534,6 +755,19 @@
|
|||
<ItemGroup>
|
||||
<ResourceCompile Include="resource.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="util_arm.asm">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">armasm64 -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieRelease|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">armasm64 -nologo -Fo$(Platform)\$(Configuration)\%(Filename).obj %(FullPath)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='SbieDebug|ARM64'">%(ProjectDir)$(Platform)\$(Configuration)\%(Filename).obj</Outputs>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieRelease|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='SbieDebug|x64'">true</ExcludedFromBuild>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -241,10 +241,14 @@
|
|||
<ClInclude Include="dll.h">
|
||||
<Filter>syscall</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\common\arm64_asm.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="aulldvrm.asm" />
|
||||
<CustomBuild Include="util_asm.asm" />
|
||||
<CustomBuild Include="util_arm.asm" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="resource.rc" />
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
#include "api.h"
|
||||
#include "process.h"
|
||||
#include "util.h"
|
||||
#ifndef _M_ARM64
|
||||
#include "hook.h"
|
||||
#endif
|
||||
#include "session.h"
|
||||
#include "common/my_version.h"
|
||||
#include "log_buff.h"
|
||||
|
@ -565,14 +567,17 @@ _FX BOOLEAN Api_FastIo_DEVICE_CONTROL(
|
|||
_FX NTSTATUS Api_GetVersion(PROCESS *proc, ULONG64 *parms)
|
||||
{
|
||||
API_GET_VERSION_ARGS *args = (API_GET_VERSION_ARGS *)parms;
|
||||
size_t len;
|
||||
WCHAR *pwcResult = args->string.val;
|
||||
|
||||
if (pwcResult == NULL)
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
len = (wcslen(Driver_Version) + 1) * sizeof(WCHAR);
|
||||
ProbeForWrite(pwcResult, len, sizeof(WCHAR));
|
||||
memcpy(pwcResult, Driver_Version, len);
|
||||
if (args->string.val != NULL) {
|
||||
size_t len = (wcslen(Driver_Version) + 1) * sizeof(WCHAR);
|
||||
ProbeForWrite(args->string.val, len, sizeof(WCHAR));
|
||||
memcpy(args->string.val, Driver_Version, len);
|
||||
}
|
||||
|
||||
if (args->abi_ver.val != NULL) {
|
||||
ProbeForWrite(args->abi_ver.val, sizeof(ULONG), sizeof(ULONG));
|
||||
*args->abi_ver.val = MY_ABI_VERSION;
|
||||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
@ -1290,8 +1295,10 @@ _FX NTSTATUS Api_QueryDriverInfo(PROCESS* proc, ULONG64* parms)
|
|||
NTSTATUS status = STATUS_SUCCESS;
|
||||
API_QUERY_DRIVER_INFO_ARGS *args = (API_QUERY_DRIVER_INFO_ARGS *)parms;
|
||||
|
||||
if (proc)
|
||||
if (proc) {
|
||||
status = STATUS_NOT_IMPLEMENTED;
|
||||
goto finish;
|
||||
}
|
||||
|
||||
__try {
|
||||
|
||||
|
@ -1327,6 +1334,10 @@ _FX NTSTATUS Api_QueryDriverInfo(PROCESS* proc, ULONG64* parms)
|
|||
FeatureFlags |= SBIE_FEATURE_FLAG_COMPARTMENTS;
|
||||
}
|
||||
|
||||
#ifdef _M_ARM64
|
||||
FeatureFlags |= SBIE_FEATURE_FLAG_NEW_ARCH;
|
||||
#endif
|
||||
|
||||
*data = FeatureFlags;
|
||||
}
|
||||
else if (args->info_class.val == -1) {
|
||||
|
@ -1350,6 +1361,7 @@ _FX NTSTATUS Api_QueryDriverInfo(PROCESS* proc, ULONG64* parms)
|
|||
status = GetExceptionCode();
|
||||
}
|
||||
|
||||
finish:
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue