|
13 / 13 / 0
Регистрация: 03.09.2012
Сообщений: 44
|
|
Exe из ресурсов требует несвойственные для него параметры09.09.2012, 18:53. Показов 4874. Ответов 27
Метки нет (Все метки)
Ребята, помогите, суть проблемы такова. В ресурсы засунула exe файл и в стадии разработки все работает замечательно, файл вытаскивается, запускается и исправно выполняет поставленные ему задачи, но вот после компиляции этот файл отказывается работать, хотя он и вытаскивается из ресурсов и размер у него получается ровно такой же, но вот работать он не хочет. А когда я в ручную начинаю запускать из консоли вытащенную после компиляции прожку, то она просит указать аргументы никакого отношения не имеющие к этой консольной проге и смысл которых мне не понятен.
0
|
|
| 09.09.2012, 18:53 | |
|
Ответы с готовыми решениями:
27
Вопрос к искушенным: какая среда IDE для Java удобнее других и требует меньше ресурсов? *.exe требует MSVCP100.dll библиотеку для запуска |
|
13 / 13 / 0
Регистрация: 03.09.2012
Сообщений: 44
|
|
| 09.09.2012, 20:33 [ТС] | |
|
Catstail, а как это сможет мне помочь решить проблему? И как сравнивать? Открывать в hex-редакторе? Содержимое, уверена, будет в чем то отличным, только что с этим то делать.
1
|
|
|
|
||||||
| 09.09.2012, 20:44 | ||||||
|
Catstail, имел в виду сравнить хеш-суммы исходного файла (который Вы загружали в ресурсы) и того, что получился после распаковки.
Покажите исходный код распаковщика. У меня лично вот так:
У меня AVIRA (причем только она) признала такой скомпилированный файл вирусом. Мне пришлось отказался от этого способа.
2
|
||||||
| 10.09.2012, 09:41 | |
|
0
|
|
|
Супер-модератор
|
||
| 10.09.2012, 11:37 | ||
|
Кстати, я для таких целей не использую файлы ресурсов. Есть другой способ. Пусть у нас имеется exe-файл, который нужно запускать из приложения. Я его просто "склеиваю" с exe-файлом приложения (доливаю в самый конец). И дополнительно добавляю 4-х байтовую длину запускаемого файла. Теперь, если нужно запустить встроенный файл, делаем так: 1. Открываем сами себя на чтение в режиме BINARY 2. Определем собственную длину. 3. Позиционируемся в конец файла -4 4. Читаем 4 байта - получаем длину exe-файла 5. Позиционируемся в начало exe-файла, считываем и сбрасываем на диск 6. Запускаем...
2
|
||
|
13 / 13 / 0
Регистрация: 03.09.2012
Сообщений: 44
|
||||||
| 10.09.2012, 23:22 [ТС] | ||||||
|
Dragokas, Антивирус снесла, проблема не решилась. Код распоковщика идентичен вашему, но все же взяла и скопировала ваш код, результат тот же.
Добавлено через 2 минуты Catstail, Ваш вариант мне интуитивно понятен, но учитывая мой 35 дневный стаж в программировании, для меня это выглядит как страшное заклинание... Буду разбираться ] Добавлено через 17 минут И вот небольшой... анамнез программы. Запускаю программу из проекта и все отработало как надо. Читаю хеш c выгруженного из ресурса, в процесс работы программы, файла. Далее компилирую и после, повторно, запускаю проект. Все опять работает как надо и это понятно. Закрываю проект. Запускаю экзешник, из ресурса программа выгружается, но не работает. Читаю хеш, сравниваю с предыдущим значением и они, конечно же отличны. Но самое интересное и с ума сводящее для меня начинается далее. Я опять открываю проект и запускаю из него программу, но на этот раз уже и из проекта программа из ресурса выгружается битой. Как такое может быть если экзешник и проект используют каждый свой ресурс? Т.е. это происходит только после того, как я запустила экзешник. Исправляется этот баг в проекте элементарно - я просто меняю имя создаваемого файла в который пишется бинарный код -
0
|
||||||
|
|
|
| 11.09.2012, 02:31 | |
|
Мистика.
Как на счет сделать побайтовое сравнение (Total Commender, WinHex ...) и увидеть визуально - чем отличаются... -> сделать выводы. У меня тоже был битый - типы данных напутал, когда от себя писал. Но раз Вы скопировали в точности мой код... ![]() Дайте ехе-шник - попробую протестить у себя процесс компиляции. Добавлено через 2 часа 43 минуты А еще лучше оба EXE-шника - нормальный и битый (после распаковки).
0
|
|
|
Супер-модератор
|
|
| 11.09.2012, 11:45 | |
|
Выкладываю проектик. Писался очень быстро (вполне возможны плюшки).
Включает два модуля: strarter.exe - это запускающая программа (извлекает из своего тела и запускает notepad.exe) maker.exe - программа, заливающая notepad.exe в starter.exe При необходимости переделки: Транслируем starter Запускаем make.cmd Запускаем новый starter
2
|
|
|
Супер-модератор
|
|
| 11.09.2012, 12:28 | |
|
Дополнение: make не следует вызывать многократно (работать-то будет, но в теле exe будет копиться мусор). Впрочем, эту проблему можно решить (исходники открыты).
Проверил работоспособность под Касперским - работает...
1
|
|
|
13 / 13 / 0
Регистрация: 03.09.2012
Сообщений: 44
|
|
| 11.09.2012, 21:29 [ТС] | |
|
Dragokas, вот, во вложении два файла - один оригинальный, другой битый. Собрала маленький тестовый проектик, который только достает из ресурса этот exe. И ничего так и не получается, по прежнему, после компиляции экзешник оказывается битым.
0
|
|
|
13 / 13 / 0
Регистрация: 03.09.2012
Сообщений: 44
|
|
| 11.09.2012, 21:36 [ТС] | |
|
Catstail, очень очень интересный код. Жалко что коментариев нет, но объем небольшой, надеюсь разберусь. Как использовать его, понятно, но вот как он реализуется совершенно непонятно. А модуль Process.bas для контроля за процессом, так же использую в своем данном проекте, полезнейшая вещь, отдельное спасибо за него
1
|
|
|
|
||
| 12.09.2012, 07:31 | ||
|
Если внутри файла не производится проверка целостности, то обычно дописывание в конец исполняемого файла любого кол-ва байтов не влияет на работоспособность. P.S. Интересно, откуда этот 0 берётся? В любом случае, нам известен точный размер файла, так что можно из ресурсов записывать точное кол-во байт в этот файл.
0
|
||
|
|
|
| 12.09.2012, 11:03 | |
|
Catstail, при беглом просмотре я как-то и сам не понял, хотя все очень просто. Было бы неплохо с комментариями
![]() Но по какому алгоритму: как он при чтении комбинированного файла находит в нем позицию для чтения байтов размера 2-го файла (откуда берет размер первого)? Добавлено через ... Да, не поверил глазам. Из проекта работает нормально. Из скомпилированного EXE вытягивает ресурс и дописывает к файлу нули &H00 в таком количестве, чтобы заполнить 8 байт. (на скрине Exiftool версии 9.0.2)
0
|
|
|
Супер-модератор
|
|||||||||||
| 12.09.2012, 20:03 | |||||||||||
Сообщение было отмечено как решение
Решение
Вот комментированный код запуска файла, хранящегося в теле другого файла:
Некоторые дополнения: Код можно заметно облагородить. Во-первых, выводить не 4-х байтовую длину, а длину+сигнатуру (по которой можно понять, что файл уже "залит"; в этом случае старый можно изъять, новый залить.) Во-вторых, провести более тщательный анализ командной строки, добавить обработку ошибок и т.д. Ну, и, конечно, заливаемый файл можно: а) сжать каким-либо упаковщиком (экономия размера); б) зашифровать; в) сделать а) и б)
5
|
|||||||||||
|
|
||
| 12.09.2012, 23:38 | ||
|
Catstail, спасибо. Теперь разобрался. Значит длину 2-го файла позиционируем в конец скомбинированного. А Notepad.SSS с заманчивым расширением на самом деле является EXE-шником.
К примеру ExitCode для переменной RC сменить тип на Long. Мда, AVIRA не палит мою безобидную программу, ранее запакованную в ресурсы, зато теперь AntiVir и какой-то ByteHero не угодил. Попробую накинуть байтовый сдвиг. Добавлено через 15 минут О, нет это была нехорошая идея со сдвигом - теперь результат проверки 9/42 на вирустотале ,какие же дотошные эти антивирусы. Склеил EXE ради прикола с мейкером, который вообще не распаковует и не запускает - получил 10/42, хотя каждый файл сам по себе - 0/42, кроме мейкера. Вывод: лучше хранить файлы отдельно, если это исполнительный. Кстати результат с подсоединенным ExifTool более хороший - 1/42 = AntiVir.
1
|
||
|
|
||||||
| 13.09.2012, 18:02 | ||||||
|
Уважаемый Catstail показал в ветке форума как загрузить на лист Экселя и выгрузить exe-файл
https://www.cyberforum.ru/vba/... page2.html Я выгружаю и затем запускаю exe-файл так:
Спасибо за ответ..
0
|
||||||
|
Супер-модератор
|
||||||
| 13.09.2012, 18:17 | ||||||
|
В состав модуля process.bas входит процедура ExecPrg. Вызов:
ExecPrg ждет завершения модуля. Код завершения (если он формируется) доступен в RC.
1
|
||||||
|
|
||
| 13.09.2012, 18:39 | ||
|
0
|
||
| 13.09.2012, 18:39 | |
|
Помогаю со студенческими работами здесь
20
Почему программа требует больших ресурсов Запрос в процедуре требует параметры Биос требует сбросить параметры андервольтинга Можно ли использовать только exe приложения, не создавая для него установщик "lsaas.exe недостаточно системных ресурсов для вызова API" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|