[00:04] <Drathir> mateusz: dzieki...
[00:04] <Drathir> wlasnie sie kompiluje...
[11:51] <AndroUser> Ls
[11:52] <Quintasan> \o
[12:11] <buharin> hej jest tu ktos
[12:11] <buharin> potrzebuje tu kogos
[12:23] <garnus> co tam
[12:31] <buharin> garnus, bo mi smutno : (
[12:41] <garnus> poglaskac?
[19:50] <grek> czesc
[19:50] <grek> uzywa ktos google drive lens w unity ? 
[19:50] <grek> da sie tego uzywac?  nie moge zautoryzowac konta google- w ustawienia systemowe - konta sieciowe 
[19:51] <grek> daje google wpisuje dane i samo wraca na liste kont zanim zdąże autoryzowac
[20:15] <qermit> siema wszystcy?
[20:15] <bjfs> ..echo..
[20:23] <TheNumb> @echo off
[20:24] <gjm> tango down
[22:03] <buharin> ktos wie gdzie mozna przeczytac informacje nt. tego jak dziala
[22:04] <buharin> uid euid suid seuid
[22:19] <jacekowski> na google
[22:20] <jacekowski> ale to proste, suid i setuid to to samo
[22:20] <buharin> jacekowski, wlasnie cos mi slabo idzie to googlowanie
[22:21] <jacekowski> uid to uid obecnego usera
[22:21] <buharin> to ja wiem
[22:21] <jacekowski> effective uid to uid usera z ktorego teraz aplikacja ma uprawnienia
[22:21] <buharin> ale chodzi mi o to jak to dziala
[22:21] <buharin> w grupie
[22:21] <Dreadlish> suid ustawia euid
[22:21] <Dreadlish> uid zostaje niezmieniony
[22:22] <buharin> z poziomu aplikacji mozemy sterowac suidem?
[22:22] <jacekowski> nie
[22:22] <Dreadlish> nope
[22:22] <Dreadlish> można sobie jedynie zdropować uprawnienia
[22:23] <buharin> ok ale zalozmy sytuacje
[22:23] <buharin> moj uid to 1000
[22:24] <buharin> i chce uruchomic program ktory bedzie dzialal na moich plikach ale trakcie jak cos sie przelaczy sam na admina
[22:24] <buharin> to jak sie bedzie zmienial euid i suid
[22:24] <buharin> admin to 0
[22:25] <buharin> wiec rozumiem tak ze uid oznacza uzytkownika ktory uruchomil plik
[22:26] <jacekowski> sam sie nie moze przelaczyc
[22:26] <jacekowski> jak go odpalisz jako ograniczony uzytkownik to juz mu tak zostaje
[22:26] <jacekowski> jedynie co moze zrobic to wlaczyc sobie seccomp i ograniczyc jeszcze bardziej
[22:26] <buharin> a metody setuid seteuid
[22:27] <jacekowski> to z 0 w dol
[22:27] <buharin> http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/processes.html
[22:27] <buharin> a jest ponizej 0?
[22:27] <buharin> :D
[22:28] <gjm> over9000
[22:28] <jacekowski> tak, jak odejmiesz to int sie przekreci i wroci do 65k
[22:30] <jacekowski> ale poza tym, setuid jest po to zeby jakis proces typu apache sie odpalil z roota, przybindowal do portu ponizej 1024 i zrobil wszystko co musi zrobic z roota, i wtedy sobie robi setuid na jakies ilestam (www-data badz podobne) 
[22:30] <jacekowski> i traci uprawnienia do ktorych juz wrocic nie moze
[22:31] <buharin> a jest cos takiego jak ruid?
[22:31] <jacekowski> tak
[22:32] <jacekowski> to jest wlasnie twoj uid 
[22:32] <buharin> ok
[22:32] <jacekowski> windows ma lepszy system kontroli uprawnien 
[22:32] <buharin> wiec uruchamiamy process ktory ma
[22:33] <buharin> r 1000 e nic s nic
[22:33] <jacekowski> nie da sie tak
[22:33] <buharin> to czy plik moze byc otwarty jest sprawdzane na podstawie euid
[22:33] <jacekowski> jak r jest 1000 to e tez jest 1000 
[22:34] <buharin> jacekowski, nam cos mowili ze jakos da sie tak zrobic ze proces sam sie przelacza pomiedzy uidami a potem jak sie cos zmienic chyba suidie to juz nie moze i nie moge teraz tego zalapac
[22:36] <jacekowski> moze sie przelaczyc z 0 na nizsze uprawnienia
[22:36] <jacekowski> i tye
[22:36] <buharin> bo jak dobrze rozumiem to czy proces moze otworzyc jakis plik jest sprawdzane na podstawie uprawnien
[22:36] <buharin> euid
[22:37] <jacekowski> jedyny wyjatek od tego to jesli jako user 5 odpalasz program ktory ma ustawionego chmoda +s na usera 6, i wtedy moze sie program przelaczac pomiedzy 5 i 6 jak chce
[22:38] <jacekowski> w przypadku gdy program odpalony zostaje z roota (0) to zmiana uprawnien jest jednorazowa i ostateczne
[22:38] <buharin> sticky bit
[22:39] <buharin> mhmm
[22:39] <jacekowski> nie sticky
[22:39] <jacekowski> setuid bit
[22:39] <buharin> mam r 0 e 0 s 0 zmiam na r 0 e 1000 s 0
[22:40] <buharin> wykonuje cos na pliku i spowrotem wracam w tryb admina
[22:40] <buharin> :P
[22:40] <jacekowski> nie wracasz
[22:40] <jacekowski> zmiana uprawnien z roota na nizsze jest jednorazowa i ostateczna
[22:40] <buharin> jacekowski, ale wytlumacz mi po co jest suid
[22:41] <buharin> bo wedlug mnie on zachowuje stary uid
[22:41] <buharin> by do niego wrocic
[22:41] <jacekowski> tylko w jednym przypadku
[22:41] <buharin> jacekowski, czyli suid dziala tylko w 1 przypadku
[22:41] <buharin> ktory opisales
[22:41] <jacekowski> gdy plik jest ustawiony jako setuid jako inny user niz ty jestes ale tylko jesli oboje jestescie userami o ograniczonych uprawnieniach
[22:42] <buharin> czyli uruchamimay proces z r 1000 e 1000 s 1200
[22:42] <buharin> robimy r 1000 e 1200 s 1200
[22:42] <buharin> i wracamy do poczatku
[22:43] <jacekowski> nie do konca
[22:43] <jacekowski> zeby takie cos zrobic to plik musi miec najpierw ustawionego ownera na 1200:xxx i ustawiony setuid bit
[22:43] <jacekowski> i wtedy jak go odpalisz to odpalony zostanie z r 1000 e 1200 s 1000
[22:44] <jacekowski> i bedziesz mogl sie przelaczyc na r 1000 e 1000 s 1200
[22:44] <jacekowski> i spowrotem
[22:46] <buharin> a jesli z programu ustawie suid pozniej na 1000
[22:46] <buharin> to juz sie nie przelaczy?
[22:48] <jacekowski> tylko 0 jest specjalne
[22:48] <jacekowski> reszta jest ograniczona
[22:48] <buharin> jacekowski, na 0 moge sie w kazdej chwili przelaczyc?
[22:48] <buharin> tylko musze podac haslo
[22:49] <jacekowski> nie
[22:49] <jacekowski> na 0 mozna sie przelaczyc tylko jesli odpalasz program ktorego wlascicielem jest 0 i ma ustawiony ten program setuid
[22:49] <jacekowski> i to sie samo odpali wtedy jako 0
[22:50] <jacekowski> bez twojej ingerencji
[22:50] <jacekowski> nie ma mozliwosci podania hasla w ogole
[22:50] <buharin> jacekowski, czyli jak robie aktualizacje to wyszukiwanie jest na prawach uzytkownikach a potem ubuntu prosi haslo to odpala osobny proces z haslem
[22:50] <jacekowski> tak
[22:51] <buharin> jacekowski, setguid dziala tak samo ale dla grupy
[22:51] <jacekowski> to robi wtedy gsudo (chyba gsudo, albo jakis inny graficzny wariant) 
[22:51] <jacekowski> -rwsr-xr-x 2 root root 71288 Jun  1  2012 /usr/bin/sudo
[22:51] <jacekowski> i jak widac tutaj masz +s
[22:52] <jacekowski> czyli sudo zostanie odpalone jako root
[22:52] <jacekowski> i teraz zadaniem sudo jest zapytac sie ciebie o haslo i jesli podasz zle, zakonczyc sie 
[22:52] <qermit> o/
[22:52] <jacekowski> ale teoretycznie bug w sudo pozwalalby na latwa eskalacje uprawnien
[22:53] <buharin> jacekowski, czytalem ze go usuneli juz
[22:53] <jacekowski> mowie ze teoretycznie
[22:53] <jacekowski> zawsze moze byc wiecej
[22:53] <qermit> jacekowski: bug w pam
[22:53] <jacekowski> w sudo tez
[22:53] <jacekowski> pam moze powiedziec ze haslo nie ok a sudo moze zignorowac
[22:53] <qermit> no też, ale sudo samo w sobie jest proste
[22:54] <jacekowski> to wszystko jest proste
[22:54] <buharin> czyli kazdy proces ma ruid rguid euid eguid suid sguid
[22:54] <qermit> chgwuid
[22:54] <jacekowski> tylko ze masz milion prostych rzeczy warstwa na warstwie 
[22:54] <jacekowski> i nagle nie jest takie proste
[22:54] <jacekowski> a pod linuxem lubia zmieniac API od ktorego inne aplikacje zaleza
[22:54] <jacekowski> i psuc rozne rzeczy zwiazane z losowoscia i bezpieczenstwem
[22:55] <qermit> dlatego mamy testerów w gentoo :E
[22:55] <buharin> jacekowski, a patrz na to jak to mozliwe
[22:55] <buharin> ze passwd
[22:55] <buharin> moge zmienic haslo nie
[22:55] <buharin> ale pliki /etcpasswd
[22:55] <buharin> i /etcshadow
[22:55] <buharin> -rw-r--r-- 1 root root 2042 maj  4 14:14 /etc/passwd
[22:55] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:55] <buharin> -rw-r----- 1 root shadow 1228 maj  4 14:14 /etc/shadow
[22:55] <jacekowski> bo passwd ma suid bit ustawiony
[22:55] <buharin> a ja nie mam
[22:55] <buharin> nie mam sticky bitu
[22:55] <buharin> :O!
[22:55] <jacekowski> masz
[22:55] <jacekowski> to nie sticky bit
[22:56] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:56] <jacekowski> ten plik
[22:56] <jacekowski> rwS
[22:56] <buharin> a no
[22:56] <buharin> nie ten plik sprawdzilem :D
[22:56] <buharin> a po co jest /etc/passwd?
[22:56] <jacekowski> to jest plik tekstowy
[22:57] <jacekowski> z zapisanymi uzytkownikami
[22:57] <jacekowski> kiedys dawno temu byly tam rowniez hasla
[22:57] <buharin> ale passwd na nim nie dziala bo nie moze
[22:57] <jacekowski> dziala
[22:57] <jacekowski> kurwa
[22:57] <jacekowski> passwd ma ustawiony suid
[22:57] <buharin> ten plik nie ma suida
[22:57] <jacekowski> MA
[22:57] <qermit> jacekowski: ja pacze
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <jacekowski> -rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd
[22:57] <buharin> qermit, daj mi go spowrotem :D
[22:58] <jacekowski> qermit: musialem powtorzyc bo nie rozumial
[22:58] <buharin> rw-r--r-- 1 root root 2042 maj  4 14:14 /etc/passwd
[22:58] <buharin> chodzilo mi o ten plik
[22:58] <jacekowski> NIE TEN PLIK
[22:58] <qermit> a ja myślałem że myszka ci sie zacięła
[22:58] <jacekowski> TO JEST PLIK TEKSTOWY
[22:58] <qermit> buharin: gupi jesteś
[22:58] <buharin> jacekn_, ja wiem
[22:58] <buharin> pytam czemu ten drugi nie ma
[22:58] <jacekowski> bo ten ma to w dupie
[22:58] <buharin> bo napisales ze kiedys bylo tam
[22:58] <qermit> buharin: bo nie musi
[22:58] <jacekowski> suid jest tylko dla programow
[22:58] <buharin> qermit, ale jest aktualizowany na biezaco chyba
[22:58] <jacekowski> PROGRAMOW
[22:58] <buharin> dla plikow wykonywalnych
[22:59] <qermit> kto jest aktualizowany?
[22:59] <jacekowski> czyli odplasz /usr/bin/passwd ktory ma wlasciciela 0 i suid bit ustawiony
[22:59] <buharin> /etc/passwd
[22:59] <jacekowski> to zostanie odpalony jako root
[22:59] <buharin> a kumam
[22:59] <qermit> buharin: no jest ale modyfikowany jest przez program ktory ma prawa roota
[22:59] <jacekowski> i jako root bedzie mial pelny dostep do /etc/passwd i /etc/shadow
[22:59] <qermit> dobra ja ide spać
[22:59] <buharin> ale ze mnie debil
[22:59] <jacekowski> buharin: wiem
[22:59] <qermit> buharin: mówiłem
[23:00] <buharin> jacekowski, dobra ide dalej czytac :D dzieki poki co
[23:00] <jacekowski> ale system uprawnien na win jest o wiele lepszy
[23:00] <jacekowski> zwlaszcza odkad jeszcze UAC dodali
[23:00] <buharin> pobralem taka ksiazke Linux Programming Interface
[23:00] <buharin> ale tam cos slabo to napisane jest
[23:01] <buharin> jacekowski, ale linux jest bezpieczniejszy
[23:02] <jacekowski> nie jest wlasnie
[23:02] <buharin> : (
[23:02] <jacekowski> czasy kiedy linux byl bezpieczniejszy minely z windowsem 98
[23:03] <buharin> jacekowski, to moze opisz co bys chcial zmienic i Linus to zmieni
[23:03] <jacekowski> xp gdyby nie domyslna polityka bezpieczenstwa (czyli uzytkownik domyslnie jest administratorem) bylby bezpiecznym systemem
[23:03] <jacekowski> w viscie juz to zmienili
[23:03] <jacekowski> i nawet administrator nie ma pelnych uprawnien 
[23:03] <jacekowski> musi przejsc przez UAC
[23:04] <jacekowski> i dopiero wtedy moze miec dostep do najwazniejszych czesci systemu
[23:04] <jacekowski> ale dopoki UACa nie przejdzie ma uprawnienia takie same jak normalny ograniczony user
[23:04] <jacekowski> i masz mozliwosci wlamania sie i infekcji calego systemu takie same (chyba ze user idiota kliknie na "Tak" guzik)
[23:05] <cetra> jacekowski: jak tam win 8
[23:07] <jacekowski> a dziala
[23:07] <jacekowski> dosyc ladnie i szybko
[23:07] <cetra> lepiej czy gorzej niż 7
[23:08] <jacekowski> lepiej
[23:09] <cetra> tak słyszałem, nie miałem jeszcze okazji sprawdzić
[23:09] <buharin> jacekowski, mi tez sie podoba win8
[23:10] <buharin> jacekowski, ale przyznam ze jestem fanem linux'a i sie przyzwyczailem
[23:10] <cetra> a ja kupiłem maca i nei chce mi się nawet w bootcamp bawić
[23:12] <buharin> jacekowski, mam napisane ze jak jest sticky bit to tylko uzytkownik moze kasowac modyfikowac atrybuty pliku
[23:13] <buharin> albo root
[23:23] <jacekowski> ja pierdole
[23:23] <jacekowski> NIE STICKY BIT
[23:23] <jacekowski> STICKY BIT TO COS INNEGO
[23:23] <buharin> jacekowski, tak ale teraz czytam o sticky bicie
[23:23] <jacekowski> set user or group ID on execution (s), restricted deletion flag or sticky bit (t).
[23:23] <buharin> -rw------T
[23:23] <jacekowski> s to setuid, t to sticky bit
[23:24] <buharin> nom
[23:24] <jacekowski> nie maja nic ze soba wspolnego
[23:24] <cetra> http://en.wikipedia.org/wiki/Sticky_bit#Usage
[23:24] <buharin> jest napisane tak ze /tmp ma sticky
[23:24] <buharin> cetra, zamiast pomoc to wyzywacie wiem bo to czytalem
[23:25] <cetra> buharin: jeszcze nikogo dzisiaj nie zwyzywałem ;-)
[23:25] <cetra> buharin: a jacekowskim się nie przejmuj, on już tak ma
[23:26] <buharin> cetra, tam jest napisane ze normalnie kazdy user z prawami moze manipulowac na pliku
[23:26] <buharin> ale ze sticky bit tylko ten konkretny
[23:26] <buharin> wlasciciel
[23:26] <cetra> zgadza się
[23:26] <buharin> cetra, i sie pytam po co to?
[23:26] <jacekowski> nie moze
[23:26] <cetra> tak jest napisane
[23:26] <cetra> buharin: bo jeśli ustawisz uprawnienia 777
[23:26] <buharin> jacekowski, tak napisali na wiki
[23:26] <jacekowski> moze zmienic i usunac
[23:27] <jacekowski> zmienic nazwe*
[23:27] <buharin> atrybuty tez
[23:27] <jacekowski> nie moze
[23:27] <cetra> buharin: to każdy może usunąć plik lub zmienić jego nazwę, ze sticky tylko właściciel lub root
[23:27] <cetra> buharin: natomiast zawartość pluku nadal miożna zmieniać z innego usera
[23:27] <jacekowski> buharin: uprawnien do pliku dalej nie ma
[23:27] <jacekowski> buharin: niezaleznie od sticky czy nie
[23:28] <jacekowski> buharin: za to zmiana nazwy pliku badz usuniecie nie jest operacja na pliku
[23:28] <jacekowski> buharin: tylko na folderze w ktorym ten plik jest
[23:28] <jacekowski> buharin: wiec jesli inny uzytkownik ma uprawnienia do folderu, moze z niego usunac dowolny plik badz zmienic mu nazwe
[23:29] <jacekowski> buharin: jesli teraz NA FOLDERZE ustawisz sticky bit, to uprawnienia beda sprawdzane na pliku rowniez
[23:29] <cetra> problem tylko taki
[23:29] <cetra> że w linksie nie ma folderów ;-
[23:29] <cetra> D
[23:29] <jacekowski> sa
[23:30] <buharin> jacekowski, sa foldery lol
[23:30] <cetra> nie. są katalogi :P
[23:30] <buharin> jacekowski, a no to co napisales to ma sens
[23:30] <jacekowski> wedlug tezarusa folder i katalog to synonimy
[23:30] <cetra> folder to nowotwór windowsowy
[23:31] <jacekowski> akurat nie
[23:31] <jacekowski> folder przyszedl z systemu unixowego
[23:31] <cetra> ale to windows wypromował takie nazewnictwo
[23:31] <cetra> mniejsza z tym
[23:31] <jacekowski> spod znaku japka
[23:31] <jacekowski> a wczesniej byl uzywany na irixie
[23:31] <jacekowski> czyli pelnoprawnym unixie
[23:31] <buharin> jacekowski, wlasciwie folder i plik to sa wezly do pamieci 
[23:31] <buharin> nody
[23:32] <jacekowski> inodes
[23:32] <cetra> przypomina mi to o książce która leży u mnie na kolumnie i nadal jej nie przeczytałem
[23:32] <buharin> i do tego folderowego inoda sa podpiete inody plikow
[23:32] <jacekowski> tak jakby
[23:32] <jacekowski> tutaj masz rozne warstwy
[23:32] <jacekowski> masz system plikow z jakas struktura na dysku 
[23:33] <jacekowski> dowolna
[23:33] <buharin> jacekowski, mam tez napisane ze jesli w plikach wykonywalnych ustawi sie sticky bit to po zakonczeniu programu nie jest zwalniana pamiec jak to sie wykorzystuje?
[23:33] <jacekowski> zadaniem systemu plikow (jako oprogramowania) jest przedstawienie tych struktur na dysku kernelowi w postaci inode i dentry
[23:33] <cetra> buharin: co czytasz?
[23:33] <buharin> cetra, wyklady i wikipedie
[23:33] <buharin> :D
[23:33] <jacekowski> buharin: urban legend
[23:34] <jacekowski> buharin: kiedys tak bylo na niektorych unixach
[23:34] <cetra> mam tutaj książkę Linu: programowanie systemowe
[23:34] <cetra> Linux*
[23:34] <jacekowski> buharin: pod linuxem sticky bit na plikach jest ignorowany
[23:34] <cetra> wlaśnie ta której nie dokończyłem
[23:34] <jacekowski> buharin: a pamiec jest zawsze zwalniana
[23:35] <jacekowski> buharin: na niektorych unixach sticky bit kontrolowal cachowanie pliku
[23:35] <buharin> cetra, fajna ksiazka jestK&R The C programming language
[23:35] <jacekowski> buharin: w sensie sticky bit wymuszal ze plik zawsze siedzial w pamieci
[23:35] <cetra> buharin: to klasyka
[23:35] <buharin> jacekowski, o jezusie
[23:35] <cetra> buharin: i uczy ona jedynie ogólnych podstaw C
[23:35] <cetra> no może coś więcej niż jedynie podstyawy
[23:36] <cetra> dość rosrzeżony opic C
[23:36] <cetra> opis
[23:36] <jacekowski> buharin: ale pod linuxem i windowsem i nowszymi unixami w momencie gdy odpalasz program to on nawet nie jest caly czytany z dysku
[23:36] <jacekowski> buharin: tylko minimum wymagane przez linker
[23:36] <cetra> ale nie nauczy profilu takiego jak programowanie w linuskie
[23:36] <jacekowski> buharin: i uzywajac mmap plik jest MAPOWANY do przestrzeni adresowej
[23:37] <buharin> jacekowski, ok dzieki :D ale to co napisales na poczatku mi wystarcza
[23:37] <jacekowski> buharin: i odczytywany w kawalkach dopiero jak sa potrzebne (i wywalane z pamieci jak jest malo wolnej)
[23:37] <buharin> juz przestalem kumac :P
[23:38] <jacekowski> chyba w ogole nie zaczales
[23:38] <cetra> 7lelz
[23:38] <buharin> jacekowski, ogolnie z tego co czytalem to zawsze myslalem ze program jest wczytywany w calosci do pamieci
[23:39] <jacekowski> nie jest wczytywany w ogole
[23:39] <jacekowski> absolutne minimum
[23:39] <jacekowski> reszta jest doczytywana jak jest potrzebna
[23:40] <jacekowski> wyobraz sobie odczytywanie 600MB programow 
[23:40] <jacekowski> i ile pamieci by to marnowalo
[23:40] <jacekowski> i ile by to trwalo
[23:40] <buharin> jacekowski, czyli jak cos odpalam to nie jest tak ze segment kodu zapisuje sie kodem asm i stos i sterta tez
[23:40] <buharin> zmiennymi
[23:41] <buharin> jacekowski, ale pamiec wirtualna chyba dynamicznie sie poszerzac nie moze
[23:41] <jacekowski> jak cos odpalasz do kernel odczytuje ELF/PE header
[23:42] <jacekowski> na podstawie tego linker potem sklada program
[23:43] <jacekowski> znaczy sie odczytuje ze bajty od 100 do 1000000 to sekcja .text z podstawowym adresem 0x40000000 i entry pointem na 0x40000000
[23:43] <jacekowski> potencjalnie moze byc wiecej sekcji ale operacja jest prawie taka sama
[23:43] <jacekowski> potem jeszcze linker czyta sekcje importow i laduje rozne .dll czy tam .so
[23:43] <jacekowski> ladowanie polega na dokladnie tym samym
[23:44] <jacekowski> teraz linker wie co trzeba gdzie
[23:44] <cetra> jacekowski wykłada na #ubuntu-pl 4 fun ™
[23:44] <jacekowski> i MAPUJE te pliki do przestrzeni adresowej
[23:44] <jacekowski> mapowanie czegos do pamieci polega na tym ze
[23:44] <buharin> jacekowski, szkoda ze nie uczysz u nas :P
[23:45] <jacekowski> idzie linker i mowi do kernela
[23:45] <jacekowski> otworz /bin/bash
[23:45] <jacekowski> teraz ten /bin/bash od bajtu 100 do bajtu 100000 ma byc dostepny pod adresem 0x40000000 
[23:46] <jacekowski> kernel stwierdza ze OK i idzie dalej
[23:46] <jacekowski> teraz linker robi to samo dla kazdego innego potrzebnego .so czy tam .dll
[23:46] <jacekowski> i jak skonczy to robi skok do entry pointa odczytanego kilka krokow wczesniej
[23:46] <cetra> chyba j*bnę kawkę :F
[23:47] <jacekowski> i w tym momencie
[23:47] <jacekowski> EIP sie nagle robi 0x40000000
[23:47] <buharin> jacekowski, a gdzie to mozna przeczytac?
[23:48] <jacekowski> zrodla kernela, x86 developers manual intela, windows internals
[23:48] <jacekowski> i kilka innych ksiazek ktore maja ilosci stron liczone w tysiacach
[23:48] <jacekowski> wracajac do EIP 0x4000000000
[23:48] <jacekowski> co sie teraz dzieje
[23:49] <jacekowski> jako ze nic wczesniej tego nie probowalo wykonac/odczytac to mozna zalozyc ze w page table (MMU) nie ma wpisu dla tego adresu (bo kernel nie ustawil)
[23:49] <jacekowski> to procesor robi page fault i wyskakuje z r3 do r0 
[23:49] <buharin> MMU to jednostka adresujaca
[23:50] <jacekowski> teraz w r0 siedzi kernel i widzi
[23:50] <jacekowski> cos sie chcialo dostac do 0x40000000
[23:51] <buharin> i wtedy zaczyna kopiowac kolejna potrzebna zawartosc
[23:51] <jacekowski> patrzy teraz kernel w swoje struktury i widzi ze pod tym adresem powinien byc ten /bin/bash (badz nie, jesli adres jakis zly albo inne dziwne rzeczy sie podzialy)
[23:51] <jacekowski> no to kernel teraz dopiero zaczyna odczytywac /bin/bash w ilosci kontrolowanej przez rozne inne ustawienia (domyslnie chyba 128kB kawalki)
[23:52] <jacekowski> odczytal te 128kB i wrzucil do pamieci fizycznej
[23:52] <jacekowski> pod jakims tam 0x1234567
[23:52] <jacekowski> jednoczesnie teraz ustawia wpis w page table ze fizyczny adres 0x1234567 ma byc mapowany do wirtualnego 0x40000000 na dlugosci 128kB
[23:53] <jacekowski> jak rowniez ustawia uprawnienia do odczytu i wykonania (bez uprawnien do zapisu) (jesli procesor ma NX)
[23:53] <jacekowski> i teraz kernel kaze procesorowi wrocic do r3
[23:54] <jacekowski> teraz procesor/MMU znowu sprawdza wpis w page table i widzi ze 0x4000000 gdzie jest zamapowane
[23:54] <jacekowski> i wykonuje kod
[23:54] <jacekowski> az do momentu kiedy zamapowane 128kB sie skonczy albo cos innego sie wydarzy
[23:54] <jacekowski> i laduje kawalek po kawalku
[23:55] <jacekowski> ostatecznie moze sie skonczyc tym ze zaladuje caly iles MB program do pamieci
[23:55] <jacekowski> ale rownie dobrze moze sie okazac ze nie
[23:55] <jacekowski> ide spac
[23:55] <cetra> jeszcze w anglii siedzisz?
[23:56] <cetra> widać jestem niegodzien aby uzyskać odpowiedź
[23:57] <jacekowski> tak
[23:57] <cetra> i co tam słychać ciekawego?
[23:57] <jacekowski> nic
[23:57] <jacekowski> http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
 (at www.intel.com)
[23:58] <jacekowski> sporo wiedzy jest tutaj
[23:59] <buharin> jacekowski, mam napisane ze euid moze sie zmienic na nobody