mirror of
https://github.com/golang/go
synced 2024-11-22 03:14:41 -07:00
8l: add DOS stub to PE binaries
R=rsc CC=golang-dev https://golang.org/cl/915041
This commit is contained in:
parent
1b56947f84
commit
30f981d980
@ -11,6 +11,28 @@
|
|||||||
#include "../ld/lib.h"
|
#include "../ld/lib.h"
|
||||||
#include "../ld/pe.h"
|
#include "../ld/pe.h"
|
||||||
|
|
||||||
|
// DOS stub that prints out
|
||||||
|
// "This program cannot be run in DOS mode."
|
||||||
|
static char dosstub[] =
|
||||||
|
{
|
||||||
|
0x4d, 0x5a, 0x90, 0x00, 0x03, 0x00, 0x04, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x0e, 0x1f, 0xba, 0x0e, 0x00, 0xb4, 0x09, 0xcd,
|
||||||
|
0x21, 0xb8, 0x01, 0x4c, 0xcd, 0x21, 0x54, 0x68,
|
||||||
|
0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72,
|
||||||
|
0x61, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f,
|
||||||
|
0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6e,
|
||||||
|
0x20, 0x69, 0x6e, 0x20, 0x44, 0x4f, 0x53, 0x20,
|
||||||
|
0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0d, 0x0d, 0x0a,
|
||||||
|
0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
static int pe64;
|
static int pe64;
|
||||||
static int nsect;
|
static int nsect;
|
||||||
static int sect_virt_begin;
|
static int sect_virt_begin;
|
||||||
@ -64,8 +86,7 @@ pewrite(void)
|
|||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
strnput("MZ", 0x3c);
|
write(cout, dosstub, sizeof dosstub);
|
||||||
LPUT(0x40); // file offset to PE header
|
|
||||||
strnput("PE", 4);
|
strnput("PE", 4);
|
||||||
|
|
||||||
for (i=0; i<sizeof(fh); i++)
|
for (i=0; i<sizeof(fh); i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user