🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
29 messages
29 total messages Started by Ballerg Thu, 06 Jul 2006 07:54
jak zaczac ?
#362
Author: Ballerg
Date: Thu, 06 Jul 2006 07:54
8 lines
1021 bytes
Witam !

Chcialem sie nauczyc assemblera tylko niewiem zabardzo z jakiego dokumentu
lub ksiazki sie uczyc, wiec mam pytanie do was.
Z czego uczyliscie sie podstaw assemblera i jaka ksiaazke polecacie ?
Interesuja mnie najbardziej teksty z duza iloscia przykladow.
-- 
Ballerg :D 
Re: jak zaczac ?
#363
Author: Matuzalem
Date: Thu, 06 Jul 2006 13:52
39 lines
2300 bytes
Ballerg napisal(a):
> Witam !
>
> Chcialem sie nauczyc assemblera tylko niewiem zabardzo z jakiego dokumentu
> lub ksiazki sie uczyc, wiec mam pytanie do was.
> Z czego uczyliscie sie podstaw assemblera i jaka ksiaazke polecacie ?
> Interesuja mnie najbardziej teksty z duza iloscia przykladow.
> --
> Ballerg :D

Mysle ze jak zamieszcze ta strone to autor sie nie obrazi, to jest
poprostu boskie, idealne, polecam goraco bardzo goraco :)
-> http://rudy.mif.pg.gda.pl/~bogdro/

Ksiazki np.

1). "Asembler: Dla Procesorów Intel", Kip R. Irvine, wyd. Helion
2). "Asembler: Podrecznik Programisty", Vlad Pirogov, wyd. Helion
3). (co prawda nie jest ta pozycja zwiazana strikte z ASM, ale polecam
ja przeczytac,
     jednakze tu juz sa wymagane podstawy) "Cracking Bez Tajemnic",
Jakub Zemanek,
     wyd. Helion
4). szukaj po ksiegarniach internetowych, jest tego troche

Wszystkie w/w pozycje odnosza sie do Windows.
Jednak strone która podalem, mysle ze jest z tego wszystkoego
najlepsza:
- multum przykladów,
- opisy,
- Intel, AT&T
- TASM, NASM, FASM
- Windows, Linux
- i inne

Chyle nisko czolo dla autora.

Pozdrawiam!
Re: jak zaczac ?
#364
Author: ballerg
Date: Thu, 06 Jul 2006 17:07
43 lines
2489 bytes
Matuzalem napisał(a):
> Ballerg napisal(a):
> > Witam !
> >
> > Chcialem sie nauczyc assemblera tylko niewiem zabardzo z jakiego dokumentu
> > lub ksiazki sie uczyc, wiec mam pytanie do was.
> > Z czego uczyliscie sie podstaw assemblera i jaka ksiaazke polecacie ?
> > Interesuja mnie najbardziej teksty z duza iloscia przykladow.
> > --
> > Ballerg :D
>
> Mysle ze jak zamieszcze ta strone to autor sie nie obrazi, to jest
> poprostu boskie, idealne, polecam goraco bardzo goraco :)
> -> http://rudy.mif.pg.gda.pl/~bogdro/
>
> Ksiazki np.
>
> 1). "Asembler: Dla Procesorów Intel", Kip R. Irvine, wyd. Helion
> 2). "Asembler: Podrecznik Programisty", Vlad Pirogov, wyd. Helion
> 3). (co prawda nie jest ta pozycja zwiazana strikte z ASM, ale polecam
> ja przeczytac,
>      jednakze tu juz sa wymagane podstawy) "Cracking Bez Tajemnic",
> Jakub Zemanek,
>      wyd. Helion
> 4). szukaj po ksiegarniach internetowych, jest tego troche
>
> Wszystkie w/w pozycje odnosza sie do Windows.
> Jednak strone która podalem, mysle ze jest z tego wszystkoego
> najlepsza:
> - multum przykladów,
> - opisy,
> - Intel, AT&T
> - TASM, NASM, FASM
> - Windows, Linux
> - i inne
>
> Chyle nisko czolo dla autora.
> 
> Pozdrawiam!

Dzieki !!
Juz zaczynam nauke z tej strony.
Re: jak zaczac ?
#365
Author: Remek
Date: Fri, 07 Jul 2006 13:06
15 lines
1370 bytes
> polecam goraco bardzo goraco :)
> http://rudy.mif.pg.gda.pl/~bogdro/

Przylaczam sie do opinii o stronie Bogdana, ale nie
jest ona przeznaczona dla zupelnie poczatkujacych.
Abecadla trzeba sie chyba nauczyc z jakiejs dobrej ksiazki.
Ja polecam "Zrozumiec Assembler" Jeff'a Duntemann'a.
Stara i o 16 bitach, ale warto ja przerobic. Trzeba tez
zapytac, czy to ma byc assembler pod Windows, czy inne systemy,
bo od tego zalezy wybór zródel nauki.

Pozdrawiam

-- 
Remek
Re: jak zaczac ?
#366
Author: Ballerg
Date: Sat, 08 Jul 2006 07:56
21 lines
1554 bytes
Remek wrote:

>> polecam goraco bardzo goraco :)
>> http://rudy.mif.pg.gda.pl/~bogdro/
> 
> Przylaczam sie do opinii o stronie Bogdana, ale nie
> jest ona przeznaczona dla zupelnie poczatkujacych.
> Abecadla trzeba sie chyba nauczyc z jakiejs dobrej ksiazki.
> Ja polecam "Zrozumiec Assembler" Jeff'a Duntemann'a.
> Stara i o 16 bitach, ale warto ja przerobic. Trzeba tez
> zapytac, czy to ma byc assembler pod Windows, czy inne systemy,
> bo od tego zalezy wybór zródel nauki.
> 
> Pozdrawiam
> 

Chodzi o assembler na systemy unix na procesory klasy AMD.
Zaczolem sie uczyc z tej strony i nawet zrozumialem caly 1 rozdzial ale w
polowie 2 wysiadlem i nic nie pojmuje.
-- 
Ballerg :D 
Re: jak zaczac ?
#367
Author: not2smart
Date: Sat, 08 Jul 2006 08:59
5 lines
1504 bytes
Witaj!

Przejrzyj też tutoriale ze stronki http://www.rag.kgb.pl/asm.php - ja
ucząc się asma korzystałem (i korzystam) zarówno z tej strony jak i
strony Bogdana. Powodzenia! :)
Re: jak zaczac ?
#368
Author: Remek
Date: Sat, 08 Jul 2006 12:39
10 lines
1294 bytes
> zrozumialem caly 1 rozdzial ale w polowie 2 wysiadlem
> i nic nie pojmuje.

Na stronach Bogdana znajduje się ogromna ilość skondensowanej
wiedzy, którą trudno przyswoić początkującemu. Zacznij
od książek i przerabiaj praktycznie przykłady. Po pewnym
czasie wróć do omawianych stron i będzie Ci łatwiej.

-- 
Remek
Re: jak zaczac ?
#369
Author: Bogdan (bogdro)
Date: Sun, 09 Jul 2006 17:06
17 lines
1815 bytes
Ballerg napisał(a):
> Chodzi o assembler na systemy unix na procesory klasy AMD.
> Zaczolem sie uczyc z tej strony i nawet zrozumialem caly 1 rozdzial ale w
> polowie 2 wysiadlem i nic nie pojmuje.

 Proszę śmiało powiedzieć (tu lub na maila), w czym problem. Postaram
się jak najlepiej wytłumaczyć.
 Jeśli rzeczywiście trzeba coś lepiej opisać, to po bieżących pracach
"konserwatorskich" powinienem mieć czas, aby się tym zająć.

P.S. Dziękuję pozostałym za te wszystkie miłe słowa o mojej stronce :)

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Re: jak zaczac ?
#370
Author: Matuzalem
Date: Sun, 09 Jul 2006 17:31
28 lines
2530 bytes
Bogdan (bogdro) napisal(a):
> Ballerg napisal(a):
> > Chodzi o assembler na systemy unix na procesory klasy AMD.
> > Zaczolem sie uczyc z tej strony i nawet zrozumialem caly 1 rozdzial ale w
> > polowie 2 wysiadlem i nic nie pojmuje.
>
>  Prosze smialo powiedziec (tu lub na maila), w czym problem. Postaram
> sie jak najlepiej wytlumaczyc.
>  Jesli rzeczywiscie trzeba cos lepiej opisac, to po biezacych pracach
> "konserwatorskich" powinienem miec czas, aby sie tym zajac.
>
> P.S. Dziekuje pozostalym za te wszystkie mile slowa o mojej stronce :)
>
> --
> Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
> Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
> Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
> Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org

Niskie uklony bardzo niskie, Twoja strona - moim zdaniem - nalezy do
czolowych stron o asemblerze, a napewno jest najlepsza polska
strona o tej tematyce.
To wszystko jeszcze bardziej rosnie na wartosci bo jest darmowe!!!
Naprawde, podziwiam Cie za ten serwis przede wszystkim za to, ze
robisz to dla innych i jest to zrobione profesionalnie.

Pozdrawiam!
Re: jak zaczac ?
#371
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 18:07
39 lines
2838 bytes
On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
>
> Bogdan (bogdro) napisal(a):
>> Ballerg napisal(a):
>> > Chodzi o assembler na systemy unix na procesory klasy AMD.
>> > Zaczolem sie uczyc z tej strony i nawet zrozumialem caly 1 rozdzial ale w
>> > polowie 2 wysiadlem i nic nie pojmuje.
>>
>>  Prosze smialo powiedziec (tu lub na maila), w czym problem. Postaram
>> sie jak najlepiej wytlumaczyc.
>>  Jesli rzeczywiscie trzeba cos lepiej opisac, to po biezacych pracach
>> "konserwatorskich" powinienem miec czas, aby sie tym zajac.
>>
>> P.S. Dziekuje pozostalym za te wszystkie mile slowa o mojej stronce :)
>>
>> --
>> Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
>> Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
>> Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
>> Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
>
> Niskie uklony bardzo niskie, Twoja strona - moim zdaniem - nalezy do
> czolowych stron o asemblerze, a napewno jest najlepsza polska
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> strona o tej tematyce.
  ^^^^^^^^^^^^^^^^^^^^^
A szkoda, bo brakuje mi choćby wyjaśnień, jak jest ułożona pamięć pod
takim Linuksem podczas pracy programu, jak z assemblera wołać funkcje
pisane w C (w tym co to jest main i _start), jak przydzielać pamięć dla
zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i parę
innych takich. Jak widać, to nie plus dla strony, że jest najlepsza,
tylko minus dla wszystkich pozostałych, że brak współczesnych podstaw.

Wiem, że to kubeł zimnej wody, ale już mi obmierzły bezkrytyczne ochy
i achy nad stroną Bogdana.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#372
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 18:11
39 lines
2875 bytes
On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
>
> Bogdan (bogdro) napisal(a):
>> Ballerg napisal(a):
>> > Chodzi o assembler na systemy unix na procesory klasy AMD.
>> > Zaczolem sie uczyc z tej strony i nawet zrozumialem caly 1 rozdzial ale w
>> > polowie 2 wysiadlem i nic nie pojmuje.
>>
>>  Prosze smialo powiedziec (tu lub na maila), w czym problem. Postaram
>> sie jak najlepiej wytlumaczyc.
>>  Jesli rzeczywiscie trzeba cos lepiej opisac, to po biezacych pracach
>> "konserwatorskich" powinienem miec czas, aby sie tym zajac.
>>
>> P.S. Dziekuje pozostalym za te wszystkie mile slowa o mojej stronce :)
>>
>> --
>> Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
>> Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
>> Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
>> Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
>
> Niskie uklony bardzo niskie, Twoja strona - moim zdaniem - nalezy do
> czolowych stron o asemblerze, a napewno jest najlepsza polska
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> strona o tej tematyce.
  ^^^^^^^^^^^^^^^^^^^^^
A szkoda, bo brakuje mi choćby wyjaśnień, jak jest ułożona pamięć pod
takim Linuksem podczas pracy programu, jak z assemblera wołać funkcje
z libc (w tym co to jest main i _start), jak przydzielać pamięć dla
zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i parę
innych takich. Jak widać, to nie plus dla strony, że jest najlepsza,
tylko minus dla wszystkich pozostałych, że brak współczesnych podstaw.

Wiem, że to kubeł zimnej wody, ale już mi obmierzły bezkrytyczne ochy
i achy nad stroną Bogdana.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#373
Author: Matuzalem
Date: Sun, 09 Jul 2006 19:49
23 lines
2366 bytes
> A szkoda, bo brakuje mi chocby wyjasnien, jak jest ulozona pamiec pod
> takim Linuksem podczas pracy programu, jak z assemblera wolac funkcje
> z libc (w tym co to jest main i _start), jak przydzielac pamiec dla
> zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i pare
> innych takich. Jak widac, to nie plus dla strony, ze jest najlepsza,
> tylko minus dla wszystkich pozostalych, ze brak wspólczesnych podstaw.
>
> Wiem, ze to kubel zimnej wody, ale juz mi obmierzly bezkrytyczne ochy
> i achy nad strona Bogdana.
>
> --
> Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
> Stanislaw Klekot

Skoro nie umiesz docenic czyjejs pracy i wiadomosci nic na to nie
poradze.
Nie ma ksiazek (stron internetowych) na których znalazl bys
wszystko - nie istnieja.
Kazdy ma swoje zdanie.
Powinienes nauczyc sie szukac, bo czasem wystarczy tylko
nakreslic temat, reszta juz nalezy do zainteresowanego.

Pozdrawiam!
Re: jak zaczac ?
#374
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 20:17
39 lines
2988 bytes
On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
>> A szkoda, bo brakuje mi chocby wyjasnien, jak jest ulozona pamiec pod
>> takim Linuksem podczas pracy programu, jak z assemblera wolac funkcje
>> z libc (w tym co to jest main i _start), jak przydzielac pamiec dla
>> zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i pare
>> innych takich. Jak widac, to nie plus dla strony, ze jest najlepsza,
>> tylko minus dla wszystkich pozostalych, ze brak wspólczesnych podstaw.
>>
>> Wiem, ze to kubel zimnej wody, ale juz mi obmierzly bezkrytyczne ochy
>> i achy nad strona Bogdana.

> Skoro nie umiesz docenic czyjejs pracy i wiadomosci nic na to nie
> poradze.

Owszem, umiem. Umiem też trzeźwo patrzeć na tekst, który czytam.
I prawda jest taka, że kurs Bogdana nie wniósł prawie nic do mojej
wiedzy o assemblerze jeszcze w czasach, gdy nie odważyłbym się
powiedzieć o sobie, że miałem _jakąkolwiek_ styczność z assemblerem.

> Nie ma ksiazek (stron internetowych) na których znalazl bys
> wszystko - nie istnieja.
> Kazdy ma swoje zdanie.
> Powinienes nauczyc sie szukac, bo czasem wystarczy tylko
> nakreslic temat, reszta juz nalezy do zainteresowanego.

Powinieneś nauczyć się najpierw szukać informacji o rozmówcy, a dopiero
potem wygłaszać takie stwierdzenia.

Jeśli chodzi o tematy, które wymieniłem, to musiałem spędzić
w niektórych przypadkach dobre paręnaście godzin nad debuggerem, nie
licząc już dni czy może nawet tygodni na czytaniu różnych materiałów,
już to o samym języku C, już to o sposobie działania kompilatora,
formacie plików ELF i przemyśleń własnych. I wyobraź sobie, że istnieją
tematy, na które naprawdę ciężko znaleźć _cokolwiek_ pytając Googli --
i to nie z winy pytającego.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#375
Author: Matuzalem
Date: Sun, 09 Jul 2006 21:35
67 lines
4830 bytes
Stachu 'Dozzie' K. napisal(a):
> On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
> >> A szkoda, bo brakuje mi chocby wyjasnien, jak jest ulozona pamiec pod
> >> takim Linuksem podczas pracy programu, jak z assemblera wolac funkcje
> >> z libc (w tym co to jest main i _start), jak przydzielac pamiec dla
> >> zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i pare
> >> innych takich. Jak widac, to nie plus dla strony, ze jest najlepsza,
> >> tylko minus dla wszystkich pozostalych, ze brak wspólczesnych podstaw.
> >>
> >> Wiem, ze to kubel zimnej wody, ale juz mi obmierzly bezkrytyczne ochy
> >> i achy nad strona Bogdana.
>
> > Skoro nie umiesz docenic czyjejs pracy i wiadomosci nic na to nie
> > poradze.
>
> Owszem, umiem. Umiem tez trzezwo patrzec na tekst, który czytam.
> I prawda jest taka, ze kurs Bogdana nie wniósl prawie nic do mojej
> wiedzy o assemblerze jeszcze w czasach, gdy nie odwazylbym sie
> powiedziec o sobie, ze mialem _jakakolwiek_ stycznosc z assemblerem.
>
> > Nie ma ksiazek (stron internetowych) na których znalazl bys
> > wszystko - nie istnieja.
> > Kazdy ma swoje zdanie.
> > Powinienes nauczyc sie szukac, bo czasem wystarczy tylko
> > nakreslic temat, reszta juz nalezy do zainteresowanego.
>
> Powinienes nauczyc sie najpierw szukac informacji o rozmówcy, a dopiero
> potem wyglaszac takie stwierdzenia.
>
> Jesli chodzi o tematy, które wymienilem, to musialem spedzic
> w niektórych przypadkach dobre parenascie godzin nad debuggerem, nie
> liczac juz dni czy moze nawet tygodni na czytaniu róznych materialów,
> juz to o samym jezyku C, juz to o sposobie dzialania kompilatora,
> formacie plików ELF i przemyslen wlasnych. I wyobraz sobie, ze istnieja
> tematy, na które naprawde ciezko znalezc _cokolwiek_ pytajac Googli --
> i to nie z winy pytajacego.
>
> --
> Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
> Stanislaw Klekot

Bez urazy, Ty jeden spedziles wiele godzin przed dbg, dasm itd.?
Wiesz, ja nie zaluje tego i nadal spedzam przed nimi wiele godzin
jesli musze, lubie to i kocham asm.
Skoro tak to wypominasz, czyli widac zalujesz tego i zle wspomniasz
te stracone godziny, wiec moze nie powinienes sie za to zabierac.
Nie Ty jeden nie znalazles wielu informacji, ale sztuka jest je
znalesc, nie wypominac komus, ze ich nie zamiescil, bo to
najprostrze. Sztuka jest docenic czyjs wklad pracy i zamilowanie
tego co robil. Jak widac nie potrafisz tego. Krytykowac kazdy
potrafi, dziwnym trafem chwalic juz niewiele.
Uwazam, ze naleza sie owe pochwal, ponewaz to jest strona
Bogdana nie Twoja, sam Bogdan zamiescil notke, ze mozna do niego
pisac w razie potrzeby.
Masz ale? Zrób swoja strone, dla innych i dla siebie, a nie pisze,
ze z powodu braku twoich umiejetnosci - lub malych zasobów w necie
- caly serwis jest doniczego.
Zazdrosc to nic dobrego - z jej pomoca napewno nie potrafilbys
poswiecic tylu godzin, dni, tygodni, na stworzenie choc tyc
podobnego serwisu, przede wszystkim dla innych, docen to, On tworzyl
ja z mysla o innych, nie o sobie i wykodal kawal dobrej roboty.

Ta strona zasluguje na podziw i pochwaly, bo jest warta tego.

Chcesz mozesz kontynuowac ten temat... ja juz skonczylem i cala
reszte pozostawie bez kometarza.
Re: jak zaczac ?
#376
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 22:19
125 lines
6785 bytes
On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
>
> Stachu 'Dozzie' K. napisal(a):
>> On 09.07.2006, Matuzalem <codemaster_@op.pl> wrote:
>> >> A szkoda, bo brakuje mi chocby wyjasnien, jak jest ulozona pamiec pod
>> >> takim Linuksem podczas pracy programu, jak z assemblera wolac funkcje
>> >> z libc (w tym co to jest main i _start), jak przydzielac pamiec dla
>> >> zmiennych lokalnych, dlaczego nie ma syscalli malloc()/free() i pare
>> >> innych takich. Jak widac, to nie plus dla strony, ze jest najlepsza,
>> >> tylko minus dla wszystkich pozostalych, ze brak wspólczesnych podstaw.
>> >>
>> >> Wiem, ze to kubel zimnej wody, ale juz mi obmierzly bezkrytyczne ochy
>> >> i achy nad strona Bogdana.
>>
>> > Skoro nie umiesz docenic czyjejs pracy i wiadomosci nic na to nie
>> > poradze.
>>
>> Owszem, umiem. Umiem tez trzezwo patrzec na tekst, który czytam.
>> I prawda jest taka, ze kurs Bogdana nie wniósl prawie nic do mojej
>> wiedzy o assemblerze jeszcze w czasach, gdy nie odwazylbym sie
>> powiedziec o sobie, ze mialem _jakakolwiek_ stycznosc z assemblerem.
>>
>> > Nie ma ksiazek (stron internetowych) na których znalazl bys
>> > wszystko - nie istnieja.
>> > Kazdy ma swoje zdanie.
>> > Powinienes nauczyc sie szukac, bo czasem wystarczy tylko
>> > nakreslic temat, reszta juz nalezy do zainteresowanego.
>>
>> Powinienes nauczyc sie najpierw szukac informacji o rozmówcy, a dopiero
>> potem wyglaszac takie stwierdzenia.
>>
>> Jesli chodzi o tematy, które wymienilem, to musialem spedzic
>> w niektórych przypadkach dobre parenascie godzin nad debuggerem, nie
>> liczac juz dni czy moze nawet tygodni na czytaniu róznych materialów,
>> juz to o samym jezyku C, juz to o sposobie dzialania kompilatora,
>> formacie plików ELF i przemyslen wlasnych. I wyobraz sobie, ze istnieja
>> tematy, na które naprawde ciezko znalezc _cokolwiek_ pytajac Googli --
>> i to nie z winy pytajacego.
>>
>> --
>> Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
>> Stanislaw Klekot
>
> Bez urazy, Ty jeden spedziles wiele godzin przed dbg, dasm itd.?

Skąd pomysł, że tak uważam?

> Wiesz, ja nie zaluje tego i nadal spedzam przed nimi wiele godzin
> jesli musze, lubie to i kocham asm.
> Skoro tak to wypominasz, czyli widac zalujesz tego i zle wspomniasz
> te stracone godziny, wiec moze nie powinienes sie za to zabierac.

Odwróćmy tę analizę i zastosujmy do twojej osoby: spędziłeś i spędzasz
dużo czasu przed debuggerem i cholernie tego żałujesz, bo tyle jest
ciekawszych rzeczy, a tutaj tylko próbujesz sobie wmówić, że lubisz
babrać się w opcode'ach. No pasuje jak ulał!

Może na przyszłość nie próbuj bawić się w psychologa, hę?

> Nie Ty jeden nie znalazles wielu informacji, ale sztuka jest je
> znalesc, nie wypominac komus, ze ich nie zamiescil,

Dlaczego niby uważasz, że nie znalazłem? Znalazłem albo sam
wywnioskowałem, najczęściej po wielu godzinach spędzonych bezowocnie
na szukaniu w internecie.

> bo to
> najprostrze.
  ^^^^^^^^^^^
Jakie?

> Sztuka jest docenic czyjs wklad pracy i zamilowanie
> tego co robil. Jak widac nie potrafisz tego. Krytykowac kazdy
> potrafi, dziwnym trafem chwalic juz niewiele.

Postawmy sprawę inaczej: każdy głupi potrafi rzucić "strona jest do
dupy, nie nadaje się do niczego" albo "super, zajebista stronka, ukłony
i szacun!". Gorzej z podaniem, dlaczego jest OK albo wskazaniem palcem,
czego nie ma i co jest źle zrobione. Bezmyślne pochwały mają niewielką
wartość (choć i owszem, miłe są).

> Uwazam, ze naleza sie owe pochwal, ponewaz to jest strona
> Bogdana nie Twoja,

...a gdyby była moja, to już by się nie należały autorowi? Uważaj na to,
co piszesz, bo bardzo łatwo coś przekręcić analizując twoją wypowiedź
dosłownie.

> Masz ale? Zrób swoja strone, dla innych i dla siebie, a nie pisze,
> ze z powodu braku twoich umiejetnosci - lub malych zasobów w necie
> - caly serwis jest doniczego.

A czy ja napisałem, że serwis jest do niczego? I to z powodu ubogich
zasobów internetu? Serwis jest jaki jest, ale kretynizmem jest
zachwycanie się nim tylko dlatego, że jest _stosunkowo_ najlepszy.

Swoją drogą, kiedyś już pomagałem w ten czy inny sposób w powstaniu
tekstu o assemblerze pod Linuksa.
http://www.google.pl/search?q=asm.pdf+filetype%3Apdf+dozzie
Niestety serwer, na którym ten dokument się znajduje z nieznanych mi
obecnie przyczyn przez ostatnie parę godzin leży, więc musiałbyś
skorzystać z google cache.

> Zazdrosc to nic dobrego - z jej pomoca napewno nie potrafilbys
> poswiecic tylu godzin, dni, tygodni, na stworzenie choc tyc
> podobnego serwisu, przede wszystkim dla innych, docen to, On tworzyl
> ja z mysla o innych, nie o sobie i wykodal kawal dobrej roboty.

A ja większość rzeczy, które tworzę, tworzę z myślą o sobie. I potem
wychodzi Extended Slackware z paroma howtos albo pkgtools-ng.
Oba bardziej dopracowane, a mimo to nie uważam żadnego z nich za jakąś
wyjątkową perełkę.

Ty, jak rozumiem, też masz na koncie jakieś teksty albo projekty
publicznego użytku, skoro wytykasz ich brak innym (mimo że jakoś nie
mogę żadnych znaleźć). Popraw mnie, jeśli się mylę.

> Ta strona zasluguje na podziw i pochwaly, bo jest warta tego.

Jest warta pochwały, ale na pewno nie aż podziwu. Ty Bogdanowi teraz
zwyczajnie kadzisz, nie wiem po co.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#380
Author: Michał
Date: Sun, 09 Jul 2006 23:19
27 lines
2701 bytes
Stachu 'Dozzie' K. wrote:
> Owszem, umiem. Umiem też trzeźwo patrzeć na tekst, który czytam.
> I prawda jest taka, że kurs Bogdana nie wniósł prawie nic do mojej
> wiedzy o assemblerze jeszcze w czasach, gdy nie odważyłbym się
> powiedzieć o sobie, że miałem _jakąkolwiek_ styczność z assemblerem.

Stawiasz wysoko poprzeczkę. Co innego znajomość samej składnie + 
napisane parę małych programów, co innego umiejętność zaawansowanej 
joptymalizacji. IMHO mając to pierwsze za sobą, spokojnie można 
powiedzieć, że miało się styczność z assemblerem.

> Jeśli chodzi o tematy, które wymieniłem, to musiałem spędzić
> w niektórych przypadkach dobre paręnaście godzin nad debuggerem, nie
> licząc już dni czy może nawet tygodni na czytaniu różnych materiałów,
> już to o samym języku C, już to o sposobie działania kompilatora,
> formacie plików ELF i przemyśleń własnych. I wyobraź sobie, że istnieją
> tematy, na które naprawdę ciężko znaleźć _cokolwiek_ pytając Googli --
> i to nie z winy pytającego.

Te wszystkie tematy, które wymieniłeś są raczej dla ludzi którzy, w moim 
odczuciu, mieli już jakąś styczność z assemblerem. Strona Bogdana jest 
dla początkujących i IMHO jest bardzo dobra. W miarę(?) kompletne źródło 
informacji dla każdego kto chce zapoznać się z tym co to w ogóle jest 
assembler i jak to ugryźć.

-- 
Pozdrawiam
Re: jak zaczac ?
#381
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 23:35
47 lines
3535 bytes
On 09.07.2006, Michał <nie_mam_meila@tpi.pl> wrote:
> Stachu 'Dozzie' K. wrote:
>> Owszem, umiem. Umiem też trzeźwo patrzeć na tekst, który czytam.
>> I prawda jest taka, że kurs Bogdana nie wniósł prawie nic do mojej
>> wiedzy o assemblerze jeszcze w czasach, gdy nie odważyłbym się
>> powiedzieć o sobie, że miałem _jakąkolwiek_ styczność z assemblerem.
>
> Stawiasz wysoko poprzeczkę. Co innego znajomość samej składnie + 
> napisane parę małych programów, co innego umiejętność zaawansowanej 
> joptymalizacji. IMHO mając to pierwsze za sobą, spokojnie można 
> powiedzieć, że miało się styczność z assemblerem.

Czyli nisko stawiam. Gdy czytałem kurs Bogdana, nie miałem za sobą nawet
jednego programu wypisującego "Hell oWorld", jedynie strzępy informacji
zebrane z kursów C i C z klasami, wtedy jeszcze zwanego C++.

>> Jeśli chodzi o tematy, które wymieniłem, to musiałem spędzić
>> w niektórych przypadkach dobre paręnaście godzin nad debuggerem, nie
>> licząc już dni czy może nawet tygodni na czytaniu różnych materiałów,
>> już to o samym języku C, już to o sposobie działania kompilatora,
>> formacie plików ELF i przemyśleń własnych. I wyobraź sobie, że istnieją
>> tematy, na które naprawdę ciężko znaleźć _cokolwiek_ pytając Googli --
>> i to nie z winy pytającego.
>
> Te wszystkie tematy, które wymieniłeś są raczej dla ludzi którzy, w moim 
> odczuciu, mieli już jakąś styczność z assemblerem.

Zgadza się. Może z wyjątkiem ułożenia pamięci w programie, ale tu można
się kłócić. I z wyjątkiem działania kompilatora, bo ta wiedza przydaje
się przy czytaniu błędów i ostrzeżeń.

> Strona Bogdana jest 
> dla początkujących i IMHO jest bardzo dobra.

Ot i właśnie. A padło stwierdzenie, że właśnie nie jest dla zupełnie
początkujących (choć to nie Matuzalem napisał).

> W miarę(?) kompletne źródło 
> informacji dla każdego kto chce zapoznać się z tym co to w ogóle jest 
> assembler i jak to ugryźć.

A mnie brakuje opisu, choćby pobieżnego, gdzie można umieszczać dane,
gdy wiadomo dopiero w czasie wykonania, ile ich będzie.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#377
Author: Remek
Date: Mon, 10 Jul 2006 12:32
23 lines
2354 bytes
> Gorzej z podaniem, dlaczego jest OK albo wskazaniem palcem,
> czego nie ma i co jest źle zrobione. Bezmyślne pochwały mają
niewielką
> wartość (choć i owszem, miłe są).

Wykorzystuję cytat z Twojego postu jako niezwykle celny, ale nie
w celu polemiki z Tobą, lecz bardziej jako przyczynek do uwag
bardziej ogólnych. Trudno chyba wymagać od pojedyńczego człowieka,
aby na swojej stronie zamieścił całą wiedzę o asemblerze. Sam się
przekonałem ile mrówczej pracy i samozaparcia potrzeba do stworzenia
choćby jednej w pełni funkcjonalnej biblioteki, przetestowania jej
i doprowadzenia do stanu nadającego sie do publikacji. Bardzo brak
kompletnych opracowań o asemblerze i uważam stronę Bogdana za krok
w dobrym kierunku. Jeśli komuś czegoś na niej brakuje, (a z pewnością
tak jest) może zaproponować współpracę, lub stworzyć własną stronę.

Strona Bogdana jest z dostępnych w sieci opracowań polskojęzycznych
najbardziej kompletna w pewnym oczywiście zakresie zakresie.

Pozdrawiam

-- 
Remek
Re: jak zaczac ?
#382
Author: Bogdan (bogdro)
Date: Mon, 10 Jul 2006 13:05
79 lines
4574 bytes
Stachu 'Dozzie' K. napisał(a):
> A szkoda, bo brakuje mi choćby wyjaśnień, jak jest ułożona pamięć pod
> takim Linuksem podczas pracy programu,

 Oj, od dość dawna jest (a przynajmniej schemat):
http://rudy.mif.pg.gda.pl/~bogdro/linux/linux02.html, nagłówek:
"Organizacja pamięci w Linuksie".

 Rysunek w stylu ASCII-art podaje w zasadzie tylko adresy (tzn. nie ma
podziału na segmenty itp.), bo pamięć jest liniowa i do dowolnej
części programu można się dostać poprzez dowolny rejestr segmentowy
(co innego, że czasem może to sypnąć program).

 Co więcej chciałbyś zobaczyć? (pytanie na serio, nie ironiczne!)

> jak z assemblera wołać funkcje
> z libc (w tym co to jest main i _start),

 Fakt, w głównym kursie tego rzeczywiście nie ma. Za to jest w
niektórych mini-kursach (programy sieciowe, programy rezydentne). Może
rzeczywiście powinienem dołożyć do kursu.

> jak przydzielać pamięć dla
> zmiennych lokalnych,

 Nie ma osobnego rozdziału o procedurach/podprogramach, więc tego też
nie ma. W zasadzie takie "przydzielanie" sprowadza się do

	sub esp, liczba_bajtow

i operowaniu na [esp+xx] lub [ebp-xx]. O tym na pewno wspomnę.

> dlaczego nie ma syscalli malloc()/free()

 Bo nie ma ich w jądrze (czyli pytaj o to jądrowców).
 Za to na stronie są, a właściwie to "jest", bo jest tylko 1:
sys_brk() - pobierz/ustal maksymalny adres w sekcji danych.
http://rudy.mif.pg.gda.pl/~bogdro/linux/przer80h_1.html#f0045 (funkcja
numer 45)
 Dajesz 0 w EBX, dostajesz swój najwyższy adres. Do tego adresu
dodajesz tyle, ile chcesz i podajesz w EBX do kolejnego wywołania
sys_brk(), a jądro przydziela. Mój opis tej funkcji istotnie nie mówi
o tym, że może ona być używana do takich celów. Pomyślę nad zmianą. Z
resztą, to była moja pierwsza strona z cyklu "int 80h", więc chyba
starałem się wszystko zbyt dokładnie tłumaczyć.

 Kiedyś były jeszcze jakieś funkcje alloc/free_hugepages, ale
wyrzucono je. Czy są jakieś inne? W tej chwili nie pamiętam.

http://rudy.mif.pg.gda.pl/~bogdro/linux/alloc_tut_linux.html

> i parę
> innych takich.

 Proszę o podanie konkretów. Kurs jest mój, ale nie pisałem go dla
siebie (bo i po co?), tylko dla innych. Ale nie mogę wiedzieć, czego
innym osobom w nim brakuje.
 Swój kurs pisałem w taki sposób, aby omówić wszystko, do czego ja sam
miałem wątpliwości, ucząc się asma. Mówiąc mi, czego Twoim zdaniem
brakuje, pomożesz kolejnym osobom, które w przyszłości będą czytały
mój kurs.

> Jak widać, to nie plus dla strony, że jest najlepsza,
> tylko minus dla wszystkich pozostałych, że brak współczesnych podstaw.
> 
> Wiem, że to kubeł zimnej wody, ale już mi obmierzły bezkrytyczne ochy
> i achy nad stroną Bogdana.

 Lepszy taki kubeł konkretów niż po prostu "Bogdan, twoja strona jest
do d***". Cieszę się, że zwracasz uwagę i podajesz *konkretne* tematy.
Nie mogę obiecać, że wkrótce się tym zajmę, ale na pewno wezmę Twoje
słowa pod uwagę. Już sobie dopisałem te 3 rzeczy do "pliku rzeczy do
zrobienia".

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Re: jak zaczac ?
#378
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 15:50
41 lines
3124 bytes
On 10.07.2006, Remek <wiasmed@neostrada.pl> wrote:
>> Gorzej z podaniem, dlaczego jest OK albo wskazaniem palcem,
>> czego nie ma i co jest źle zrobione. Bezmyślne pochwały mają
> niewielką
>> wartość (choć i owszem, miłe są).
>
> Wykorzystuję cytat z Twojego postu jako niezwykle celny, ale nie
> w celu polemiki z Tobą, lecz bardziej jako przyczynek do uwag
> bardziej ogólnych. Trudno chyba wymagać od pojedyńczego człowieka,
> aby na swojej stronie zamieścił całą wiedzę o asemblerze.

Zgadza się. Ale można czasem oczekiwać, że to będzie coś więcej niż
kolejny tutorial dla newbies.

> Sam się
> przekonałem ile mrówczej pracy i samozaparcia potrzeba do stworzenia
> choćby jednej w pełni funkcjonalnej biblioteki, przetestowania jej
> i doprowadzenia do stanu nadającego sie do publikacji. Bardzo brak
> kompletnych opracowań o asemblerze i uważam stronę Bogdana za krok
> w dobrym kierunku.

Ja również, ale uważam go za krok zdecydowanie zbyt mały. I przypominam,
że ja narzekam nie na zawartość samej strony, a na bezkrytyczne uwagi
"super stronka, najlepsza, polecam".

> Jeśli komuś czegoś na niej brakuje, (a z pewnością
> tak jest) może zaproponować współpracę, lub stworzyć własną stronę.

Tudzież inne opracowania (-> <slrne2og59.53g.dozzie@hans.zsh.bash.org.pl>).

> Strona Bogdana jest z dostępnych w sieci opracowań polskojęzycznych
> najbardziej kompletna w pewnym oczywiście zakresie zakresie.

I to mnie właśnie martwi. Strona jest najbardziej kompletna w okolicy,
a mimo to zawiera zaledwie niewielką i najłatwiej dostępną część wiedzy
okołoassemblerowej. Aż strach pomyśleć, jak mało informacji zawierają
strony mniej kompletne.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#383
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 16:20
105 lines
5500 bytes
On 10.07.2006, Bogdan (bogdro) <bogdan@bogdan.pl> wrote:
> Stachu 'Dozzie' K. napisał(a):
>> A szkoda, bo brakuje mi choćby wyjaśnień, jak jest ułożona pamięć pod
>> takim Linuksem podczas pracy programu,
>
>  Oj, od dość dawna jest (a przynajmniej schemat):
> http://rudy.mif.pg.gda.pl/~bogdro/linux/linux02.html, nagłówek:
> "Organizacja pamięci w Linuksie".

Brakuje mi opisu, gdzie są rozmieszczone zmienne lokalne, zmienne
statyczne i globalne (C), jak się wyrównuje rejestr ESP przy wchodzeniu
do funkcji (skompilowany kod C) i co to jest wskaźnik ramki. Pewnie coś
jeszcze, ale na chwilę obecną nie pamiętam.

[..]
>  Co więcej chciałbyś zobaczyć? (pytanie na serio, nie ironiczne!)

Tak więc odpowiadam akapit wyżej.

A nawet gdyby pytanie było ironiczne, otrzymałbyś taką samą odpowiedź ;)

>> jak z assemblera wołać funkcje
>> z libc (w tym co to jest main i _start),
>
>  Fakt, w głównym kursie tego rzeczywiście nie ma. Za to jest w
> niektórych mini-kursach (programy sieciowe, programy rezydentne). Może
> rzeczywiście powinienem dołożyć do kursu.
>
>> jak przydzielać pamięć dla
>> zmiennych lokalnych,
>
>  Nie ma osobnego rozdziału o procedurach/podprogramach, więc tego też
> nie ma. W zasadzie takie "przydzielanie" sprowadza się do
>
> 	sub esp, liczba_bajtow
>
> i operowaniu na [esp+xx] lub [ebp-xx]. O tym na pewno wspomnę.

Warto, bo przez naprawdę spory kawałek czasu zastanawiałem się, gdzie
zapisywać lokalne inty. Dopiero dezasemblacja programiku pisanego
w C wyjaśniła, jak to robić.

>> i parę
>> innych takich.
>
>  Proszę o podanie konkretów. Kurs jest mój, ale nie pisałem go dla
> siebie (bo i po co?),

Pokazać "jaki to ja mądry, bo znam się na temacie i umiem dobrze
wytłumaczyć". Ja z tego powodu piszę howtos
(http://xslack.zsh.bash.org.pl/?page=howtos,
http://www.debianusers.pl/article.php?aid=66). W moim przypadku jest to
bardzo dobra motywacja.

> tylko dla innych. Ale nie mogę wiedzieć, czego
> innym osobom w nim brakuje.
>  Swój kurs pisałem w taki sposób, aby omówić wszystko, do czego ja sam
> miałem wątpliwości, ucząc się asma. Mówiąc mi, czego Twoim zdaniem
> brakuje, pomożesz kolejnym osobom, które w przyszłości będą czytały
> mój kurs.

Zdaję sobie z tego spawę.
Z uwag dodatkowych:
- brakuje mi opisu, jak łączyć C i assemblera, gdy to assembler jest
  głównym językiem (sytuacja odwrotna do wstawek). To już zahacza
  o entry points (main i _start), tablicę symboli w kompilatorze
  (u mnie: GCC), format ELF, biblioteki statyczne i współdzielone
  i o loader ELF-ów
- przydałaby się gdzieś informacja, jak upychane są argumenty syscalli,
  gdy jest ich więcej niż trzy
- funkcje w języku C mogą zwracać wartości o większym rozmiarze niż 32
  bity; taka informacja może być pouczająca, gdy się pokaże, co się
  dzieje z danymi o rozmiarze QWORD (EAX + EDX, nie pamiętam w jakiej
  kolejności) i z dłuższymi
- język C zakłada[*], że niektóre rejestry pozostaną niezmienione po
  wywołaniu funkcji, a niektóre mogą się zmieniac swobodnie;
  wspomnienie, które rejestry są które może być przydatne
Można też pokusić się o programowanie sieciowe, ale linuksowy syscall
jakoś niespecjalnie mi odpowiada, a użycie funkcji z glibc koncepcyjnie
już nie różni się od normalnego programu w C.

[*] To oczywiście uproszczenie, bo chodzi o konwencję wołania funkcji
używaną w plikach ELF na architekturze x86.

>> Jak widać, to nie plus dla strony, że jest najlepsza,
>> tylko minus dla wszystkich pozostałych, że brak współczesnych podstaw.
>> 
>> Wiem, że to kubeł zimnej wody, ale już mi obmierzły bezkrytyczne ochy
>> i achy nad stroną Bogdana.
>
>  Lepszy taki kubeł konkretów niż po prostu "Bogdan, twoja strona jest
> do d***". Cieszę się, że zwracasz uwagę i podajesz *konkretne* tematy.

Cieszę się, że doceniasz kubełek konkretów mimo niezjadliwej formy.
Wiem, jak się czyta takie uwagi, dlatego cieszę się szczególnie mocno :D

> Nie mogę obiecać, że wkrótce się tym zajmę, ale na pewno wezmę Twoje
> słowa pod uwagę. Już sobie dopisałem te 3 rzeczy do "pliku rzeczy do
> zrobienia".

:)

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#379
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 16:22
17 lines
2078 bytes
On 10.07.2006, Stachu 'Dozzie' K. <dozzie@dynamit.im.pwr.wroc.pl.nospam> wrote:
[...]
>> Strona Bogdana jest z dostępnych w sieci opracowań polskojęzycznych
>> najbardziej kompletna w pewnym oczywiście zakresie zakresie.
>
> I to mnie właśnie martwi. Strona jest najbardziej kompletna w okolicy,
> a mimo to zawiera zaledwie niewielką i najłatwiej dostępną część wiedzy
> okołoassemblerowej. Aż strach pomyśleć, jak mało informacji zawierają
> strony mniej kompletne.

Chociaż z drugiej strony, Bogdan (jak widać
w <e8tjfq$6as$1@nemesis.news.tpi.pl>) chce rozwijać stronę, więc moje
uwagi niedługo się zdezaktualizują. To bardzo cieszy.

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#384
Author: Bogdan (bogdro)
Date: Mon, 10 Jul 2006 17:42
98 lines
5682 bytes
Stachu 'Dozzie' K. napisał(a):
> On 10.07.2006, Bogdan (bogdro) <bogdan@bogdan.pl> wrote:
>> Stachu 'Dozzie' K. napisał(a):
>>> A szkoda, bo brakuje mi choćby wyjaśnień, jak jest ułożona pamięć pod
>>> takim Linuksem podczas pracy programu,
>>  Oj, od dość dawna jest (a przynajmniej schemat):
>> http://rudy.mif.pg.gda.pl/~bogdro/linux/linux02.html, nagłówek:
>> "Organizacja pamięci w Linuksie".
> 
> Brakuje mi opisu, gdzie są rozmieszczone zmienne lokalne, zmienne
> statyczne i globalne (C), jak się wyrównuje rejestr ESP przy wchodzeniu
> do funkcji (skompilowany kod C) i co to jest wskaźnik ramki. Pewnie coś
> jeszcze, ale na chwilę obecną nie pamiętam.

 Rozsądne zagadnienia. Raczej znajdą się w kursie, w różnych miejscach
części 2.

> [..]
>>  Co więcej chciałbyś zobaczyć? (pytanie na serio, nie ironiczne!)
> 
> Tak więc odpowiadam akapit wyżej.
> 
> A nawet gdyby pytanie było ironiczne, otrzymałbyś taką samą odpowiedź ;)

 To dobrze :) Wolałem się zabezpieczyć przed odebraniem pytania jako
złośliwe.

> Zdaję sobie z tego spawę.
> Z uwag dodatkowych:
> - brakuje mi opisu, jak łączyć C i assemblera, gdy to assembler jest
>   głównym językiem (sytuacja odwrotna do wstawek). To już zahacza
>   o entry points (main i _start), tablicę symboli w kompilatorze
>   (u mnie: GCC), format ELF, biblioteki statyczne i współdzielone
>   i o loader ELF-ów

 Łączenie C z asmem jest takie samo, jak asma z C:
	nasm -f elf czesc1.asm		# zawiera main()
	gcc -o calosc czesc1.o czesc2.c czesc3.c

 Ale jakiś drobny przykładzik dorobię.

 W kursie przeznaczonym dla początkujących wolałbym nie wnikać w
szczegóły formatu ELF i inne skomplikowane sprawy.
 Za to oba rodzaje bibliotek są omówione w jednym z mini-kursów.

> - przydałaby się gdzieś informacja, jak upychane są argumenty syscalli,
>   gdy jest ich więcej niż trzy

 Istotnie, w samym kursie brak tego. Ale w opisie przerwania int 80h
są podawane odpowiednie rejestry (więc znajomość kolejności jest już
niepotrzebna?), a przy najbardziej rozbudowanych syscallach widać
wszystko wyraźnie (np. sys_mmap() - 6 rejestrów, więcej nie ma żadna).
 Chyba też to dorobię.

> - funkcje w języku C mogą zwracać wartości o większym rozmiarze niż 32
>   bity; taka informacja może być pouczająca, gdy się pokaże, co się
>   dzieje z danymi o rozmiarze QWORD (EAX + EDX, nie pamiętam w jakiej
>   kolejności) i z dłuższymi

 Dorobię, nie ma tego za dużo. Tylko muszę się przyjrzeć, jak są
zwracane struktury. Strzelam, że przez wskaźnik, bo niby jak inaczej?

> - język C zakłada[*], że niektóre rejestry pozostaną niezmienione po
>   wywołaniu funkcji, a niektóre mogą się zmieniac swobodnie;
>   wspomnienie, które rejestry są które może być przydatne

 Zrobię, ale na odwrót. Nie będę mówił, że język C wymaga zachowania
tylko jakichś tam rejestrów, bo zaraz mi "uczniowie" zaczną pisać
procedury nie zachowujące modyfikowanych rejestrów (z przyzwyczajenia
nawet tam, gdzie nie używają C).
 W kursie powiem za to, które rejestry mogą zostać zmienione przez
funkcje biblioteki C i że "należy się wystrzegać polegania na ich
zawartości". Treść dokładnie ta sama, ale o wiele lepiej dydaktycznie
to brzmi :)

> Można też pokusić się o programowanie sieciowe, ale linuksowy syscall
> jakoś niespecjalnie mi odpowiada, a użycie funkcji z glibc koncepcyjnie
> już nie różni się od normalnego programu w C.

 Do linuksowego syscalla (sys_socketcall) to nawet nigdzie nie mogłem
wyszukać dokumentacji, a serwer i klient w asm w oparciu o glibc już
są dawno gotowe w jednym z mini-kursów.

> [*] To oczywiście uproszczenie, bo chodzi o konwencję wołania funkcji
> używaną w plikach ELF na architekturze x86.

 x86 - tak, ale nie tylko ELF. Tak samo jest w Windows, w DOSowym C
pewnie też.

 No i kolejne 4 rzeczy "do zrobienia". Na razie przyhamujmy. Zrób
sobie listę, a jak uporam się z pracami bieżącymi, to znów sypniesz
tematami :)

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Re: jak zaczac ?
#385
Author: Michał
Date: Mon, 10 Jul 2006 17:56
10 lines
1657 bytes
Bogdan (bogdro) wrote:
>  Dorobię, nie ma tego za dużo. Tylko muszę się przyjrzeć, jak są
> zwracane struktury. Strzelam, że przez wskaźnik, bo niby jak inaczej?

Chodzi o zwracanie przez wartość? Niejawnie jako pierwszy parametr 
funkcji jest przekazywany adres na strukturę. Czyli dla struct s fun(), 
jest coś w rodzaju void fun(struct s*).

-- 
Pozdrawiam
Re: jak zaczac ?
#386
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 17:59
84 lines
4993 bytes
On 10.07.2006, Bogdan (bogdro) <bogdan@bogdan.pl> wrote:
>> Zdaję sobie z tego spawę.
>> Z uwag dodatkowych:
>> - brakuje mi opisu, jak łączyć C i assemblera, gdy to assembler jest
>>   głównym językiem (sytuacja odwrotna do wstawek). To już zahacza
>>   o entry points (main i _start), tablicę symboli w kompilatorze
>>   (u mnie: GCC), format ELF, biblioteki statyczne i współdzielone
>>   i o loader ELF-ów
>
>  Łączenie C z asmem jest takie samo, jak asma z C:
> 	nasm -f elf czesc1.asm		# zawiera main()
> 	gcc -o calosc czesc1.o czesc2.c czesc3.c

O właśnie. Dlaczego main(), a nie _start, jak do tej pory? Czytelnik
może się zastanawiać, skąd się brało _start i gdzie się podziało przy
linkowaniu z użyciem gcc.

>  W kursie przeznaczonym dla początkujących wolałbym nie wnikać w
> szczegóły formatu ELF i inne skomplikowane sprawy.
>  Za to oba rodzaje bibliotek są omówione w jednym z mini-kursów.

Widać ominąłem minikursy. Ja tam się przegryzałem przez specyfikację :)

>> - funkcje w języku C mogą zwracać wartości o większym rozmiarze niż 32
>>   bity; taka informacja może być pouczająca, gdy się pokaże, co się
>>   dzieje z danymi o rozmiarze QWORD (EAX + EDX, nie pamiętam w jakiej
>>   kolejności) i z dłuższymi
>
>  Dorobię, nie ma tego za dużo. Tylko muszę się przyjrzeć, jak są
> zwracane struktury. Strzelam, że przez wskaźnik, bo niby jak inaczej?

Z tego co pamiętam, to przez stos. Kiedyś wykonałem prosty teścik:
napisałem funkcję zwracającą strukturę z paru intów i zignorowałem jej
wynik ((void)funkcja();). Program tego nie wytrzymał i segfaultnął.
O ile w przypadku pojedynczej wartości zwracanej do 64 bitów funkcja
wołająca może radośnie wynik zignorować, bo ten mieści się w rejestrach,
o tyle zwracanie czegoś większego wymaga już współpracy funkcji
wołającej.

>> - język C zakłada[*], że niektóre rejestry pozostaną niezmienione po
>>   wywołaniu funkcji, a niektóre mogą się zmieniac swobodnie;
>>   wspomnienie, które rejestry są które może być przydatne
>
>  Zrobię, ale na odwrót. Nie będę mówił, że język C wymaga zachowania
> tylko jakichś tam rejestrów, bo zaraz mi "uczniowie" zaczną pisać
> procedury nie zachowujące modyfikowanych rejestrów (z przyzwyczajenia
> nawet tam, gdzie nie używają C).
>  W kursie powiem za to, które rejestry mogą zostać zmienione przez
> funkcje biblioteki C i że "należy się wystrzegać polegania na ich
> zawartości". Treść dokładnie ta sama, ale o wiele lepiej dydaktycznie
> to brzmi :)

:)

>> Można też pokusić się o programowanie sieciowe, ale linuksowy syscall
>> jakoś niespecjalnie mi odpowiada, a użycie funkcji z glibc koncepcyjnie
>> już nie różni się od normalnego programu w C.
>
>  Do linuksowego syscalla (sys_socketcall) to nawet nigdzie nie mogłem
> wyszukać dokumentacji, a serwer i klient w asm w oparciu o glibc już
> są dawno gotowe w jednym z mini-kursów.

No to faktycznie przeoczyłem minikursy.

>> [*] To oczywiście uproszczenie, bo chodzi o konwencję wołania funkcji
>> używaną w plikach ELF na architekturze x86.
>
>  x86 - tak, ale nie tylko ELF. Tak samo jest w Windows, w DOSowym C
> pewnie też.

Spodziewałem się czegoś takiego. Ja używam tylko Linuksa (choć FreeBSD
powinno mieć taką samą konwencję, bo to chyba specyfikacja ELF wymaga
takich a nie innych zachowań), więc wolałem się trzymać znanych mi
faktów.

>  No i kolejne 4 rzeczy "do zrobienia". Na razie przyhamujmy. Zrób
> sobie listę, a jak uporam się z pracami bieżącymi, to znów sypniesz
> tematami :)

:]

-- 
Szukasz dobrego shella? mail | http://marcinhlybin.com/shell/
Stanislaw Klekot
Re: jak zaczac ?
#387
Author: Bogdan (bogdro)
Date: Tue, 11 Jul 2006 15:05
21 lines
2375 bytes
Stachu 'Dozzie' K. napisał(a):
>>> [*] To oczywiście uproszczenie, bo chodzi o konwencję wołania funkcji
>>> używaną w plikach ELF na architekturze x86.
>>  x86 - tak, ale nie tylko ELF. Tak samo jest w Windows, w DOSowym C
>> pewnie też.
> 
> Spodziewałem się czegoś takiego. Ja używam tylko Linuksa (choć FreeBSD
> powinno mieć taką samą konwencję, bo to chyba specyfikacja ELF wymaga
> takich a nie innych zachowań), więc wolałem się trzymać znanych mi
> faktów.

 To, o czym mówimy, nazywa się chyba ABI (Application Binary
Interface). Opisuje to, gdzie są przekazywane parametry (?), gdzie
zwracane i chyba też właśnie wymogi co do rejestrów. Głowy nie dam,
ale takie coś mi się obiło o uszy, nie zagnieżdżałem się za bardzo.

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Re: jak zaczac ?
#388
Author: Bogdan (bogdro)
Date: Sat, 29 Jul 2006 13:01
61 lines
4193 bytes
Stachu 'Dozzie' K. napisał(a):
> Brakuje mi opisu, gdzie są rozmieszczone zmienne lokalne, zmienne
> statyczne i globalne (C), jak się wyrównuje rejestr ESP przy wchodzeniu
> do funkcji (skompilowany kod C) i co to jest wskaźnik ramki. Pewnie coś
> jeszcze, ale na chwilę obecną nie pamiętam.
[...]

>>> jak przydzielać pamięć dla
>>> zmiennych lokalnych,
>>  Nie ma osobnego rozdziału o procedurach/podprogramach, więc tego też
>> nie ma. W zasadzie takie "przydzielanie" sprowadza się do
>>
>> 	sub esp, liczba_bajtow
>>
>> i operowaniu na [esp+xx] lub [ebp-xx]. O tym na pewno wspomnę.
> 
> Warto, bo przez naprawdę spory kawałek czasu zastanawiałem się, gdzie
> zapisywać lokalne inty. Dopiero dezasemblacja programiku pisanego
> w C wyjaśniła, jak to robić.
[...]

> Z uwag dodatkowych:
> - brakuje mi opisu, jak łączyć C i assemblera, gdy to assembler jest
>   głównym językiem (sytuacja odwrotna do wstawek). To już zahacza
>   o entry points (main i _start), tablicę symboli w kompilatorze
>   (u mnie: GCC), format ELF, biblioteki statyczne i współdzielone
>   i o loader ELF-ów
> - przydałaby się gdzieś informacja, jak upychane są argumenty syscalli,
>   gdy jest ich więcej niż trzy
> - funkcje w języku C mogą zwracać wartości o większym rozmiarze niż 32
>   bity; taka informacja może być pouczająca, gdy się pokaże, co się
>   dzieje z danymi o rozmiarze QWORD (EAX + EDX, nie pamiętam w jakiej
>   kolejności) i z dłuższymi
> - język C zakłada[*], że niektóre rejestry pozostaną niezmienione po
>   wywołaniu funkcji, a niektóre mogą się zmieniac swobodnie;
>   wspomnienie, które rejestry są które może być przydatne

 Wspomniane rzeczy właśnie popełniłem na stronę :)

 Krótka lista tu: http://rudy.mif.pg.gda.pl/~bogdro/atom.html#n20

P.S. Wiem, że miałem się przestać chwalić tym, co robię na WWW, ale tu
była wyraźna prośba na oczach wszystkich, więc odpowiadam też
wszystkim, żeby sobie ktoś nie pomyślał, że mój plik rzeczy do
zrobienia to /dev/null ;)

P.P.S. Mój kanał informacyjny ("dynamiczna zakładka") jest od niedawna
dostępny w postaci RSS 2.0 pod adresami:
http://rudy.mif.pg.gda.pl/~bogdro/asm-rss20.xml
http://rudy.mif.pg.gda.pl/~bogdro/asm.rss
lub ze strony głównej (tylko XML). Adresy wskazują na ten sam plik,
ale czytniki mogą czasem marudzić o rozszerzenie.
 Wiem, że miałem tego RSS nie robić, ale skoro napisałem sobie skrypt
w Perlu, który mój kanał Atom przerabia na RSS i wszystko się robi
automatycznie, to czemu nie? Potencjalnie szersza widownia. :)

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Re: jak zaczac ?
#389
Author: Rumba Dancer
Date: Sat, 29 Jul 2006 15:24
9 lines
1538 bytes
Bogdan (bogdro) wrote:
 
> P.S. Wiem, że miałem się przestać chwalić tym, co robię na WWW, ale tu
> była wyraźna prośba na oczach wszystkich, więc odpowiadam też
> wszystkim, żeby sobie ktoś nie pomyślał, że mój plik rzeczy do
> zrobienia to /dev/null ;)

Wlasnie nie... jak komus sie chce pisac i umie to robic to powinien sie
chwalic zawsze i wszedzie
Re: jak zaczac ?
#390
Author: Matuzalem
Date: Sat, 29 Jul 2006 16:37
13 lines
2004 bytes
Rumba Dancer napisał(a):
> Bogdan (bogdro) wrote:
>
> > P.S. Wiem, że miałem się przestać chwalić tym, co robię na WWW, ale tu
> > była wyraźna prośba na oczach wszystkich, więc odpowiadam też
> > wszystkim, żeby sobie ktoś nie pomyślał, że mój plik rzeczy do
> > zrobienia to /dev/null ;)
>
> Wlasnie nie... jak komus sie chce pisac i umie to robic to powinien sie
> chwalic zawsze i wszedzie

Zgadza się ;]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads