Assembly könnyű! A tanulás Program kiadása n 020 (vírus) (BLER) Newsletter
Mielőtt rátérnék a tanulmány az anyag ebben a kiadásban, akkor olvassa el a korábbiak.
A kérdés, hogy kapok a kezdő (kérjük, olvassa el!):
barátaim! Nem vártam, hogy kapok 300 körül Boldog Új Évet! Köszönöm mindenkinek nagyon! Reading a sok levél én is könnyet ejt! Őszintén! Nagyon szép! Tudom, viszont kívánok mindenkinek boldog karácsonyt. Bár a múltban, de akkor is.
Ma van egy jubileumi, huszadik kiadás. Örülök, hogy végre elérte ezt a számot. Remélem, hogy együtt megyünk tovább. Érje el a száz. Képzeljük el „A N 126 (körvonalai böngésző)”. Igen. Eyed álmodik.
Még mindig kap egy csomó e-mailt kérdésekre, mint: „Megyünk, hogy MMX utasítások, stb” Természetesen mi lesz! Miután befejezte a DOS, megkapjuk le a Windows, ahol minden varázsát, és megvizsgálja a Pentium processzorok. Legalábbis remélem.
Ismét néhány podpschiki várom assembly nyelvű programozás Windows alatt. De a nagy részét a mi csapatunk nem ismeri a DOS. Úgy vélem, hogy helyénvaló lenne, hogy adja át a DOS, hogy úgy mondjam, „érezni, mint hal a vízben.” Ezután prespokoynenko menüpontba Windows alatt. Még miközben terveket, hogy egyesítse a két leveleket: programozás magas szintű nyelvek, mint például: C ++, Pascal, stb, és a mi összeszerelő ..
Talán, ahogy haladunk a Windows, a hírlevelünk műsorvezetője. Ie hírlevél viszi 2-3 fő egyenrangú. Több lesz a vita, vita, a különböző viták és így tovább. Most megtanulod alapvetően levelet az algoritmusok a program, hogy fogom étel ki. Természetesen ezek nem mindig optimális 100% -os. Végtére is, ugyanaz a probléma is megoldható több módon. Hát nem? Úgy gondolom, hogy ezt fogjuk tenni az online vitafórum, ahol mindenki hagyja általános felülvizsgálatára döntését a probléma, algoritmus, program, stb Nos, én most CGI, SSI, stb Mit gondol, lesz érdekelt? Mit tud ajánlani?
Hogyan az alkalmazás újraírása fájlt szöveges fájlok DOS?
- mark "egér" minden, ami a fenti ablakban (jobb gomb a "egér" ---> Select All (Az összes kijelölése));
- Nyomja meg a Ctrl + Insert;
- futtatni DOS Navigator, a Norton Commander, Volcov parancsnok vagy FAR;
- Shift + F4;
- VIRUS20.ASM adja meg a fájl nevét;
- Shift + Insert;
- Nyomja meg az F2;
- kilépés a DOS és összeszerelése!
Készen állsz, hogy megtanulják a jubileumi kérdés megfertőzni más programok? eljött az ideje. Most a vírus teljesen működőképes. Légy óvatos! Véletlenül megfertőzni a kívánt fájlt, akkor meg kell tölteni egy kis időt, hogy gyógyítani kézzel. Azonnal Figyelmeztetem: mi nem írtunk anti-vírus. Megvan sem. Tehát, legyen nagyon óvatos!
1) Vírus rezidens. Ez azt jelenti, hogy csak akkor fertőz programok, ha fut egy fertőzött com-fájlt. A memória semmi sem maradt!
2) A vírus nem csinál semmit, de fájlokat fertőz.
3) Nincs az antivírus nem gyógyítja meg a fájl fertőzött a vírus! Tehát, ne számíts Dr. Web, vagy bármi más.
4) A vírus csak fertőz * .com-fájlokat az aktuális könyvtárban. Mit jelent ez? Például a c: \ assm van a következő fájlokat:
1. test.com
2. dn.com
3. nc.exe
és test.com fertőzött a vírussal. Indítása test.com elvégzésére, fertőz dn.com. Dn.com fut, akkor ne A vírussal fertőzött, mert Ebben a könyvtárban már nem a mi fertőzött vírus * .com-fájlokat.
DE! Ha az útvonal (az autoexec.bat) értékben könyvtár elérési útját c: \ ASSM, a futó test.com az aktuális könyvtárban, például c: \ nc, vírus megfertőzi az első számláló-com-fájlt a c: \ nc. Legyen óvatos.
Ha azonban nem volt baj, és nem tudja, hogyan kell eltávolítani a vírust, amely megfertőzte az egész számítógépet, majd azonnal küldjön nekem egy e-mailt. Meg fogom magyarázni, hogyan kell visszaállítani a fertőzött fájlt. Bár, ha futtatása előtt virus20.com elvégzésére, akkor olvasd el a leírást, és kitalálni, hogy az egész, a munka visszaállítani a fertőzött fájl nem lesz. Ha van ideje, vetem meg a helyszínen a honlapon antivírus (csak abban az esetben. És hirtelen valaki jöhet?). És általában maguk levelet antivírus? Természetesen! Örülnék, hogy megismerjék a kreativitást. Küldj lehetőségeket!
5) * .com fájlokat a C: \ Windows \ command fertőzés után megtagadják a megfelelő működéshez. Mi az oka - nem teljesen egyértelmű. Csikorgatva ezeket a fájlokat Pklite, az eredmény ugyanaz volt (azaz téves meghatározására a parancssor). A legvalószínűbb, hogy számítanak ellenőrző, vagy valami mást. Talán, ki tudja - írja. Nem kell időt, hogy megértsék. A kísérletekhez kell keresni más * Com-fájlokat.
A későbbiekben fogunk írni egy vírus- és feljöttem a rossz, ártalmatlan, de egy érdekes és jó, hogy nem a mi vírus.
Most inkább az a pont.
Kérdés: Van-e lehetőség helyett RET és használni a hívási JMP? És ahelyett, hogy JMP - RET?
Természetesen lehet! Itt egy egyszerű példa:
Bizonyos esetekben hasznos lehet használni nem szabványos parancsokat.
Miért mondom ezt? Felhívjuk figyelmét, most viszont, hogy a címkén a vírus inicializálás (init):
nyomja offset Init; 3 bájt
ret; 1 bájt
Hogy a fertőző fájlt?
Mi az „áldozat file” fertőzés után?
Fájl Fertőzés a következők (lásd Infect_file eljárás). Hagyja a fájl keresést. Tegyük fel, hogy a fájl már nem találtak. Továbbra is csak annak ellenőrzésére, hossza:
mov ax, CS: [1Krón]; megszerezni a második szó a fertőzött fájl hossza
vagy ax, ax; Ha ez nem 0, akkor kilép.
JNZ Error_infect ;. Ez azt jelenti, hogy a fájl mérete nagyobb, mint 64 ezer.
mov bp, CS: [1AH]; így kis érdekében szót (azaz fájl mérete)
Miért ellenőrizze a hossza a com-fájl, ha ismert, hogy a com-fájl nem lehet több, mint 64 ezer? Az a tény, hogy a DOS meghatározza, hogy milyen típusú fájlt nem kezdett terjeszkedni, és az első két bájt a fájl tartalmát. Ha ez a "MZ" vagy "ZM", akkor a fájl - EXE, különben - COM. Meg tudja nézni. Így semmi sem akadályozza meg, hogy bárki is átnevezni egy fájlt, például test.exe 450Kb hosszúságú test.com. DOS továbbra is meghatározzák, hogy ez EXE-fájlt az első két bájt.
Erre példa a COMMAND.COM, amely elfoglalja 95KB DOS 7.0. COM kiterjesztésű elhagyták a kompatibilitást írt programok régebbi verziói DOS.
Tehát mi történik, ha megpróbáljuk megfertőzni a COMMAND.COM ugyanaz, ami lényegében egy command.exe? Ó, semmi! Majd csak elszúrni! Ie hogy megszűnik dolgozni egyáltalán. Ez erre, és akkor nézd a méret a tény, hogy ez kevesebb, mint 64 ezer.
Figyeljük meg, hogy hogyan csináljuk. Miután 4Fh (4Eh) függvény talált egy fájlt DTA eltolással 1AH megadott fájl mérete. mert két bájt tárolására képes telefonszámot, legfeljebb 65.535, a két szót használjuk, hogy meghatározzuk a fájl méretét. Az első (offset 1AH) - a fiatalabb felében a második (offset - 1Krón) - idősebb. Emlékszünk, hogy az adatok a memóriában éppen ellenkezőleg ( „visszafelé”).
Amit még nem történt meg a vírust, így - még nem ellenőrizte az első két (MZ) szimbólum. Miért? És mi van, ha az exe-fájl hossza kevesebb, mint 64 ezer, de a terjeszkedés a COM? Ez is lehet. Nos, csak valaki viccelődött. Remélem, hogy csináld magad könnyen.
- nyissa talált fájl olvasási / írási (3D02h);
- első hat bájt elolvasni (3Fh);
- Mi ellenőrizze, hogy a fájl vírussal fertőzött, hogy mi már vagy még nem.
Itt megállunk rövid időre. A példánkban használjuk az úgynevezett 1122h aláírás meghatározni, hogy a fertőzött fájlt talált a vírust, vagy sem. Ez az aláírás kell elhelyezni eltolás 4 elejétől a fájlt. Felhívjuk figyelmét, hogy ellenőrizze
cmp szó ptr [bx + 4], 1122h
és 1122h fájl állomásozó éppen ellenkezőleg: 2211h. Itt van egy másik bizonyítéka, hogy az adatok tárolása a számítógép „visszafelé”.
És mi van, ha az egyes fertőzött fájlt eltolás 4 elejétől már egy ilyen vonalat? Kiderült, hogy úgy éreztük, hogy a fájl már fertőzött? Igen. De mit gondol, mi a valószínűsége, hogy az aláírás lesz a fájl egy ilyen váltás? Talán még, és a fájl valami nem. De ha továbbra is kétséges, akkor lehet, hogy egy aláírás hosszabb. Például, 6 bájt. Ez idő kérdése.
Így ellenőrizni. Ezután állítsa be a fájl pointer végén a fájlt. Mi fog épülni a vírus fájl farok.
Amint láthatjuk, mi használjuk a funkció 4202h mozgatni a mutatót a fájl végére. Itt nézd meg ezt a funkciót:
Funkció 4202h 21h megszakítja: Beállítás a mutatót a fájl végére.
AX = 4202h
BX = ügyszáma
CX, DX = bájtok száma nobhodimosti számít a fájl végére, és telepíti azt az index.