mirror of
https://gitgud.io/yuv420p10le/plexmediaserver_crack
synced 2025-07-04 16:34:47 +00:00
Initial commit.
This commit is contained in:
commit
97eeb1350c
238
.gitignore
vendored
Normal file
238
.gitignore
vendored
Normal file
@ -0,0 +1,238 @@
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
*.userprefs
|
||||
mono_crash.*
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
.vs/
|
||||
Generated\ Files/
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
BenchmarkDotNet.Artifacts/
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
ScaffoldingReadMe.txt
|
||||
StyleCopReport.xml
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.tlog
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
_Chutzpah*
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
*.e2e
|
||||
$tf/
|
||||
*.gpState
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
_TeamCity*
|
||||
*.dotCover
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
coverage*.json
|
||||
coverage*.xml
|
||||
coverage*.info
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
.sass-cache/
|
||||
[Ee]xpress/
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
publish/
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
PublishScripts/
|
||||
*.nupkg*.snupkg**/[Pp]ackages/*!**/[Pp]ackages/build/*.nuget.props
|
||||
*.nuget.targets
|
||||
csx/
|
||||
*.build.csdef
|
||||
ecf/
|
||||
rcf/
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload*.[Cc]ache!?*.[Cc]ache/
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
Generated_Code/
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
FakesAssemblies/
|
||||
*.GhostDoc.xml
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
*.plg
|
||||
*.opt
|
||||
*.vbw
|
||||
*.vbp
|
||||
*.dsw
|
||||
*.dsp
|
||||
*.ncb
|
||||
*.aps
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
.fake/
|
||||
.cr/personal
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.tss
|
||||
*.jmconfig
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
OpenCover/
|
||||
ASALocalRun/
|
||||
*.binlog
|
||||
*.nvuser
|
||||
.mfractor/
|
||||
.localhistory/
|
||||
.vshistory/
|
||||
healthchecksdb
|
||||
MigrationBackup/
|
||||
.ionide/
|
||||
FodyWeavers.xsd
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
*.code-workspace
|
||||
.history/
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
*.sln.iml
|
||||
*.d
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
*.gch
|
||||
*.pch
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
*.mod
|
||||
*.smod
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
CMakeLists.txt.user
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
CMakeScripts
|
||||
Testing
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
compile_commands.json
|
||||
CTestTestfile.cmake
|
||||
_deps
|
52
README.md
Normal file
52
README.md
Normal file
@ -0,0 +1,52 @@
|
||||
# plexmediaserver_crack
|
||||
|
||||
Enables Godmode, unlocking *all features* on (hardware transcoding, intro/credit detection, HEVC transcoding, etc..) on Plex Media Server. Including Plex Pass features without a required subscription, and including early-access/development/Plex Ninja features.
|
||||
|
||||
## Installation
|
||||
|
||||
### Windows
|
||||
|
||||
1. Download `IPHLPAPI.dll` from [the latest release](https://github.com/yuv420p10le/plexmediaserver_crack/releases/latest/download/IPHLPAPI.dll) and put it in your Plex Media Server's installation folder. (e.g. `C:\Program Files\Plex\Plex Media Server`)
|
||||
2. Restart Plex Media Server. All features will be unlocked.
|
||||
|
||||
### Linux
|
||||
|
||||
x86-64 only.
|
||||
|
||||
Written for [linuxserver/docker-plex](https://github.com/linuxserver/docker-plex).
|
||||
|
||||
Get the [latest amd64 build of patchelf](https://github.com/NixOS/patchelf/releases/latest), extract the inner `./bin/patchelf` file to your `/config` folder (the same one where `"Library"` is located). Ensure it has execute permissions.
|
||||
|
||||
Download `plexmediaserver_crack.so` from [the latest release](https://github.com/yuv420p10le/plexmediaserver_crack/releases/latest/download/plexmediaserver_crack.so) and save it somewhere. If running under Docker, `/config` works. Otherwise, use a directory that is readable by the user running Plex Media Server.
|
||||
|
||||
Execute the following commands:
|
||||
|
||||
```sh
|
||||
docker exec -it plex ln -s /config/plexmediaserver_crack.so /usr/lib/plexmediaserver/lib/plexmediaserver_crack.so
|
||||
docker exec -it plex /config/patchelf --remove-needed plexmediaserver_crack.so "/usr/lib/plexmediaserver/lib/libsoci_core.so"
|
||||
docker exec -it plex /config/patchelf --add-needed plexmediaserver_crack.so "/usr/lib/plexmediaserver/lib/libsoci_core.so"
|
||||
```
|
||||
|
||||
Now restart Plex Media Server. All features will be unlocked.
|
||||
|
||||
This will NOT persist through Docker image updates, as rebuilding the container will copy libraries freshly from the image.
|
||||
|
||||
### Building
|
||||
|
||||
#### Windows
|
||||
|
||||
Build using Visual Studio 2022, C++20.
|
||||
|
||||
#### Linux
|
||||
|
||||
[linuxserver/docker-plex](https://github.com/linuxserver/docker-plex)'s image uses GLIBC 2.35, and Debian stable (bookworm, as of now) is at 2.36. Use a host with an older version to build (e.g. Debian Bullseye).
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
* For intro/credit detection, go to Settings -> Library -> Marker source; and select the "local detection only" option.
|
||||
* If hardware transcoding (or any other feature) does not work, it should not be related to this repository. Use Google to troubleshoot why said feature doesn't work on your setup specifically.
|
||||
|
||||
### Screenshots
|
||||
|
||||
 
|
||||

|
18
linux/CMakeLists.txt
Normal file
18
linux/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
project(plexmediaserver_crack)
|
||||
SET(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
add_compile_options(-Wall -Wextra -Werror)
|
||||
|
||||
set(SOURCES main.cpp hook.cpp)
|
||||
set(HEADERS hook.hpp)
|
||||
|
||||
add_library(plexmediaserver_crack SHARED ${SOURCES} ${HEADERS})
|
||||
set_target_properties(plexmediaserver_crack PROPERTIES PREFIX "")
|
||||
set_target_properties(plexmediaserver_crack PROPERTIES LINK_FLAGS "-static-libstdc++ -static-libgcc")
|
||||
set_target_properties(plexmediaserver_crack PROPERTIES OUTPUT_NAME "plexmediaserver_crack")
|
||||
target_link_libraries(plexmediaserver_crack PUBLIC rt)
|
||||
target_include_directories(plexmediaserver_crack PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
122
linux/hook.cpp
Normal file
122
linux/hook.cpp
Normal file
@ -0,0 +1,122 @@
|
||||
#include "hook.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cstring>
|
||||
#include <sstream>
|
||||
#include <sys/mman.h>
|
||||
|
||||
bool get_dottext_info(uintptr_t& start, uintptr_t& end)
|
||||
{
|
||||
std::ifstream file("/proc/self/maps");
|
||||
std::string line;
|
||||
|
||||
while(std::getline(file, line))
|
||||
{
|
||||
// I don't understand Linux :|
|
||||
// Only .text should have `r-xp`. This works I guess..
|
||||
if(line.find("Plex Media Server") != std::string::npos && line.find("r-xp") != std::string::npos)
|
||||
{
|
||||
auto range = line.substr(0, line.find(' '));
|
||||
start = std::stoull(line.substr(0, line.find('-')), nullptr, 16);
|
||||
end = std::stoull(line.substr(line.find('-') + 1), nullptr, 16);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
uintptr_t sig_scan(const uintptr_t start, const uintptr_t end, std::string_view pattern)
|
||||
{
|
||||
constexpr const uint16_t WILDCARD = 0xFFFF;
|
||||
std::vector<uint16_t> pattern_vec;
|
||||
|
||||
for(uintptr_t i = 0; i < pattern.length(); i++)
|
||||
{
|
||||
if(pattern[i] == ' ')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(pattern[i] == '?')
|
||||
{
|
||||
if(pattern[i + 1] == '?')
|
||||
{
|
||||
i++;
|
||||
}
|
||||
|
||||
pattern_vec.push_back(WILDCARD);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
pattern_vec.push_back(static_cast<uint16_t>(std::strtol(&pattern[i], nullptr, 16)));
|
||||
i++;
|
||||
}
|
||||
|
||||
const auto vec_length = pattern_vec.size();
|
||||
|
||||
for(uintptr_t i = start; i < end; i++)
|
||||
{
|
||||
for(uintptr_t x = 0; x < vec_length; x++)
|
||||
{
|
||||
const auto mem = *reinterpret_cast<uint8_t*>(i + x);
|
||||
|
||||
if(pattern_vec[x] != WILDCARD && mem != pattern_vec[x])
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
else if(x == vec_length - 1)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t hook_is_feature_available([[maybe_unused]] uintptr_t user, [[maybe_unused]] const char* feature)
|
||||
{
|
||||
// `feature` is a GUID. You can use it to enable certain features rather than Godmode (everything); but there's no reason to limit ourselves.. is there?
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void hook()
|
||||
{
|
||||
uintptr_t dottext_start;
|
||||
uintptr_t dottext_end;
|
||||
|
||||
if(!get_dottext_info(dottext_start, dottext_end))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const auto _is_feature_available = sig_scan(dottext_start, dottext_end, "55 48 89 E5 41 57 41 56 53 50 49 89 F7 48 89 FB 4C 8D 77 08 4C 89 F7 E8 ? ? ? ? 48 8D 7B 30");
|
||||
|
||||
if(_is_feature_available == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Jumps to specified address
|
||||
uint8_t shellcode[] =
|
||||
{
|
||||
0x48, 0xB8, // movq rax, ?
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
0x50, // push rax
|
||||
0xC3 // ret
|
||||
};
|
||||
|
||||
*reinterpret_cast<decltype(&hook_is_feature_available)*>(&shellcode[2]) = &hook_is_feature_available;
|
||||
|
||||
mprotect(reinterpret_cast<void*>(_is_feature_available), sizeof(shellcode), PROT_READ|PROT_WRITE|PROT_EXEC);
|
||||
memcpy(reinterpret_cast<void*>(_is_feature_available), shellcode, sizeof(shellcode));
|
||||
mprotect(reinterpret_cast<void*>(_is_feature_available), sizeof(shellcode), PROT_READ|PROT_EXEC);
|
||||
}
|
9
linux/hook.hpp
Normal file
9
linux/hook.hpp
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
bool get_dottext_info(uintptr_t& start, uintptr_t& end);
|
||||
uintptr_t sig_scan(const uintptr_t start, const uintptr_t end, std::string_view pattern);
|
||||
uint64_t hook_is_feature_available(uintptr_t user, const char* feature);
|
||||
void hook();
|
6
linux/main.cpp
Normal file
6
linux/main.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
#include "hook.hpp"
|
||||
|
||||
__attribute__((constructor)) void init_so()
|
||||
{
|
||||
hook();
|
||||
}
|
16
windows/dllmain.cpp
Normal file
16
windows/dllmain.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <Windows.h>
|
||||
|
||||
#include "proxy.hpp"
|
||||
#include "hook.hpp"
|
||||
|
||||
BOOL APIENTRY DllMain([[maybe_unused]] HMODULE hModule, DWORD ul_reason_for_call, [[maybe_unused]] LPVOID lpReserved)
|
||||
{
|
||||
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
hook();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
113
windows/hook.cpp
Normal file
113
windows/hook.cpp
Normal file
@ -0,0 +1,113 @@
|
||||
#include "hook.hpp"
|
||||
|
||||
#include <MinHook.h>
|
||||
#include <format>
|
||||
#include <vector>
|
||||
#include <dbghelp.h>
|
||||
#include <iostream>
|
||||
|
||||
uintptr_t _is_feature_available;
|
||||
|
||||
bool get_section_info(std::string_view name, uintptr_t& start, uintptr_t& end)
|
||||
{
|
||||
char filename[MAX_PATH];
|
||||
GetModuleFileNameA(NULL, filename, sizeof(filename));
|
||||
|
||||
auto cur_handle = GetModuleHandleA(filename);
|
||||
IMAGE_NT_HEADERS* nt_hdr = ImageNtHeader(cur_handle);
|
||||
IMAGE_SECTION_HEADER* section_hdr = reinterpret_cast<IMAGE_SECTION_HEADER*>(nt_hdr + 1);
|
||||
uintptr_t image_base = reinterpret_cast<uintptr_t>(cur_handle);
|
||||
|
||||
for(int i = 0; i < nt_hdr->FileHeader.NumberOfSections; i++, section_hdr++)
|
||||
{
|
||||
auto section_header_name = reinterpret_cast<char*>(section_hdr->Name);
|
||||
|
||||
if(name == section_header_name)
|
||||
{
|
||||
uintptr_t base_module = image_base + section_hdr->VirtualAddress;
|
||||
start = base_module;
|
||||
end = base_module + section_hdr->Misc.VirtualSize - 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
uintptr_t sig_scan(const uintptr_t start, const uintptr_t end, std::string_view pattern)
|
||||
{
|
||||
constexpr const uint16_t WILDCARD = 0xFFFF;
|
||||
std::vector<uint16_t> pattern_vec;
|
||||
|
||||
for(uintptr_t i = 0; i < pattern.length(); i++)
|
||||
{
|
||||
if(pattern[i] == ' ')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(pattern[i] == '?')
|
||||
{
|
||||
if(pattern[i + 1] == '?')
|
||||
{
|
||||
i++;
|
||||
}
|
||||
|
||||
pattern_vec.push_back(WILDCARD);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
pattern_vec.push_back(static_cast<uint16_t>(std::strtol(&pattern[i], nullptr, 16)));
|
||||
i++;
|
||||
}
|
||||
|
||||
const auto vec_length = pattern_vec.size();
|
||||
|
||||
for(uintptr_t i = start; i < end; i++)
|
||||
{
|
||||
for(uintptr_t x = 0; x < vec_length; x++)
|
||||
{
|
||||
const auto mem = *reinterpret_cast<uint8_t*>(i + x);
|
||||
|
||||
if(pattern_vec[x] != WILDCARD && mem != pattern_vec[x])
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
else if(x == vec_length - 1)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t hook_is_feature_available([[maybe_unused]] uintptr_t user, [[maybe_unused]] const char* feature)
|
||||
{
|
||||
// `feature` is a GUID. You can use it to enable certain features rather than Godmode (everything); but there's no reason to limit ourselves.. is there?
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void hook()
|
||||
{
|
||||
uintptr_t dottext_start;
|
||||
uintptr_t dottext_end;
|
||||
|
||||
if(!get_section_info(".text", dottext_start, dottext_end))
|
||||
{
|
||||
std::cerr << "[ERR] [plexmediaserver_crack] .text section not found; aborting.\n";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
_is_feature_available = sig_scan(dottext_start, dottext_end, "41 54 41 56 41 57 48 83 EC 20 4C 8B F9 4C 8B F2");
|
||||
|
||||
MH_Initialize();
|
||||
MH_CreateHook(reinterpret_cast<void*>(_is_feature_available), &hook_is_feature_available, reinterpret_cast<void**>(&_is_feature_available));
|
||||
MH_EnableHook(MH_ALL_HOOKS);
|
||||
}
|
9
windows/hook.hpp
Normal file
9
windows/hook.hpp
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
bool get_section_info(std::string_view name, uintptr_t& start, uintptr_t& end);
|
||||
uintptr_t sig_scan(const uintptr_t start, const uintptr_t end, std::string_view pattern);
|
||||
uint64_t hook_is_feature_available(uintptr_t user, const char* feature);
|
||||
void hook();
|
31
windows/plexmediaserver_crack.sln
Normal file
31
windows/plexmediaserver_crack.sln
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.9.34728.123
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win32", "win32.vcxproj", "{8511ADC9-EC45-4C37-8936-F4556AA01C97}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Debug|x64.Build.0 = Debug|x64
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Debug|x86.Build.0 = Debug|Win32
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Release|x64.ActiveCfg = Release|x64
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Release|x64.Build.0 = Release|x64
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Release|x86.ActiveCfg = Release|Win32
|
||||
{8511ADC9-EC45-4C37-8936-F4556AA01C97}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {FCF6F8A5-FC33-4F65-9C30-61EE29E93806}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
313
windows/proxy.hpp
Normal file
313
windows/proxy.hpp
Normal file
@ -0,0 +1,313 @@
|
||||
#ifdef _WIN64
|
||||
#define DLLPATH "\\\\.\\GLOBALROOT\\SystemRoot\\System32\\IPHLPAPI.DLL"
|
||||
#else
|
||||
#define DLLPATH "\\\\.\\GLOBALROOT\\SystemRoot\\SysWOW64\\IPHLPAPI.DLL"
|
||||
#endif // _WIN64
|
||||
|
||||
#pragma comment(linker, "/EXPORT:AddIPAddress=" DLLPATH ".AddIPAddress")
|
||||
#pragma comment(linker, "/EXPORT:AllocateAndGetInterfaceInfoFromStack=" DLLPATH ".AllocateAndGetInterfaceInfoFromStack")
|
||||
#pragma comment(linker, "/EXPORT:AllocateAndGetIpAddrTableFromStack=" DLLPATH ".AllocateAndGetIpAddrTableFromStack")
|
||||
#pragma comment(linker, "/EXPORT:CancelIPChangeNotify=" DLLPATH ".CancelIPChangeNotify")
|
||||
#pragma comment(linker, "/EXPORT:CancelIfTimestampConfigChange=" DLLPATH ".CancelIfTimestampConfigChange")
|
||||
#pragma comment(linker, "/EXPORT:CancelMibChangeNotify2=" DLLPATH ".CancelMibChangeNotify2")
|
||||
#pragma comment(linker, "/EXPORT:CaptureInterfaceHardwareCrossTimestamp=" DLLPATH ".CaptureInterfaceHardwareCrossTimestamp")
|
||||
#pragma comment(linker, "/EXPORT:CloseCompartment=" DLLPATH ".CloseCompartment")
|
||||
#pragma comment(linker, "/EXPORT:CloseGetIPPhysicalInterfaceForDestination=" DLLPATH ".CloseGetIPPhysicalInterfaceForDestination")
|
||||
#pragma comment(linker, "/EXPORT:ConvertCompartmentGuidToId=" DLLPATH ".ConvertCompartmentGuidToId")
|
||||
#pragma comment(linker, "/EXPORT:ConvertCompartmentIdToGuid=" DLLPATH ".ConvertCompartmentIdToGuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertGuidToStringA=" DLLPATH ".ConvertGuidToStringA")
|
||||
#pragma comment(linker, "/EXPORT:ConvertGuidToStringW=" DLLPATH ".ConvertGuidToStringW")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceAliasToLuid=" DLLPATH ".ConvertInterfaceAliasToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceGuidToLuid=" DLLPATH ".ConvertInterfaceGuidToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceIndexToLuid=" DLLPATH ".ConvertInterfaceIndexToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceLuidToAlias=" DLLPATH ".ConvertInterfaceLuidToAlias")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceLuidToGuid=" DLLPATH ".ConvertInterfaceLuidToGuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceLuidToIndex=" DLLPATH ".ConvertInterfaceLuidToIndex")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceLuidToNameA=" DLLPATH ".ConvertInterfaceLuidToNameA")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceLuidToNameW=" DLLPATH ".ConvertInterfaceLuidToNameW")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceNameToLuidA=" DLLPATH ".ConvertInterfaceNameToLuidA")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfaceNameToLuidW=" DLLPATH ".ConvertInterfaceNameToLuidW")
|
||||
#pragma comment(linker, "/EXPORT:ConvertInterfacePhysicalAddressToLuid=" DLLPATH ".ConvertInterfacePhysicalAddressToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertIpv4MaskToLength=" DLLPATH ".ConvertIpv4MaskToLength")
|
||||
#pragma comment(linker, "/EXPORT:ConvertLengthToIpv4Mask=" DLLPATH ".ConvertLengthToIpv4Mask")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceAliasToLuid=" DLLPATH ".ConvertRemoteInterfaceAliasToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceGuidToLuid=" DLLPATH ".ConvertRemoteInterfaceGuidToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceIndexToLuid=" DLLPATH ".ConvertRemoteInterfaceIndexToLuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceLuidToAlias=" DLLPATH ".ConvertRemoteInterfaceLuidToAlias")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceLuidToGuid=" DLLPATH ".ConvertRemoteInterfaceLuidToGuid")
|
||||
#pragma comment(linker, "/EXPORT:ConvertRemoteInterfaceLuidToIndex=" DLLPATH ".ConvertRemoteInterfaceLuidToIndex")
|
||||
#pragma comment(linker, "/EXPORT:ConvertStringToGuidA=" DLLPATH ".ConvertStringToGuidA")
|
||||
#pragma comment(linker, "/EXPORT:ConvertStringToGuidW=" DLLPATH ".ConvertStringToGuidW")
|
||||
#pragma comment(linker, "/EXPORT:ConvertStringToInterfacePhysicalAddress=" DLLPATH ".ConvertStringToInterfacePhysicalAddress")
|
||||
#pragma comment(linker, "/EXPORT:CreateAnycastIpAddressEntry=" DLLPATH ".CreateAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:CreateCompartment=" DLLPATH ".CreateCompartment")
|
||||
#pragma comment(linker, "/EXPORT:CreateIpForwardEntry=" DLLPATH ".CreateIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:CreateIpForwardEntry2=" DLLPATH ".CreateIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:CreateIpNetEntry=" DLLPATH ".CreateIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:CreateIpNetEntry2=" DLLPATH ".CreateIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:CreatePersistentTcpPortReservation=" DLLPATH ".CreatePersistentTcpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:CreatePersistentUdpPortReservation=" DLLPATH ".CreatePersistentUdpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:CreateProxyArpEntry=" DLLPATH ".CreateProxyArpEntry")
|
||||
#pragma comment(linker, "/EXPORT:CreateSortedAddressPairs=" DLLPATH ".CreateSortedAddressPairs")
|
||||
#pragma comment(linker, "/EXPORT:CreateUnicastIpAddressEntry=" DLLPATH ".CreateUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:DeleteAnycastIpAddressEntry=" DLLPATH ".DeleteAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:DeleteCompartment=" DLLPATH ".DeleteCompartment")
|
||||
#pragma comment(linker, "/EXPORT:DeleteIPAddress=" DLLPATH ".DeleteIPAddress")
|
||||
#pragma comment(linker, "/EXPORT:DeleteIpForwardEntry=" DLLPATH ".DeleteIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:DeleteIpForwardEntry2=" DLLPATH ".DeleteIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:DeleteIpNetEntry=" DLLPATH ".DeleteIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:DeleteIpNetEntry2=" DLLPATH ".DeleteIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:DeletePersistentTcpPortReservation=" DLLPATH ".DeletePersistentTcpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:DeletePersistentUdpPortReservation=" DLLPATH ".DeletePersistentUdpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:DeleteProxyArpEntry=" DLLPATH ".DeleteProxyArpEntry")
|
||||
#pragma comment(linker, "/EXPORT:DeleteUnicastIpAddressEntry=" DLLPATH ".DeleteUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:DisableMediaSense=" DLLPATH ".DisableMediaSense")
|
||||
#pragma comment(linker, "/EXPORT:EnableRouter=" DLLPATH ".EnableRouter")
|
||||
#pragma comment(linker, "/EXPORT:FlushIpNetTable=" DLLPATH ".FlushIpNetTable")
|
||||
#pragma comment(linker, "/EXPORT:FlushIpNetTable2=" DLLPATH ".FlushIpNetTable2")
|
||||
#pragma comment(linker, "/EXPORT:FlushIpPathTable=" DLLPATH ".FlushIpPathTable")
|
||||
#pragma comment(linker, "/EXPORT:FreeDnsSettings=" DLLPATH ".FreeDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:FreeInterfaceDnsSettings=" DLLPATH ".FreeInterfaceDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:FreeMibTable=" DLLPATH ".FreeMibTable")
|
||||
#pragma comment(linker, "/EXPORT:GetAdapterIndex=" DLLPATH ".GetAdapterIndex")
|
||||
#pragma comment(linker, "/EXPORT:GetAdapterOrderMap=" DLLPATH ".GetAdapterOrderMap")
|
||||
#pragma comment(linker, "/EXPORT:GetAdaptersAddresses=" DLLPATH ".GetAdaptersAddresses")
|
||||
#pragma comment(linker, "/EXPORT:GetAdaptersInfo=" DLLPATH ".GetAdaptersInfo")
|
||||
#pragma comment(linker, "/EXPORT:GetAnycastIpAddressEntry=" DLLPATH ".GetAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetAnycastIpAddressTable=" DLLPATH ".GetAnycastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:GetBestInterface=" DLLPATH ".GetBestInterface")
|
||||
#pragma comment(linker, "/EXPORT:GetBestInterfaceEx=" DLLPATH ".GetBestInterfaceEx")
|
||||
#pragma comment(linker, "/EXPORT:GetBestRoute=" DLLPATH ".GetBestRoute")
|
||||
#pragma comment(linker, "/EXPORT:GetBestRoute2=" DLLPATH ".GetBestRoute2")
|
||||
#pragma comment(linker, "/EXPORT:GetCurrentThreadCompartmentId=" DLLPATH ".GetCurrentThreadCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:GetCurrentThreadCompartmentScope=" DLLPATH ".GetCurrentThreadCompartmentScope")
|
||||
#pragma comment(linker, "/EXPORT:GetDefaultCompartmentId=" DLLPATH ".GetDefaultCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:GetDnsSettings=" DLLPATH ".GetDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:GetExtendedTcpTable=" DLLPATH ".GetExtendedTcpTable")
|
||||
#pragma comment(linker, "/EXPORT:GetExtendedUdpTable=" DLLPATH ".GetExtendedUdpTable")
|
||||
#pragma comment(linker, "/EXPORT:GetFriendlyIfIndex=" DLLPATH ".GetFriendlyIfIndex")
|
||||
#pragma comment(linker, "/EXPORT:GetIcmpStatistics=" DLLPATH ".GetIcmpStatistics")
|
||||
#pragma comment(linker, "/EXPORT:GetIcmpStatisticsEx=" DLLPATH ".GetIcmpStatisticsEx")
|
||||
#pragma comment(linker, "/EXPORT:GetIfEntry=" DLLPATH ".GetIfEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetIfEntry2=" DLLPATH ".GetIfEntry2")
|
||||
#pragma comment(linker, "/EXPORT:GetIfEntry2Ex=" DLLPATH ".GetIfEntry2Ex")
|
||||
#pragma comment(linker, "/EXPORT:GetIfStackTable=" DLLPATH ".GetIfStackTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIfTable=" DLLPATH ".GetIfTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIfTable2=" DLLPATH ".GetIfTable2")
|
||||
#pragma comment(linker, "/EXPORT:GetIfTable2Ex=" DLLPATH ".GetIfTable2Ex")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceActiveTimestampCapabilities=" DLLPATH ".GetInterfaceActiveTimestampCapabilities")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceCompartmentId=" DLLPATH ".GetInterfaceCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceCurrentTimestampCapabilities=" DLLPATH ".GetInterfaceCurrentTimestampCapabilities")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceDnsSettings=" DLLPATH ".GetInterfaceDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceHardwareTimestampCapabilities=" DLLPATH ".GetInterfaceHardwareTimestampCapabilities")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceInfo=" DLLPATH ".GetInterfaceInfo")
|
||||
#pragma comment(linker, "/EXPORT:GetInterfaceSupportedTimestampCapabilities=" DLLPATH ".GetInterfaceSupportedTimestampCapabilities")
|
||||
#pragma comment(linker, "/EXPORT:GetInvertedIfStackTable=" DLLPATH ".GetInvertedIfStackTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpAddrTable=" DLLPATH ".GetIpAddrTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpErrorString=" DLLPATH ".GetIpErrorString")
|
||||
#pragma comment(linker, "/EXPORT:GetIpForwardEntry2=" DLLPATH ".GetIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:GetIpForwardTable=" DLLPATH ".GetIpForwardTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpForwardTable2=" DLLPATH ".GetIpForwardTable2")
|
||||
#pragma comment(linker, "/EXPORT:GetIpInterfaceEntry=" DLLPATH ".GetIpInterfaceEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetIpInterfaceTable=" DLLPATH ".GetIpInterfaceTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpNetEntry2=" DLLPATH ".GetIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:GetIpNetTable=" DLLPATH ".GetIpNetTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpNetTable2=" DLLPATH ".GetIpNetTable2")
|
||||
#pragma comment(linker, "/EXPORT:GetIpNetworkConnectionBandwidthEstimates=" DLLPATH ".GetIpNetworkConnectionBandwidthEstimates")
|
||||
#pragma comment(linker, "/EXPORT:GetIpPathEntry=" DLLPATH ".GetIpPathEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetIpPathTable=" DLLPATH ".GetIpPathTable")
|
||||
#pragma comment(linker, "/EXPORT:GetIpStatistics=" DLLPATH ".GetIpStatistics")
|
||||
#pragma comment(linker, "/EXPORT:GetIpStatisticsEx=" DLLPATH ".GetIpStatisticsEx")
|
||||
#pragma comment(linker, "/EXPORT:GetJobCompartmentId=" DLLPATH ".GetJobCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:GetMulticastIpAddressEntry=" DLLPATH ".GetMulticastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetMulticastIpAddressTable=" DLLPATH ".GetMulticastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:GetNetworkConnectivityHint=" DLLPATH ".GetNetworkConnectivityHint")
|
||||
#pragma comment(linker, "/EXPORT:GetNetworkConnectivityHintForInterface=" DLLPATH ".GetNetworkConnectivityHintForInterface")
|
||||
#pragma comment(linker, "/EXPORT:GetNetworkInformation=" DLLPATH ".GetNetworkInformation")
|
||||
#pragma comment(linker, "/EXPORT:GetNetworkParams=" DLLPATH ".GetNetworkParams")
|
||||
#pragma comment(linker, "/EXPORT:GetNumberOfInterfaces=" DLLPATH ".GetNumberOfInterfaces")
|
||||
#pragma comment(linker, "/EXPORT:GetOwnerModuleFromPidAndInfo=" DLLPATH ".GetOwnerModuleFromPidAndInfo")
|
||||
#pragma comment(linker, "/EXPORT:GetOwnerModuleFromTcp6Entry=" DLLPATH ".GetOwnerModuleFromTcp6Entry")
|
||||
#pragma comment(linker, "/EXPORT:GetOwnerModuleFromTcpEntry=" DLLPATH ".GetOwnerModuleFromTcpEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetOwnerModuleFromUdp6Entry=" DLLPATH ".GetOwnerModuleFromUdp6Entry")
|
||||
#pragma comment(linker, "/EXPORT:GetOwnerModuleFromUdpEntry=" DLLPATH ".GetOwnerModuleFromUdpEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetPerAdapterInfo=" DLLPATH ".GetPerAdapterInfo")
|
||||
#pragma comment(linker, "/EXPORT:GetPerTcp6ConnectionEStats=" DLLPATH ".GetPerTcp6ConnectionEStats")
|
||||
#pragma comment(linker, "/EXPORT:GetPerTcp6ConnectionStats=" DLLPATH ".GetPerTcp6ConnectionStats")
|
||||
#pragma comment(linker, "/EXPORT:GetPerTcpConnectionEStats=" DLLPATH ".GetPerTcpConnectionEStats")
|
||||
#pragma comment(linker, "/EXPORT:GetPerTcpConnectionStats=" DLLPATH ".GetPerTcpConnectionStats")
|
||||
#pragma comment(linker, "/EXPORT:GetRTTAndHopCount=" DLLPATH ".GetRTTAndHopCount")
|
||||
#pragma comment(linker, "/EXPORT:GetSessionCompartmentId=" DLLPATH ".GetSessionCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:GetTcp6Table=" DLLPATH ".GetTcp6Table")
|
||||
#pragma comment(linker, "/EXPORT:GetTcp6Table2=" DLLPATH ".GetTcp6Table2")
|
||||
#pragma comment(linker, "/EXPORT:GetTcpStatistics=" DLLPATH ".GetTcpStatistics")
|
||||
#pragma comment(linker, "/EXPORT:GetTcpStatisticsEx=" DLLPATH ".GetTcpStatisticsEx")
|
||||
#pragma comment(linker, "/EXPORT:GetTcpStatisticsEx2=" DLLPATH ".GetTcpStatisticsEx2")
|
||||
#pragma comment(linker, "/EXPORT:GetTcpTable=" DLLPATH ".GetTcpTable")
|
||||
#pragma comment(linker, "/EXPORT:GetTcpTable2=" DLLPATH ".GetTcpTable2")
|
||||
#pragma comment(linker, "/EXPORT:GetTeredoPort=" DLLPATH ".GetTeredoPort")
|
||||
#pragma comment(linker, "/EXPORT:GetUdp6Table=" DLLPATH ".GetUdp6Table")
|
||||
#pragma comment(linker, "/EXPORT:GetUdpStatistics=" DLLPATH ".GetUdpStatistics")
|
||||
#pragma comment(linker, "/EXPORT:GetUdpStatisticsEx=" DLLPATH ".GetUdpStatisticsEx")
|
||||
#pragma comment(linker, "/EXPORT:GetUdpStatisticsEx2=" DLLPATH ".GetUdpStatisticsEx2")
|
||||
#pragma comment(linker, "/EXPORT:GetUdpTable=" DLLPATH ".GetUdpTable")
|
||||
#pragma comment(linker, "/EXPORT:GetUniDirectionalAdapterInfo=" DLLPATH ".GetUniDirectionalAdapterInfo")
|
||||
#pragma comment(linker, "/EXPORT:GetUnicastIpAddressEntry=" DLLPATH ".GetUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:GetUnicastIpAddressTable=" DLLPATH ".GetUnicastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:GetWPAOACSupportLevel=" DLLPATH ".GetWPAOACSupportLevel")
|
||||
#pragma comment(linker, "/EXPORT:Icmp6CreateFile=" DLLPATH ".Icmp6CreateFile")
|
||||
#pragma comment(linker, "/EXPORT:Icmp6ParseReplies=" DLLPATH ".Icmp6ParseReplies")
|
||||
#pragma comment(linker, "/EXPORT:Icmp6SendEcho2=" DLLPATH ".Icmp6SendEcho2")
|
||||
#pragma comment(linker, "/EXPORT:IcmpCloseHandle=" DLLPATH ".IcmpCloseHandle")
|
||||
#pragma comment(linker, "/EXPORT:IcmpCreateFile=" DLLPATH ".IcmpCreateFile")
|
||||
#pragma comment(linker, "/EXPORT:IcmpParseReplies=" DLLPATH ".IcmpParseReplies")
|
||||
#pragma comment(linker, "/EXPORT:IcmpSendEcho=" DLLPATH ".IcmpSendEcho")
|
||||
#pragma comment(linker, "/EXPORT:IcmpSendEcho2=" DLLPATH ".IcmpSendEcho2")
|
||||
#pragma comment(linker, "/EXPORT:IcmpSendEcho2Ex=" DLLPATH ".IcmpSendEcho2Ex")
|
||||
#pragma comment(linker, "/EXPORT:InitializeCompartmentEntry=" DLLPATH ".InitializeCompartmentEntry")
|
||||
#pragma comment(linker, "/EXPORT:InitializeIpForwardEntry=" DLLPATH ".InitializeIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:InitializeIpInterfaceEntry=" DLLPATH ".InitializeIpInterfaceEntry")
|
||||
#pragma comment(linker, "/EXPORT:InitializeUnicastIpAddressEntry=" DLLPATH ".InitializeUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalCleanupPersistentStore=" DLLPATH ".InternalCleanupPersistentStore")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateAnycastIpAddressEntry=" DLLPATH ".InternalCreateAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateIpForwardEntry=" DLLPATH ".InternalCreateIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateIpForwardEntry2=" DLLPATH ".InternalCreateIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateIpNetEntry=" DLLPATH ".InternalCreateIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateIpNetEntry2=" DLLPATH ".InternalCreateIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateOrRefIpForwardEntry2=" DLLPATH ".InternalCreateOrRefIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalCreateUnicastIpAddressEntry=" DLLPATH ".InternalCreateUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteAnycastIpAddressEntry=" DLLPATH ".InternalDeleteAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteIpForwardEntry=" DLLPATH ".InternalDeleteIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteIpForwardEntry2=" DLLPATH ".InternalDeleteIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteIpNetEntry=" DLLPATH ".InternalDeleteIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteIpNetEntry2=" DLLPATH ".InternalDeleteIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalDeleteUnicastIpAddressEntry=" DLLPATH ".InternalDeleteUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalFindInterfaceByAddress=" DLLPATH ".InternalFindInterfaceByAddress")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetAnycastIpAddressEntry=" DLLPATH ".InternalGetAnycastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetAnycastIpAddressTable=" DLLPATH ".InternalGetAnycastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetBoundTcp6EndpointTable=" DLLPATH ".InternalGetBoundTcp6EndpointTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetBoundTcpEndpointTable=" DLLPATH ".InternalGetBoundTcpEndpointTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetForwardIpTable2=" DLLPATH ".InternalGetForwardIpTable2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIPPhysicalInterfaceForDestination=" DLLPATH ".InternalGetIPPhysicalInterfaceForDestination")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIfEntry2=" DLLPATH ".InternalGetIfEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIfTable=" DLLPATH ".InternalGetIfTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIfTable2=" DLLPATH ".InternalGetIfTable2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpAddrTable=" DLLPATH ".InternalGetIpAddrTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpForwardEntry2=" DLLPATH ".InternalGetIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpForwardTable=" DLLPATH ".InternalGetIpForwardTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpInterfaceEntry=" DLLPATH ".InternalGetIpInterfaceEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpInterfaceTable=" DLLPATH ".InternalGetIpInterfaceTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpNetEntry2=" DLLPATH ".InternalGetIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpNetTable=" DLLPATH ".InternalGetIpNetTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetIpNetTable2=" DLLPATH ".InternalGetIpNetTable2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetMulticastIpAddressEntry=" DLLPATH ".InternalGetMulticastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetMulticastIpAddressTable=" DLLPATH ".InternalGetMulticastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetRtcSlotInformation=" DLLPATH ".InternalGetRtcSlotInformation")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcp6Table2=" DLLPATH ".InternalGetTcp6Table2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcp6TableWithOwnerModule=" DLLPATH ".InternalGetTcp6TableWithOwnerModule")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcp6TableWithOwnerPid=" DLLPATH ".InternalGetTcp6TableWithOwnerPid")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpDynamicPortRange=" DLLPATH ".InternalGetTcpDynamicPortRange")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpTable=" DLLPATH ".InternalGetTcpTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpTable2=" DLLPATH ".InternalGetTcpTable2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpTableEx=" DLLPATH ".InternalGetTcpTableEx")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpTableWithOwnerModule=" DLLPATH ".InternalGetTcpTableWithOwnerModule")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTcpTableWithOwnerPid=" DLLPATH ".InternalGetTcpTableWithOwnerPid")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetTunnelPhysicalAdapter=" DLLPATH ".InternalGetTunnelPhysicalAdapter")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdp6Table2=" DLLPATH ".InternalGetUdp6Table2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdp6TableWithOwnerModule=" DLLPATH ".InternalGetUdp6TableWithOwnerModule")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdp6TableWithOwnerPid=" DLLPATH ".InternalGetUdp6TableWithOwnerPid")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpDynamicPortRange=" DLLPATH ".InternalGetUdpDynamicPortRange")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpTable=" DLLPATH ".InternalGetUdpTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpTable2=" DLLPATH ".InternalGetUdpTable2")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpTableEx=" DLLPATH ".InternalGetUdpTableEx")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpTableWithOwnerModule=" DLLPATH ".InternalGetUdpTableWithOwnerModule")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUdpTableWithOwnerPid=" DLLPATH ".InternalGetUdpTableWithOwnerPid")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUnicastIpAddressEntry=" DLLPATH ".InternalGetUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalGetUnicastIpAddressTable=" DLLPATH ".InternalGetUnicastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:InternalIcmpCreateFileEx=" DLLPATH ".InternalIcmpCreateFileEx")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIfEntry=" DLLPATH ".InternalSetIfEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpForwardEntry=" DLLPATH ".InternalSetIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpForwardEntry2=" DLLPATH ".InternalSetIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpInterfaceEntry=" DLLPATH ".InternalSetIpInterfaceEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpNetEntry=" DLLPATH ".InternalSetIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpNetEntry2=" DLLPATH ".InternalSetIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetIpStats=" DLLPATH ".InternalSetIpStats")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetTcpDynamicPortRange=" DLLPATH ".InternalSetTcpDynamicPortRange")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetTcpEntry=" DLLPATH ".InternalSetTcpEntry")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetTeredoPort=" DLLPATH ".InternalSetTeredoPort")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetUdpDynamicPortRange=" DLLPATH ".InternalSetUdpDynamicPortRange")
|
||||
#pragma comment(linker, "/EXPORT:InternalSetUnicastIpAddressEntry=" DLLPATH ".InternalSetUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:IpReleaseAddress=" DLLPATH ".IpReleaseAddress")
|
||||
#pragma comment(linker, "/EXPORT:IpRenewAddress=" DLLPATH ".IpRenewAddress")
|
||||
#pragma comment(linker, "/EXPORT:LookupPersistentTcpPortReservation=" DLLPATH ".LookupPersistentTcpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:LookupPersistentUdpPortReservation=" DLLPATH ".LookupPersistentUdpPortReservation")
|
||||
#pragma comment(linker, "/EXPORT:NTPTimeToNTFileTime=" DLLPATH ".NTPTimeToNTFileTime")
|
||||
#pragma comment(linker, "/EXPORT:NTTimeToNTPTime=" DLLPATH ".NTTimeToNTPTime")
|
||||
#pragma comment(linker, "/EXPORT:NhGetGuidFromInterfaceName=" DLLPATH ".NhGetGuidFromInterfaceName")
|
||||
#pragma comment(linker, "/EXPORT:NhGetInterfaceDescriptionFromGuid=" DLLPATH ".NhGetInterfaceDescriptionFromGuid")
|
||||
#pragma comment(linker, "/EXPORT:NhGetInterfaceNameFromDeviceGuid=" DLLPATH ".NhGetInterfaceNameFromDeviceGuid")
|
||||
#pragma comment(linker, "/EXPORT:NhGetInterfaceNameFromGuid=" DLLPATH ".NhGetInterfaceNameFromGuid")
|
||||
#pragma comment(linker, "/EXPORT:NhpAllocateAndGetInterfaceInfoFromStack=" DLLPATH ".NhpAllocateAndGetInterfaceInfoFromStack")
|
||||
#pragma comment(linker, "/EXPORT:NotifyAddrChange=" DLLPATH ".NotifyAddrChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyCompartmentChange=" DLLPATH ".NotifyCompartmentChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyIfTimestampConfigChange=" DLLPATH ".NotifyIfTimestampConfigChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyIpInterfaceChange=" DLLPATH ".NotifyIpInterfaceChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyNetworkConnectivityHintChange=" DLLPATH ".NotifyNetworkConnectivityHintChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyRouteChange=" DLLPATH ".NotifyRouteChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyRouteChange2=" DLLPATH ".NotifyRouteChange2")
|
||||
#pragma comment(linker, "/EXPORT:NotifyStableUnicastIpAddressTable=" DLLPATH ".NotifyStableUnicastIpAddressTable")
|
||||
#pragma comment(linker, "/EXPORT:NotifyTeredoPortChange=" DLLPATH ".NotifyTeredoPortChange")
|
||||
#pragma comment(linker, "/EXPORT:NotifyUnicastIpAddressChange=" DLLPATH ".NotifyUnicastIpAddressChange")
|
||||
#pragma comment(linker, "/EXPORT:OpenCompartment=" DLLPATH ".OpenCompartment")
|
||||
#pragma comment(linker, "/EXPORT:ParseNetworkString=" DLLPATH ".ParseNetworkString")
|
||||
#pragma comment(linker, "/EXPORT:PfAddFiltersToInterface=" DLLPATH ".PfAddFiltersToInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfAddGlobalFilterToInterface=" DLLPATH ".PfAddGlobalFilterToInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfBindInterfaceToIPAddress=" DLLPATH ".PfBindInterfaceToIPAddress")
|
||||
#pragma comment(linker, "/EXPORT:PfBindInterfaceToIndex=" DLLPATH ".PfBindInterfaceToIndex")
|
||||
#pragma comment(linker, "/EXPORT:PfCreateInterface=" DLLPATH ".PfCreateInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfDeleteInterface=" DLLPATH ".PfDeleteInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfDeleteLog=" DLLPATH ".PfDeleteLog")
|
||||
#pragma comment(linker, "/EXPORT:PfGetInterfaceStatistics=" DLLPATH ".PfGetInterfaceStatistics")
|
||||
#pragma comment(linker, "/EXPORT:PfMakeLog=" DLLPATH ".PfMakeLog")
|
||||
#pragma comment(linker, "/EXPORT:PfRebindFilters=" DLLPATH ".PfRebindFilters")
|
||||
#pragma comment(linker, "/EXPORT:PfRemoveFilterHandles=" DLLPATH ".PfRemoveFilterHandles")
|
||||
#pragma comment(linker, "/EXPORT:PfRemoveFiltersFromInterface=" DLLPATH ".PfRemoveFiltersFromInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfRemoveGlobalFilterFromInterface=" DLLPATH ".PfRemoveGlobalFilterFromInterface")
|
||||
#pragma comment(linker, "/EXPORT:PfSetLogBuffer=" DLLPATH ".PfSetLogBuffer")
|
||||
#pragma comment(linker, "/EXPORT:PfTestPacket=" DLLPATH ".PfTestPacket")
|
||||
#pragma comment(linker, "/EXPORT:PfUnBindInterface=" DLLPATH ".PfUnBindInterface")
|
||||
#pragma comment(linker, "/EXPORT:RegisterInterfaceTimestampConfigChange=" DLLPATH ".RegisterInterfaceTimestampConfigChange")
|
||||
#pragma comment(linker, "/EXPORT:ResolveIpNetEntry2=" DLLPATH ".ResolveIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:ResolveNeighbor=" DLLPATH ".ResolveNeighbor")
|
||||
#pragma comment(linker, "/EXPORT:RestoreMediaSense=" DLLPATH ".RestoreMediaSense")
|
||||
#pragma comment(linker, "/EXPORT:SendARP=" DLLPATH ".SendARP")
|
||||
#pragma comment(linker, "/EXPORT:SetAdapterIpAddress=" DLLPATH ".SetAdapterIpAddress")
|
||||
#pragma comment(linker, "/EXPORT:SetCurrentThreadCompartmentId=" DLLPATH ".SetCurrentThreadCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:SetCurrentThreadCompartmentScope=" DLLPATH ".SetCurrentThreadCompartmentScope")
|
||||
#pragma comment(linker, "/EXPORT:SetDnsSettings=" DLLPATH ".SetDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:SetIfEntry=" DLLPATH ".SetIfEntry")
|
||||
#pragma comment(linker, "/EXPORT:SetInterfaceDnsSettings=" DLLPATH ".SetInterfaceDnsSettings")
|
||||
#pragma comment(linker, "/EXPORT:SetIpForwardEntry=" DLLPATH ".SetIpForwardEntry")
|
||||
#pragma comment(linker, "/EXPORT:SetIpForwardEntry2=" DLLPATH ".SetIpForwardEntry2")
|
||||
#pragma comment(linker, "/EXPORT:SetIpInterfaceEntry=" DLLPATH ".SetIpInterfaceEntry")
|
||||
#pragma comment(linker, "/EXPORT:SetIpNetEntry=" DLLPATH ".SetIpNetEntry")
|
||||
#pragma comment(linker, "/EXPORT:SetIpNetEntry2=" DLLPATH ".SetIpNetEntry2")
|
||||
#pragma comment(linker, "/EXPORT:SetIpStatistics=" DLLPATH ".SetIpStatistics")
|
||||
#pragma comment(linker, "/EXPORT:SetIpStatisticsEx=" DLLPATH ".SetIpStatisticsEx")
|
||||
#pragma comment(linker, "/EXPORT:SetIpTTL=" DLLPATH ".SetIpTTL")
|
||||
#pragma comment(linker, "/EXPORT:SetJobCompartmentId=" DLLPATH ".SetJobCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:SetNetworkInformation=" DLLPATH ".SetNetworkInformation")
|
||||
#pragma comment(linker, "/EXPORT:SetPerTcp6ConnectionEStats=" DLLPATH ".SetPerTcp6ConnectionEStats")
|
||||
#pragma comment(linker, "/EXPORT:SetPerTcp6ConnectionStats=" DLLPATH ".SetPerTcp6ConnectionStats")
|
||||
#pragma comment(linker, "/EXPORT:SetPerTcpConnectionEStats=" DLLPATH ".SetPerTcpConnectionEStats")
|
||||
#pragma comment(linker, "/EXPORT:SetPerTcpConnectionStats=" DLLPATH ".SetPerTcpConnectionStats")
|
||||
#pragma comment(linker, "/EXPORT:SetSessionCompartmentId=" DLLPATH ".SetSessionCompartmentId")
|
||||
#pragma comment(linker, "/EXPORT:SetTcpEntry=" DLLPATH ".SetTcpEntry")
|
||||
#pragma comment(linker, "/EXPORT:SetUnicastIpAddressEntry=" DLLPATH ".SetUnicastIpAddressEntry")
|
||||
#pragma comment(linker, "/EXPORT:UnenableRouter=" DLLPATH ".UnenableRouter")
|
||||
#pragma comment(linker, "/EXPORT:UnregisterInterfaceTimestampConfigChange=" DLLPATH ".UnregisterInterfaceTimestampConfigChange")
|
||||
#pragma comment(linker, "/EXPORT:do_echo_rep=" DLLPATH ".do_echo_rep")
|
||||
#pragma comment(linker, "/EXPORT:do_echo_req=" DLLPATH ".do_echo_req")
|
||||
#pragma comment(linker, "/EXPORT:if_indextoname=" DLLPATH ".if_indextoname")
|
||||
#pragma comment(linker, "/EXPORT:if_nametoindex=" DLLPATH ".if_nametoindex")
|
||||
#pragma comment(linker, "/EXPORT:register_icmp=" DLLPATH ".register_icmp")
|
189
windows/win32.vcxproj
Normal file
189
windows/win32.vcxproj
Normal file
@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>17.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{8511adc9-ec45-4c37-8936-f4556aa01c97}</ProjectGuid>
|
||||
<RootNamespace>win32</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>plexmediaserver_crack</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<TargetName>IPHLPAPI</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetName>IPHLPAPI</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<TargetName>IPHLPAPI</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<TargetName>IPHLPAPI</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<VcpkgUseStatic>true</VcpkgUseStatic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<VcpkgUseStatic>true</VcpkgUseStatic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<VcpkgUseStatic>true</VcpkgUseStatic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<VcpkgUseStatic>true</VcpkgUseStatic>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;PLEXLOADFILEHOOK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalOptions>/pdbaltpath:%_PDB% %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);Dbghelp.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PLEXLOADFILEHOOK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalOptions>/pdbaltpath:%_PDB% %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);Dbghelp.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;PLEXLOADFILEHOOK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalOptions>/pdbaltpath:%_PDB% %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);Dbghelp.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;PLEXLOADFILEHOOK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalOptions>/pdbaltpath:%_PDB% %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);Dbghelp.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp" />
|
||||
<ClCompile Include="hook.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="hook.hpp" />
|
||||
<ClInclude Include="proxy.hpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
33
windows/win32.vcxproj.filters
Normal file
33
windows/win32.vcxproj.filters
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hook.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="hook.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="proxy.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
x
Reference in New Issue
Block a user