powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ехе файл в статическую переменную
17 сообщений из 17, страница 1 из 1
Ехе файл в статическую переменную
    #34812737
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть маленькое exe приложение. Возможно ли статически поместить его в переменную чтобы потом во время работы программы сохранить его на диск и запустить.
(Нужно это потому что программа на скриптовом языке с синтаксисом С, а потому ограниченна в возможностях)
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34812852
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну запиши его в виде hex-dump'а
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34814195
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вирус? :)

или (кроме Hex-дампа) есть еще более компактное UUE ...
правда, возни больше
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34814272
pegasus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно можно 8) Просто открываешь свой exe и тупо дописываешь к нему другой exe, а в конце можешь структуру дописать, которая бы указывала откуда надо читать (смещение в файле) и скоко

struct ExFileInfo {
DWORD offset;
DWROD size;
};

А в exe к которому дописал надо делать так. Он сам себя открывает на чтение, файловый указатель переводит на конец себя, читает структуру ExFileInfo и основываясь на ее данных, читает прилинкованый файл, и при желании копирует его в нужную директории и запускает. Вот и все.
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34815479
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семёнили (кроме Hex-дампа) есть еще более компактное UUE ...
правда, возни большеПравда???? UUE компактнее чем дамп? Никогда бы не подумал.
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34815952
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurman wrote:

> Есть маленькое exe приложение. Возможно ли статически поместить его в
> переменную чтобы потом во время работы программы сохранить его на диск
> и запустить.
Да.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34815954
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён wrote:

> есть еще более компактное UUE ...
uue потребует 4 байта для представления 3х иходных.

Я такое делал, можно просто тупо перегнать утилитой исходный файл в
определение массива с иницализацией, и включить это в проект.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34816125
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Основной файл у меня не exe а специальное приложения для Cad среды, его структуру я не знаю, это к тому чтобы открыть и дописать exe в него.
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34816126
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поискал про hex dump нашел пример только как в процессе программы загрузить файл.
Помогите сделать это статически, вот например:

char BatFile[]="@del readme.txt";

void main()
{
FILE *f = fopen( "delete.bat", "wt");
fprintf(f,"%s",BatFile[]="@del );
fclose(f);
}

В результате я получаю файл delete.bat

Тоже самое надо только с exe файлом, только вот в строку как с bat файлом не могу его засунуть
а как представить его в виде hex в исходнике, в какой тип поместить и как сохранить я не знаю
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34816137
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправление fprintf(f,"%s",BatFile[]="@del ) читать как fprintf(f,"%s",BatFile);
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34816585
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поместите Ваш файл в ресурс программы
(в ресурс можно загнать любой файл),
а во время работы записывайте его на диск и запускайте оттуда
(с диска то есть)
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34816616
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurmanТоже самое надо только с exe файлом, только вот в строку как с bat файлом не могу его засунуть
а как представить его в виде hex в исходнике, в какой тип поместить и как сохранить я не знаю

Считай его в std::vector<unsigned char>
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34817158
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну е-мое, никто не хочет hex dump в двоичку перегнать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
FILE* f = fopen("a.exe", "w");
const char* hexDump = "C0FFEE";
const char* digits = "0123456789ABCDEF";
unsigned char buf[ 512 ];

memset(buf,  0 , sizeof(buf));

for (int i, j =  0 ; hexDump[i] != '\0';)
{
  unsigned char upper = (std::lower_bound(digits, digits +  16 , hexDump[i++]) - digits;
  if (hexDump[i] == '\0' || upper ==  16  )
    throw  1 ;
  unsigned char bottom = std::lower_bound(digits, digits +  16 , hexDump[i++])- digits;
  if  (buttom ==  16  )
    throw  1 ;
  buf[j++] = (upper <<  4 ) | buttom;
  if (j == sizeof(buf))
  {
    fwrite(buf, sizeof(buf[ 0 ]), sizeof(buf), f);
    j =  0 ;
    memset(buf,  0 , sizeof(buf));
  }  
}

char c;
while((c=getchar()) != EOF)
{
putchar(s[((unsigneg char) (c & (mask << 4))) >> 4]);
putchar(s[c & mask]);
}
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34817176
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой забыл в крнце буфер сбросить, но это уже сам
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34818978
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как пока получилось:

//Фрагмент exe файла в hex
char Data[]={0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00};
int main()
{
FILE *f;
f=fopen( "start.exe", "w" );
fwrite( Data, sizeof( char ), 16, f );
fclose( f );
return 0;
}

Немного неудобно конечно что для каждого числа в Data надо ставить "0x" и ","
но для этого можно сделать утилитку.
Если кто знает подскажите как проще представить статически переменную Data.


Пытался сделать утилиту которая из exe файла делала бы heх в нужном мне формате (чтобы им инициализировать статический массив),
скачал исходники программы которая делает hex из любого файла, но она какаято глючная,
надо найти нормальную 100% рабочую.
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34818981
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С примеров blinded пока не разбирался, сходу не понял че к чему, буду смотреть.
...
Рейтинг: 0 / 0
Ехе файл в статическую переменную
    #34819138
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurmanскачал исходники программы которая делает hex из любого файла, но она какаято глючная, надо найти нормальную 100% рабочую.Плохо искал. Гугли bin2hex, получишь сотни вариантов этой утилиты. Подбери себе по вкусу.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ехе файл в статическую переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]