🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #481

Re: 16 - bitowe aplikacje pod Windows-em

#481
From: Wiktor S.
Date: Sun, 30 Jul 2006 13:38
41 lines
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-mail
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>

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