1.2, maneken (?), 05:49, 20/01/2016 [ответить] [↓] [к модератору]
| +/– |
А так чем плохо? Ничего дополнительно делать не надо.
__asm(
".global data_file\n"
".global _data_file\n"
"data_file:\n"
"_data_file:\n"
".incbin \"data.zip\"\n"
".global data_file_len\n"
".global _data_file_len\n"
"data_file_len:\n"
"_data_file_len:\n"
".int .-data_file \n"
);
extern void * data_file;
extern void * data_file_len;
unsigned char * data =(unsigned char *)&data_file;
int * datalen =(int *) &data_file_len;
| |
|
|
3.6, a (??), 18:17, 20/01/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Делается один раз:
dd bs=10m count=1 if=/dev/random of=random.bin
1+0 records in
1+0 records out
10485760 bytes transferred in 0.636338 secs (16478287 bytes/sec)
time xxd -i random.bin > random.c
real 0m1.997s
user 0m1.935s
sys 0m0.057s
time gcc -c random.c
real 0m9.414s
user 0m8.947s
sys 0m0.350s
| |
|
|
|
2.8, Andrey Mitrofanov (?), 10:05, 25/01/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> А не проще volatile char a[DATASIZE] = {бинарь}?
Двоичные патчОры ещё не открыли для себя генерацию программ, здесь - хексов в Си. Бинарное программирование оно такое -- сложное и малодоступное.
| |
|
|