Перейти к содержанию

Сообщения от Программирование

Аватар пользователя
10 лет назад
Я не могу проверить правильность программы test.com. Плохо знаю ассемблер.
Напиши на C/Pascal/Delphi прожку, чтобы открывать файл, как текстовый, и копировать что куда надо. В случае с Pascal/Delphi это стандартные средства a-la readln и т.д. Я так уже делал, там ничего трудного.
Аватар пользователя
10 лет назад
Кстати, писать ничего не обязательно. Я сейчас проверил, Hex Editor в режиме Insert Mode вполне себе удаляет/вставляет байты.
Все файлы exe в Windows начинаются примерно одинаково:
Вложения 1
1 файл • Общий размер: 20,1 KB
Аватар пользователя
10 лет назад
Программа, которая должна копировать все байты, начиная с 33-его, должна быть малюсенькая, поэтому и ассемблер. И она правильно всё копирует! Проблема не в том, что она неправильно копирует, а в том, что даже после того как она всё правильно скопирует файлы Folder1\test.exe и Folder2\test.exe будут разные, хотя имеют одинаковое содержимое и одинаково называются.
Аватар пользователя
10 лет назад
Не верю. Позволь самому сравнить ;)
Разве что вот какие моменты:
После этого его открыли в текстовом редакторе и добавили ему в начало текстовую строку из 32 символов (с учётом символа перехода на новую строку перед содержимым exe-файла 33 символа).
Текстовый редактор -- слабо контролируемая штука. Она может и ещё символов добавить на своё усмотрение. Например, символ конца файла в собственно конец файла. Кроме того, ты говоришь, что там он добавил 33 символа (ведь новая строка -- тоже символ). А вырезаешь только 32 (33-й оставляешь). Так что может быть в этом ошибка.
Но в то, что после всех операций ты получил ровно тот же test.exe, что и был у тебя, не верю. Не-а.
В ответ пользователю Ment
Аватар пользователя
10 лет назад
Ment
Не верю. Позволь самому сравнить ;)

И я бы раньше не поверил :D
http://www.hermit.besaba.com/forment.zip

Добавлено через 19 минут
Попробуй ещё, кстати, открыть какой-нибудь exe-файл, хоть мой test.exe из Folder1 (он маленький) в Блокноте и потом куда-нибудь его сохранить в другой каталог из Блокнота с точно таким же именем и расширением. Увидишь, что он после этого не запустится, хотя и размер, и содержимое, и атрибуты, и даже имена у обоих этих файлов будут абсолютно одинаковые.
Аватар пользователя
10 лет назад
Ну, я знаю, что после блокнота не запустится. Но, если всё правильно делать (с помощью программы/Hex Editor'а), то запустится.
В данном случае Hex Editor однозначно показал, что файлы разные. Блокнот превратил нулевые символы (код 00) в пробелы (код 20). Поэтому ничего не работает. Вот и вся разгадка.
Могу приложить скриншоты.
Аватар пользователя
10 лет назад
Ну с блокнотом понятно, но программа test.com? Разве разные файлы test.exe в папках Folder1 и Folder2?
Аватар пользователя
10 лет назад
Разве разные файлы test.exe в папках Folder1 и Folder2?
Да. Остальное я не смотрел, если честно. Думаю, test.com работает правильно, а в test.txt -- ересь.
Аватар пользователя
10 лет назад
Вот, прикладываю скриншоты. Там те самые экзешники из разных папок, первый правильный, второй -- результат операций с блокнотом и test.com
Вложения 2
2 файл(ов) • Общий размер: 179,1 KB
Аватар пользователя
10 лет назад
Да, Ment! Ты абсолютно прав! Спасибо!

Добавлено через 2 часа 30 минут
Да test.com работает правильно, но Блокнот @ заменял 00h на 20h!!! и на вход test.com уже подавалось неправильное содержимое exe-файла!
Аватар пользователя
9 лет назад
Такой вопрос.
Запускается bat-файл и его вывод перенаправляется в текстовый файл. Ну скажем task.bat > result.txt. В этом файле командой start запускается программа. Пробовал даже перенаправлять все её потоки вывода в никуда 1>nul 2>nul. bat'ник завершает работу, но программа работает. И вот, пока её не закрыть, не получается удалить файл result.txt, а это очень нужно. В чём тут может быть проблема?
Аватар пользователя
9 лет назад
Не разбираюсь. Почему в программе нельзя в явном виде прописать условие её завершения, чтобы это было до закрытия батника?
Аватар пользователя
9 лет назад
Потому что нужно, чтобы она работала, а файл result.txt был удалён.
Аватар пользователя
9 лет назад
А закрыть файл в программе почему нельзя?..
В ответ пользователю Ment
Аватар пользователя
9 лет назад
Ment
А закрыть файл в программе почему нельзя?..
Да она его и не открывает. Но удалить почему-то не даёт.

Статистика

Приветствуем новейшего участника: recijeb

Сейчас на сайте 4 пользователей 1438 гостей