Thread View: pl.comp.lang.asm
29 messages
29 total messages
Started by Ballerg
Thu, 06 Jul 2006 07:54
jak zaczac ?
Author: Ballerg
Date: Thu, 06 Jul 2006 07:54
Date: Thu, 06 Jul 2006 07:54
8 lines
1021 bytes
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 ?
Author: Matuzalem
Date: Thu, 06 Jul 2006 13:52
Date: Thu, 06 Jul 2006 13:52
39 lines
2300 bytes
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 ?
Author: ballerg
Date: Thu, 06 Jul 2006 17:07
Date: Thu, 06 Jul 2006 17:07
43 lines
2489 bytes
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 ?
Author: Remek
Date: Fri, 07 Jul 2006 13:06
Date: Fri, 07 Jul 2006 13:06
15 lines
1370 bytes
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 ?
Author: Ballerg
Date: Sat, 08 Jul 2006 07:56
Date: Sat, 08 Jul 2006 07:56
21 lines
1554 bytes
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 ?
Author: not2smart
Date: Sat, 08 Jul 2006 08:59
Date: Sat, 08 Jul 2006 08:59
5 lines
1504 bytes
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 ?
Author: Remek
Date: Sat, 08 Jul 2006 12:39
Date: Sat, 08 Jul 2006 12:39
10 lines
1294 bytes
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 ?
Author: Bogdan (bogdro)
Date: Sun, 09 Jul 2006 17:06
Date: Sun, 09 Jul 2006 17:06
17 lines
1815 bytes
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 ?
Author: Matuzalem
Date: Sun, 09 Jul 2006 17:31
Date: Sun, 09 Jul 2006 17:31
28 lines
2530 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 18:07
Date: Sun, 09 Jul 2006 18:07
39 lines
2838 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 18:11
Date: Sun, 09 Jul 2006 18:11
39 lines
2875 bytes
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 ?
Author: Matuzalem
Date: Sun, 09 Jul 2006 19:49
Date: Sun, 09 Jul 2006 19:49
23 lines
2366 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 20:17
Date: Sun, 09 Jul 2006 20:17
39 lines
2988 bytes
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 ?
Author: Matuzalem
Date: Sun, 09 Jul 2006 21:35
Date: Sun, 09 Jul 2006 21:35
67 lines
4830 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 22:19
Date: Sun, 09 Jul 2006 22:19
125 lines
6785 bytes
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 ?
Author: Michał
Date: Sun, 09 Jul 2006 23:19
Date: Sun, 09 Jul 2006 23:19
27 lines
2701 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Jul 2006 23:35
Date: Sun, 09 Jul 2006 23:35
47 lines
3535 bytes
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 ?
Author: Remek
Date: Mon, 10 Jul 2006 12:32
Date: Mon, 10 Jul 2006 12:32
23 lines
2354 bytes
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 ?
Author: Bogdan (bogdro)
Date: Mon, 10 Jul 2006 13:05
Date: Mon, 10 Jul 2006 13:05
79 lines
4574 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 15:50
Date: Mon, 10 Jul 2006 15:50
41 lines
3124 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 16:20
Date: Mon, 10 Jul 2006 16:20
105 lines
5500 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 16:22
Date: Mon, 10 Jul 2006 16:22
17 lines
2078 bytes
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 ?
Author: Bogdan (bogdro)
Date: Mon, 10 Jul 2006 17:42
Date: Mon, 10 Jul 2006 17:42
98 lines
5682 bytes
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 ?
Author: Michał
Date: Mon, 10 Jul 2006 17:56
Date: Mon, 10 Jul 2006 17:56
10 lines
1657 bytes
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 ?
Author: Stachu 'Dozzie' K.
Date: Mon, 10 Jul 2006 17:59
Date: Mon, 10 Jul 2006 17:59
84 lines
4993 bytes
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 ?
Author: Bogdan (bogdro)
Date: Tue, 11 Jul 2006 15:05
Date: Tue, 11 Jul 2006 15:05
21 lines
2375 bytes
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 ?
Author: Bogdan (bogdro)
Date: Sat, 29 Jul 2006 13:01
Date: Sat, 29 Jul 2006 13:01
61 lines
4193 bytes
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 ?
Author: Rumba Dancer
Date: Sat, 29 Jul 2006 15:24
Date: Sat, 29 Jul 2006 15:24
9 lines
1538 bytes
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 ?
Author: Matuzalem
Date: Sat, 29 Jul 2006 16:37
Date: Sat, 29 Jul 2006 16:37
13 lines
2004 bytes
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