Article View: pl.comp.lang.asm
Article #481Re: 16 - bitowe aplikacje pod Windows-em
From: Wiktor S.
Date: Sun, 30 Jul 2006 13:38
Date: Sun, 30 Jul 2006 13:38
41 lines
3443 bytes
3443 bytes
>> No zaraz... Przecież każdy exek (mówimy o DOS/Windows i wykluczamy >> pliki .com) zaczyna się od MZ, czy 16 czy 32-bitowy... Dopiero >> później jest inna sygnatura - "NE" (New Executable) dla 16-bitowych >> exeków rodem z Win3.xx, "LE" (Linear Executable) - chyba z OS/2, Między innymi, format LE mają też programy DOS-owe stworzone kompilatorem Watcom. >> ale głowy nie dam, i "PE" (Portable Executable) dla exeków 32-bitowych >> (i pewnie 64-bitowych też). też. Co nie znaczy, że uruchomienie 64-bitowego PE w 32-bitowym systemie się powiedzie :-) komunikat brzmi: "c:\foo\bar64.exe is not a valid Win32 application." > Całkiem możliwe, bo zawierają zaślepkę w celu napisania na ekranie > "This program cannot be run in DOS mode" (czy jakoś tak), gdy się je > uruchomi z DOSa. Nie zagłębiałem się w szczegóły budowy binarek aż tak > bardzo. Poza tym, w tej chwili nie umiem znaleźć pliku windowsowego > (poza DLL), który zaczynałby się od "PE". Pewnie masz rację. To "this program itp..." jest właśnie zwykłym, 16-bitowym DOS-owym programem (tak zwanym stubem), który jest umieszczany na początku każdego programu windowsowego. Za nim następuje nagłówek PE i właściwy program Windowsowy. Gdy uruchomimy exeka pod DOS-em, włączy się program "this itd..", gdy pod windą - właściwy program. 32-bitowe programy pod DOS-a wykorzystują podobną sztuczkę - nagłówek MZ z DOS-extenderem, który uruchomiony załaduje właściwy, 32-bitowy kod, znajdujący się dalej. To wszystko się zgadza, jeśli program ma strukturę standardową. W rzeczywistości można napisać program niby-16-bitowy, uruchamiany pod dosem, a który sam sobie uruchomi tryb powiedzmy 64-bitowy, przestanie odwoływać się do DOS-u i BIOS-u i będzie działać jak samodzielny system operacyjny. Na czymś takim każdy debugger się wysypie :-) -- Azarien
Technical Details
Message-ID:
<eaico8$v5s$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<1153912562.197989.284910@p79g2000cwp.googlegroups.com> <ea8079$qb6$1@atlantis.news.tpi.pl> <ea87mu$r7p$1@inews.gazeta.pl> <ea8d69$7kc$1@atlantis.news.tpi.pl> <1153940851.484645.34550@b28g2000cwb.googlegroups.com> <ea8j5n$oj2$1@nemesis.news.tpi.pl> <1153947594.189666.311470@b28g2000cwb.googlegroups.com> <ea8rnn$ahn$1@nemesis.news.tpi.pl> <1153957765.027585.210970@b28g2000cwb.googlegroups.com> <1153957912.746961.101320@75g2000cwc.googlegroups.com> <eaaov5$kcs$1@atlantis.news.tpi.pl> <1154018822.045571.88070@m79g2000cwm.googlegroups.com> <eadblh$i7s$1@nemesis.news.tpi.pl> <eaf972$2bg$1@inews.gazeta.pl> <eafhvu$42v$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: "Wiktor S." <wswiktorSP@Mpoczta.fm> Newsgroups: pl.comp.lang.asm Subject: Re: 16 - bitowe aplikacje pod Windows-em Date: Sun, 30 Jul 2006 15:38:16 +0200 Organization: Onet.pl Lines: 42 Message-ID: <eaico8$v5s$1@news.onet.pl> References: <1153912562.197989.284910@p79g2000cwp.googlegroups.com> <ea8079$qb6$1@atlantis.news.tpi.pl> <ea87mu$r7p$1@inews.gazeta.pl> <ea8d69$7kc$1@atlantis.news.tpi.pl> <1153940851.484645.34550@b28g2000cwb.googlegroups.com> <ea8j5n$oj2$1@nemesis.news.tpi.pl> <1153947594.189666.311470@b28g2000cwb.googlegroups.com> <ea8rnn$ahn$1@nemesis.news.tpi.pl> <1153957765.027585.210970@b28g2000cwb.googlegroups.com> <1153957912.746961.101320@75g2000cwc.googlegroups.com> <eaaov5$kcs$1@atlantis.news.tpi.pl> <1154018822.045571.88070@m79g2000cwm.googlegroups.com> <eadblh$i7s$1@nemesis.news.tpi.pl> <eaf972$2bg$1@inews.gazeta.pl> <eafhvu$42v$1@nemesis.news.tpi.pl> NNTP-Posting-Host: 155.168.wmc.com.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1154266696 31932 87.250.168.155 (30 Jul 2006 13:38:16 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Sun, 30 Jul 2006 13:38:16 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 X-Sender: 63e3folRCjcGWUjNfLSN0w== X-Newsreader: Microsoft Outlook Express 6.00.2900.2869 X-Priority: 3 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit