R
Programming language identification
Size: a a a
R
q
ЯВ
ЯВ
C
381400766
]! Ознакомтесь с правилами группы по ссылке https://t.me/thecodeby/437061.D
S
C
1051698804
]! Ознакомтесь с правилами группы по ссылке https://t.me/thecodeby/437061.NK
<Windows.h>Далее необходимо собрать это в исполняемый файл. Выбираем формат QuickWin, так как он не требует создания проекта. Получившийся файл скидывается на целевую систему и запускается, в качестве аргумента дается имя 32bit динамической библиотеки, которая должна находиться в той же папке. Это может быть любая библиотека — от выводящей Hello World до чего угодно. Чтобы противостоять угрозам, требуется «смотреть им в лицо», так что рассматривайте приведенный код с точки зрения противостояния ему.
DECLARE_HANDLE32(HPROC32);
DECLARE_HANDLE32(HINSTANCE32);
int main(int argc, char** argv)
{
HMODULE hModule;
HINSTANCE32 hDll;
HINSTANCE32 (WINAPI *LoadLibraryEx32W) (LPCSTR, DWORD, DWORD);
BOOL (WINAPI *FreeLibrary32W) (HINSTANCE32);
printf("begin" "\n");
if(argc != 2)
{
printf("Usage: loader.exe my.dll" "\n");
return 1;
}
hModule = GetModuleHandle("KERNEL");
if(!hModule)
{
printf("GetModuleHandle - %08X" "\n", hModule);
return 1;
}
(FARPROC) LoadLibraryEx32W = GetProcAddress(hModule, "LoadLibraryEx32W");
(FARPROC) FreeLibrary32W = GetProcAddress(hModule, "FreeLibrary32W");
if(!LoadLibraryEx32W || !FreeLibrary32W)
{
printf("GetProcAddress - %08X, %08X" "\n", LoadLibraryEx32W,FreeLibrary32W);
return 1;
}
hDll = LoadLibraryEx32W(argv[1], 0, 0);
if(!hDll)
{
printf("LoadLibraryEx32W - %08X" "\n", hDll);
return 1;
}
getchar();
FreeLibrary32W(hDll);
printf("end" "\n");
return 0;
}
G
G
G
S
G
NN
C
887682992
]! Ознакомтесь с правилами группы по ссылке https://t.me/thecodeby/437061.ДС
NK
R