diff --git a/dll-hijack.sln b/dll-hijack.sln new file mode 100644 index 0000000..4f4e7e7 --- /dev/null +++ b/dll-hijack.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32421.90 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll-hijack", "dll-hijack\dll-hijack.vcxproj", "{3FB33C70-8752-41D8-B0A1-0583FE08152E}" +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 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Debug|x64.ActiveCfg = Debug|x64 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Debug|x64.Build.0 = Debug|x64 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Debug|x86.ActiveCfg = Debug|Win32 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Debug|x86.Build.0 = Debug|Win32 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Release|x64.ActiveCfg = Release|x64 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Release|x64.Build.0 = Release|x64 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Release|x86.ActiveCfg = Release|Win32 + {3FB33C70-8752-41D8-B0A1-0583FE08152E}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C9BDDF28-ADFA-4862-8C9B-F60FEEFD90E5} + EndGlobalSection +EndGlobal diff --git a/dll-hijack/dll-hijack.vcxproj b/dll-hijack/dll-hijack.vcxproj new file mode 100644 index 0000000..d725693 --- /dev/null +++ b/dll-hijack/dll-hijack.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {3fb33c70-8752-41d8-b0a1-0583fe08152e} + dllhijack + 10.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;DLLHIJACK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + WIN32;NDEBUG;DLLHIJACK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + Level3 + true + _DEBUG;DLLHIJACK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + NDEBUG;DLLHIJACK_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/dll-hijack/dll-hijack.vcxproj.filters b/dll-hijack/dll-hijack.vcxproj.filters new file mode 100644 index 0000000..c392811 --- /dev/null +++ b/dll-hijack/dll-hijack.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Файлы заголовков + + + Файлы заголовков + + + + + Исходные файлы + + + Исходные файлы + + + \ No newline at end of file diff --git a/dll-hijack/dll-hijack.vcxproj.user b/dll-hijack/dll-hijack.vcxproj.user new file mode 100644 index 0000000..0f14913 --- /dev/null +++ b/dll-hijack/dll-hijack.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/dll-hijack/dllmain.cpp b/dll-hijack/dllmain.cpp new file mode 100644 index 0000000..0956b4f --- /dev/null +++ b/dll-hijack/dllmain.cpp @@ -0,0 +1,28 @@ +// dllmain.cpp : Определяет точку входа для приложения DLL. +#include "pch.h" +#include +#include + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + system("start calc"); + if (IsUserAnAdmin()) { + MessageBoxA(NULL, "poxeked, i have admin privileges", "poxek", MB_ICONWARNING); + } + else { + MessageBoxA(NULL, "poxeked, but i don\'t have admin privileges", "poxek", MB_ICONERROR); + } + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/dll-hijack/framework.h b/dll-hijack/framework.h new file mode 100644 index 0000000..09a28c4 --- /dev/null +++ b/dll-hijack/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include diff --git a/dll-hijack/pch.cpp b/dll-hijack/pch.cpp new file mode 100644 index 0000000..b796c03 --- /dev/null +++ b/dll-hijack/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: файл исходного кода, соответствующий предварительно скомпилированному заголовочному файлу + +#include "pch.h" + +// При использовании предварительно скомпилированных заголовочных файлов необходим следующий файл исходного кода для выполнения сборки. diff --git a/dll-hijack/pch.h b/dll-hijack/pch.h new file mode 100644 index 0000000..db2da2a --- /dev/null +++ b/dll-hijack/pch.h @@ -0,0 +1,13 @@ +// pch.h: это предварительно скомпилированный заголовочный файл. +// Перечисленные ниже файлы компилируются только один раз, что ускоряет последующие сборки. +// Это также влияет на работу IntelliSense, включая многие функции просмотра и завершения кода. +// Однако изменение любого из приведенных здесь файлов между операциями сборки приведет к повторной компиляции всех(!) этих файлов. +// Не добавляйте сюда файлы, которые планируете часто изменять, так как в этом случае выигрыша в производительности не будет. + +#ifndef PCH_H +#define PCH_H + +// Добавьте сюда заголовочные файлы для предварительной компиляции +#include "framework.h" + +#endif //PCH_H