Цитата:
Сообщение от user713
...При старте клиента появляется картинка, как сделать, чтобы она не отображалась?...
|
Сам себе и отвечу(через год xD):
PHP код:
typedef HANDLE (__stdcall *_CreateFile) (LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
_CreateFile true_CreateFile;
HANDLE __stdcall new_CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
{
HANDLE fileHandle = 0;
wchar_t * pos = wcsstr((wchar_t *)lpFileName, L".bmp");
if(pos != NULL && ShowSplash)
fileHandle = true_CreateFile(L"null\\null", dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
else
fileHandle = true_CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
return fileHandle;
}
void hook()
{
FARPROC addr;
if ((addr = GetProcAddress(LoadLibraryA("kernel32.dll"), "CreateFileW")) == 0) ShowSplash = false;
true_CreateFile = (_CreateFile) splice((unsigned char*) addr, new_CreateFile);
}
Хукаем CreateFileW из библиотеки kernel32.dll, и запрещаем клиенту открывать файлы в имени которых присутствуют символы ".bmp".