Есть ли способ получить GCC для вывода сырых двоичных файлов?

Вы можете получить ссылку на изображение следующим образом:

Image myImage = Resources.myImage;

Если вы хотите сделать копию изображения, вам нужно будет сделать следующее:

Bitmap bmp = new Bitmap(Resources.myImage);

Не забудьте удалить bmp , когда закончите с ним. Если вы не знаете имя образа ресурса во время компиляции, вы можете использовать диспетчер ресурсов:

ResourceManager rm = Resources.ResourceManager;
Bitmap myImage = (Bitmap)rm.GetObject("myImage");

. Преимущество ResourceManager заключается в том, что вы можете использовать его там, где Resource.myImage будет как правило, вне сферы действия или где вы хотите динамически получать доступ к ресурсам. Кроме того, это работает для звуков, конфигурационных файлов и т. Д.

29
задан cubuspl42 18 October 2016 в 20:49
поделиться

2 ответа

Попробуйте это:

$ cc -c test.c
$ objcopy -O binary test.o binfile

Вы можете убедиться, что все правильно, с помощью objdump :

$ objdump -d test.o 
test.o:     file format pe-i386


Disassembly of section .text:

00000000 <_f>:
   0:   55                      push   %ebp
   1:   89 e5                   mov    %esp,%ebp
   3:   83 ec 04                sub    $0x4,%esp
   6:   8b 45 08                mov    0x8(%ebp),%eax
   9:   0f af 45 08             imul   0x8(%ebp),%eax
   d:   89 45 fc                mov    %eax,-0x4(%ebp)
  10:   8b 45 fc                mov    -0x4(%ebp),%eax
  13:   83 c0 02                add    $0x2,%eax
  16:   c9                      leave  
  17:   c3                      ret  

И сравните с двоичным файлом:

$ hexdump -C binfile 
00000000  55 89 e5 83 ec 04 8b 45  08 0f af 45 08 89 45 fc  |U......E...E..E.|
00000010  8b 45 fc 83 c0 02 c9 c3                           |.E......|
00000018
34
ответ дан 28 November 2019 в 01:08
поделиться

Вы можете использовать objcopy для извлечения текстового сегмента из файла .o или файла a.out.

$ cat q.c
f() {}
$ cc -S -O q.c
$ cat q.s
        .file   "q.c"
        .text
.globl f
        .type   f, @function
f:
        pushl   %ebp
        movl    %esp, %ebp
        popl    %ebp
        ret
        .size   f, .-f
        .ident  "GCC: (Ubuntu 4.3.3-5ubuntu4) 4.3.3"
        .section        .note.GNU-stack,"",@progbits
$ cc -c -O q.c
$ objcopy -O binary q.o q.bin
$ od -X q.bin
0000000 5de58955 000000c3
0000005
$ objdump -d q.o
q.o:     file format elf32-i386
Disassembly of section .text:
00000000 <f>:
   0:   55                      push   %ebp
   1:   89 e5                   mov    %esp,%ebp
   3:   5d                      pop    %ebp
   4:   c3                      ret    
15
ответ дан 28 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: