Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

cemu sluzi org $-4

[es] :: Asembler :: cemu sluzi org $-4

[ Pregleda: 3301 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pera_Anarhista
Autonomija

Član broj: 3473
Poruke: 113
*.173.202.62.dial.bluewin.ch



Profil

icon cemu sluzi org $-419.01.2003. u 00:11 - pre 229 meseci
e, jel bi mogao neko da mi objasni funkciju ovog koda:
Code:

mov eax, 12345678h
org $-4
returnEntry dd 0h

add eax, 12345678h
org $-4
returnBase dd 0h

jmp eax


returnBase & Entry ce se promeniti u toku koda... pretpostavljam da je ovo potrebno da bi jmp eax bio nesto kao returnBase + returnEntry, ali nisam siguran... sta tacno radi org $-4 (sta znaci location counter ? ) ???
nema mira, nema pravde

http://www.anarchy-serbia.tk
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.cc.fer.hr



Profil

icon Re: cemu sluzi org $-421.01.2003. u 10:32 - pre 229 meseci
$ je trenutna vrijednost location countera, naredba org $-4 ga mice 4 bajta unazad. Sam LC odredjuje virtualnu adresu na koju ce se mapirati enkodirana instrukcija ili varijabla. Obicno se koristi za code morphing u virusima :)
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
195.252.80.*



+3 Profil

icon Re: cemu sluzi org $-403.09.2003. u 03:12 - pre 222 meseci
Obicno se koristi kod self-modifying koda...Pogledaj, recimo radove na http://www.256b.com, gde imas preko 300 demo animacija do 256 bajtova duzine. Skoro svaki od ovih radova je baziran na principu samo-menjajuceg koda, da bi se postigla mala duzina izvrsnog fajla. (Proverite: Tube, Andromeda, Firework....pravo je cudo sta su ovi ljudi spakovali u 1/4kb!)
O_o
 
Odgovor na temu

stsung
NS

Član broj: 12899
Poruke: 432
*.verat.net



+2 Profil

icon Re: cemu sluzi org $-403.09.2003. u 22:46 - pre 222 meseci
Pozd.

Kao shto ti je Sundance vec rekao, $ je location counter koji sadrzhi offset adresu u aktivnom segmentu. Ovaj konkretni kod vrshi jednostavan "morphing" naizgled ochiglenih instrukcija u source-u.

Znachi nakon instrukcije
Code:
mov eax, 12345678h
imamo pomeranje unazad za 4 bajta (odnosno 2 worda, odnosno 1 double word) i upisivanje nulte vrednosti na tu poziciju, shto ce rezultovati time da ce poslednja 4 bajta gorepomenute instrukcije biti prebrisana vrednoshcu 0h. Ako se dobro secam, to ce upravo da bude brojka koju stavljamo u EAX u okviru prethodne instrukcije, shto znachi da ce instrukcija
Code:
mov eax, 12345678h
nakon naredna dva reda postati isto shto i
Code:
mov eax, 0h
. Analogno vazhi i za sledecih par redova, a
Code:
jmp eax
ce time jump-ovati na adresu chiji se offset posle sve ove papazjanije nashao u EAX, odnosno 0, dakle bice izvrshen skok na pochetak tekuceg segmenta. Shto se efekta ovakvog skoka tiche, mozhe da bude bilo shta, vec u zavisnosti kakve se instrukcije nalaze na pochetku tekuceg segmenta.

Svako dobro.
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.dialin.iskon.hr



Profil

icon Re: cemu sluzi org $-404.09.2003. u 14:12 - pre 221 meseci
Citat:
blaza:
Obicno se koristi kod self-modifying koda...Pogledaj, recimo radove na http://www.256b.com, gde imas preko 300 demo animacija do 256 bajtova duzine. Skoro svaki od ovih radova je baziran na principu samo-menjajuceg koda, da bi se postigla mala duzina izvrsnog fajla. (Proverite: Tube, Andromeda, Firework....pravo je cudo sta su ovi ljudi spakovali u 1/4kb!)


Ne radi mi link. ?? a code-morphing nije self-modifying? :-) Stvarno kad vidis sta su ti stari majstori optimizacije radili, i kad vidis 100k stub koji ti kompajler generira... dodje mi da plachem :-( Meni su uvijek bili mrak farbrausch 64k demoi.
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
195.252.80.*



+3 Profil

icon Re: cemu sluzi org $-404.09.2003. u 15:59 - pre 221 meseci
proba!
O_o
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
195.252.80.*



+3 Profil

icon Re: cemu sluzi org $-404.09.2003. u 17:38 - pre 221 meseci
Imao sam problema sa logovanjem na ES u prethodnih 36 sati...

stsung - skoro si u pravu, ali si zaboravio jednu stvar. Asembler ce prevesti gore navedeni kod kao:

mov eax,0h
add eax,0h
jmp eax

pri cemu ce labela returnEntry sadrzati ofset dword konstante (0h) koja se pri pozivanju navedenog koda upisuje u eax, dok ce labela returnBase sadrzati ofset dword konstante (0h) koja se dodaje eax.

Stvar koju nisi predvideo je da najverovatnije postoji neka vrsta incijalizacije dword konstanti (chitaj: varijabli) na koje pokazuju navedene labele pre pozivanja ovog parcheta koda.
Stavise, najverovatnije postoji nekoliko razlicitih incijalizacija (naravno, u delu programa koji nije naveden) da bi ovakvo kodiranje dobilo ikakav smisao.

Znaci po prelasku na obradu ovog dela koda, CPU nailazi na:

mov eax,imm32_1
add eax,imm32_2
jmp eax

gde su imm32_1 i imm32_2 vrednosti koje su unete zadnjom inicijalizacijom. Svaki put CPU nailazi na potencijalno razlicit kod. Deo programa koji vrsi inicijalizaciju vrsi izmenu navedenog koda. Program menja sebe. U tom duhu sam koristio pojam: self-modifying kod, Sundance!

U duhu imena navedenih labela moze se reci: vrednost koja je odredjena se returnBase pokazuje na pocetak specijalnog dela programa, dok vrednost odredjena sa returnEntry pokazuje na ofset od nevedenog pocetka, gde je potrebno nastaviti sa radom.

Slobodnijim tumacenjem ovaj deo koda se moze opisati kao: bezuslovno bazno-indeksno grananje sa memorijski mapiranim registrima.

Toliko o ovome.

Sundance - link radi, ali mi se pri kucanju zalepio zarez za adresu (pogledaj gore) tako da pri kliku link ne radi. Kao sto sam rekao nisam mogao jedno vreme da se logujem na ES u zelji da otklonim ovaj nedostatak. Evo, proveri: www.256b.com Vidis da link radi :)

Inace, demoi su fantasticni. Trenutno ih ima 365 (ako nije bilo izmena u skorije vreme), maksimalne duzine 256 bajta. Mogu s download-ovati u formi zip fajlova od nekoliko kb. Vise od trecine demoa sadrzi source, a oni ostali se lako disasembliraju.
Umesto da provedes nekoliko sati surfovajuci po sajtu i skidajuci demoe (posto svaki demo ima svoju stranicu, sa koje ga skidas), mozes uraditi sto i ja - mozes skinuti 95% demoa za petnaestak minuta. Potreban ti je Download Accelerator ili slican program i MS Excel!

Otvoris prazan MS Excel dokument, i u A1 i A2 upises:

http://www.256b.com/processDownload.php?demoId=1
http://www.256b.com/processDownload.php?demoId=2

respektivno. Zatim selektujes A1 i A2, i drag-ujes dodnji desni ugao selekcije do A365.

Dobices potrebnu adresnu listu:

http://www.256b.com/processDownload.php?demoId=1
http://www.256b.com/processDownload.php?demoId=2
...
http://www.256b.com/processDownload.php?demoId=364
http://www.256b.com/processDownload.php?demoId=365

Zatim snimis dokument u .txt formatu (ali nemoj zaboraviti da pre toga obrises Sheet2 i Sheet3 posto se dokumenti sa vise listova nemogu eksportovati u .txt format).
Preostaje ti jedino da startujes DAP, i da importujes dobijenu adresnu listu (Url->Import->Plain text file), i download moze da pocne. Nekoliko demoa se nece ucitati, posto imas dodatnu html stranicu pre download-a, ali njih mozes "rucno".

Kasnije uvek mozes download-ovati nove demoe na isti nacin, ali sad pravis listu od 366 pa do Id-a zadnjeg upload-ovanog demoa.

O_o
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.dialin.iskon.hr



Profil

icon Re: cemu sluzi org $-404.09.2003. u 19:33 - pre 221 meseci
Citat:

Slobodnijim tumacenjem ovaj deo koda se moze opisati kao: bezuslovno bazno-indeksno grananje sa memorijski mapiranim registrima.


:))))

E da, moj zayeb u vezi linka. Svi kazu DOS i 16bitno programiranje mrtvo i sve, ali jos uvijek postoji dovoljno fanatika da drze scenu. Tako treba - Fight the future.
 
Odgovor na temu

stsung
NS

Član broj: 12899
Poruke: 432
*.verat.net



+2 Profil

icon Re: cemu sluzi org $-405.09.2003. u 17:01 - pre 221 meseci
Citat:
blaza:
Stvar koju nisi predvideo je da najverovatnije postoji neka vrsta incijalizacije dword konstanti (chitaj: varijabli) na koje pokazuju navedene labele pre pozivanja ovog parcheta koda.
Stavise, najverovatnije postoji nekoliko razlicitih incijalizacija (naravno, u delu programa koji nije naveden) da bi ovakvo kodiranje dobilo ikakav smisao.


Apsolutno se slazhem ... kako sam se izgleda zaneo u objashnjavanju shta konkretno navedeni kod radi, smetnuo sam sa uma da je recheno da se dotichne varijable menjaju tokom rada programa, chime se jelda efektivno menja jmp adresa.

Svako dobro.
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
195.252.80.*



+3 Profil

icon Re: cemu sluzi org $-405.09.2003. u 20:58 - pre 221 meseci
Nesto sam zaboravio da napomenem!
Kada se vrsi download demoa na nacin koji sam ranije opisao, fajlovi koje Download Accelerator Plus skine su bez ekstenzije.
Stoga je potrebno upotrebiti neki multi-rename tool (recimo, moze se upotrebiti Windows Commander (Ctrl-T)), i potrebno je svim fajlovima dodeliti ekstenziju .zip .
Prilikom otvaranja arhiva u manje od 5% slucajeva dobicemo poruku: Arhiva je ili nepoznatog formata, ili je ostecena. Tim fajlovima treba rucno promeniti ekstenziju u .html , posto se tu u stvari radi o html stranici na kojoj je link za download.
O_o
 
Odgovor na temu

[es] :: Asembler :: cemu sluzi org $-4

[ Pregleda: 3301 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.