-
1. Data: 2012-06-28 09:12:51
Temat: PE a lib i obj
Od: "Borneq" <b...@a...hidden.pl>
Pliki Exe i Dll właściwie się nie różnią, oba mogą importować i eksportować
funkcje, mają sekcje zasobów, debuggera itp.
A jak jest z plikami lib i obj? Jaka jest różnica między nimi a plikami
wykonywalnymi? W takim obj i lib nie ma ustalonych adresów.
-
2. Data: 2012-06-28 09:49:12
Temat: Re: PE a lib i obj
Od: "AK" <n...@n...com>
Użytkownik "Borneq" <b...@a...hidden.pl> napisał:
> Pliki Exe i Dll właściwie się nie różnią, oba mogą importować i eksportować
funkcje, mają sekcje
> zasobów, debuggera itp.
> A jak jest z plikami lib i obj? Jaka jest różnica między nimi a plikami
wykonywalnymi? W takim obj
> i lib nie ma ustalonych adresów.
Lib to nic wiecej niz pop rostu biblioteka obj-tow.
Obj (mowie o intelu x86/x64) to taki magazyn relokowalnych paczek
kody maszynowego i danych odpowiadajacych z grubsza strukturze
programu w pamieci x86/64 (segmenty (e)cs:kod = CODExx
(e)ds:DATA,_DATA bss:BSS,_BSS itp) + rozne mappingi symboli
(nazw z j.programowania) na adresy wzgledne w tychze, fuxupy itp.
Linker po prostu scala te czesci z roznych objtow i produkuje
exe (dwa pierwsze bajty to 'MZ') ktory jest zlozony z wielu segmentow,
(ale juz wewnetrznie spojnych) + tablica relokacji (offsety tychze).
"Drzewiej"produkowac mozna bylo tez .com ktory tym sie rozni
od execa, ze loader traktuje go jako jeden 'BLOB" (nie ma zadnych relokacji)
wczytuje go i skacze zwyklym jumpem na jego poczatek
(a dokladnie chyba na adres 0x400 - nie pamietam).
.Com z oczywistych wzgledow moze miec maksymalny rozmiar jednego
segmentu procesora intel.
Dla 16 bitowego adresowania bylo to wiec ~65000b - dosc malo:)
Taki com byl niekiedy bardzo wygodny przy pisaniu driverow/pluginow
itp (rozszerzenia byly czesto inne; .bin, .sys, .bgi itp itd).
Aby uzyskac pluginowa/driverowa dynamike uruchomienia drivera
po prostu czytalo sie taki twor ''in runtime" jakims (f)read i oddawalo
sie mu sterowanie zwyklym jmp seg:0x400.
(Ok ok :) wiem ze sa spawny i exec. Nie zawsze byly idealne.)
A wiec zadnej tajemnej i skomplikowanej wiedzy e tym nie ma.
Ba! Dzis ta "wiedza" jest jzu kompletnie zbedna (i baardzo dobrze),
co pod powazna rozwage Ci polecam (sa przyjemniejsze/potrezbniejsze
rzeczy w prog. niz grzebanei w takich bebechach)
AK
-
3. Data: 2012-06-28 10:42:38
Temat: Re: PE a lib i obj
Od: "Borneq" <b...@a...hidden.pl>
Użytkownik "AK" <n...@n...com> napisał w wiadomości
news:jsh2a2$pj8$1@inews.gazeta.pl...
> A wiec zadnej tajemnej i skomplikowanej wiedzy e tym nie ma.
> Ba! Dzis ta "wiedza" jest jzu kompletnie zbedna (i baardzo dobrze),
> co pod powazna rozwage Ci polecam (sa przyjemniejsze/potrezbniejsze
> rzeczy w prog. niz grzebanei w takich bebechach)
Ale o ile pliki COM juz się nie używa, to obj występują przy kompilacji
każdego programu w C/C++ a nawet bez .lib nie można się dostać do DLL.
Pozdrawiam
-
4. Data: 2012-06-28 13:46:14
Temat: Re: PE a lib i obj
Od: "AK" <n...@n...com>
Użytkownik "Borneq" <b...@a...hidden.pl> napisał:
> a nawet bez .lib nie można się dostać do DLL.
E tam :(
Mozna ! (i to na dwa sposoby).
AK
-
5. Data: 2012-06-28 14:28:18
Temat: Re: PE a lib i obj
Od: "Borneq" <b...@a...hidden.pl>
Użytkownik "AK" <n...@n...com> napisał w wiadomości
news:jshg6f$s2$1@inews.gazeta.pl...
> E tam :(
> Mozna ! (i to na dwa sposoby).
No oczywiście jest LoadLibrary
-
6. Data: 2012-06-28 14:59:52
Temat: Re: PE a lib i obj
Od: "AK" <n...@n...com>
Użytkownik "Borneq" <b...@a...hidden.pl> napisał:
> No oczywiście jest LoadLibrary
No jest. A z nim dwa sposoby (jeden zreszta wykorzystywany wlasnie przez dllkowy
.lib).
Hint:
1) by ordinal - siuper fast 'ale...'
2) by name - mniej 'ale...', ale niby mniej fast (dla gurus C++: nie zauwazylem tej
"dyskwalifikacji" w praktyce).
AK
-
7. Data: 2012-06-28 17:00:15
Temat: Re: PE a lib i obj
Od: g...@n...invalid (Adam Wysocki)
AK <n...@n...com> wrote:
> Linker po prostu scala te czesci z roznych objtow i produkuje
> exe (dwa pierwsze bajty to 'MZ')
Jako ciekawostka i uzupełnienie wiedzy, dlaczego MZ:
http://en.wikipedia.org/wiki/Mark_Zbikowski
http://channel9.msdn.com/Shows/Behind+The+Code/Mark-
Zbikowski-From-DOS-10-to-Windows-Vista
--
Gof
http://www.chmurka.net/
-
8. Data: 2012-06-28 17:31:14
Temat: Re: PE a lib i obj
Od: "AK" <n...@n...com>
Użytkownik "Adam Wysocki" <g...@n...invalid> napisał:
> Jako ciekawostka i uzupełnienie wiedzy, dlaczego MZ:
>
> http://en.wikipedia.org/wiki/Mark_Zbikowski
> http://channel9.msdn.com/Shows/Behind+The+Code/Mark-
Zbikowski-From-DOS-10-to-Windows-Vista
O ! Dzieki wielkie za info.
Dalibog nie wiedzialem (a moj rocznik prawie;)
AK
-
9. Data: 2012-06-28 17:57:00
Temat: Re: PE a lib i obj
Od: Jacek <a...@o...pl>
Dnia Thu, 28 Jun 2012 17:31:14 +0200, AK napisał(a):
> Użytkownik "Adam Wysocki" <g...@n...invalid> napisał:
>
>> Jako ciekawostka i uzupełnienie wiedzy, dlaczego MZ:
>>
>> http://en.wikipedia.org/wiki/Mark_Zbikowski
>> http://channel9.msdn.com/Shows/Behind+The+Code/Mark-
Zbikowski-From-DOS-10-to-Windows-Vista
>
> O ! Dzieki wielkie za info.
> Dalibog nie wiedzialem (a moj rocznik prawie;)
>
> AK
Zawsze jest dobże dowiedzieć się czegoś nowego sprzed 30 lat.;)
-
10. Data: 2012-06-28 17:59:39
Temat: Re: PE a lib i obj
Od: "AK" <n...@n...com>
Użytkownik "Jacek" <a...@o...pl> napisał:
> Zawsze jest dobże dowiedzieć się czegoś nowego sprzed 30 lat.;)
Alez... Chodzilo mi tylk o to MZ a nie o sama - jednak mi znana - postac.
Ale racja. Generalnie wciaz mnie kreci (a nawet "utrzymuje przy zyciu" :) dowiedziec
sie
czegos nowego. Bardziej niz wodeczka ;)
AK