Вопрос № 62231: Короче дело обстоит так:
Написал я программу на fasm, которая убирает диск E:
А вот как все вернуть обратно?
.Вопрос № 62257: Я заметил, что если создать маленькую (несколько строк кода и пару байт данных) программу, то TurboLink32 генерирует сравнительно большой EXE PE формата (раздувает сегменты массивами нулей). Размер EXE файла по умолчанию 4096 байт. Зачем он так делае...
Вопрос № 62.231
Короче дело обстоит так:
Написал я программу на fasm, которая убирает диск E:
А вот как все вернуть обратно?
Отвечает: n0name
Здравствуйте, Шевчук Максим Юрьевич!
Смотря чем является диск E
Если E - это раздел жёсткого диска, то invoke DefineDosDevice,2,'E:','DeviceHarddiskVolumeN', где N - это номер раздела ЖД по счёту, начиная с 1.
А если E - это сидиром, то invoke DefineDosDevice,2,'E:','DeviceCdRomN', где N - это номер сидирома по счёту, начиная с 0.
Ответ отправил: n0name (статус: 8-ой класс)
Ответ отправлен: 11.11.2006, 22:19 Оценка за ответ: 5
Вопрос № 62.257
Я заметил, что если создать маленькую (несколько строк кода и пару байт данных) программу, то TurboLink32 генерирует сравнительно большой EXE PE формата (раздувает сегменты массивами нулей). Размер EXE файла по умолчанию 4096 байт. Зачем он так делает и как уменьшить размер получаемого EXE файла ?
Отправлен: 12.11.2006, 06:08
Вопрос задал: Alexei_FAQ (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: IceWolf
Здравствуйте, Alexei_FAQ!
Дело в том, что по умолчанию компоновщик выравнивает файл по границе 512 байт, или 4кб(страница памяти в win32) в win32 версии, секции при отображении в память также выравниваются по границе 4кб. Делается это для ускорения загрузки файла в память. Для MASM можно попробовать использовать ключ /ALIGN для изменения значения выравнивания. Ещё можно попробовать слияние секций. Также почитайте про формат PE: <a href="http://www.wasm.ru/article.php?article=1002001">здесь</a> и <a href="http://www.cracklab.ru/art/?action=view&id=146">вот
здесь</a>, а ещё посмотрите <a href="http://www.wasm.ru/article.php?article=win32appbyhand">вот эту</a> статью. Надеюсь я вам помог.
С уважением IceW0|f.
--------- И да покарает пингвин мелких и мягких!
Ответ отправил: IceWolf (статус: 2-ой класс)
Ответ отправлен: 12.11.2006, 14:17
Отвечает: Луковкин Николай Иванович
Здравствуйте, Alexei_FAQ!
1.Если мы напишем с Вами программу и откомпелируем ее в компиляторе TASM, то объем ехе.файла получится к примеру - 559 байт,
2. Если совершенно эту же программу откомпелировать в компиляторе MASM - то размер ехе.файла будет уже другим - 545 байт,
3. А если эту прогу откомпелировать в компеляторе FASM - размер ехе.файла уже будет - 81 байт!
Замечаете разницу! Каждый компилятор работает по своему и соответственно у него будут другие команды, для того чтобы нашу программу превратить из asm.файла в соm. или ехе.файл!
4. Рекомендую - для того чтобы написать и откомпелировать прогу в среде DOS - всетаки использовать TASM, или MASM. А если пишете в среде Windows - FASM!
Желаю удачи!
--------- Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!