Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 604
от 17.11.2006, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 371, Экспертов: 30
В номере:Вопросов: 2, Ответов: 3


Вопрос № 62231: Короче дело обстоит так: Написал я программу на fasm, которая убирает диск E: А вот как все вернуть обратно? .
Вопрос № 62257: Я заметил, что если создать маленькую (несколько строк кода и пару байт данных) программу, то TurboLink32 генерирует сравнительно большой EXE PE формата (раздувает сегменты массивами нулей). Размер EXE файла по умолчанию 4096 байт. Зачем он так делае...

Вопрос № 62.231
Короче дело обстоит так:
Написал я программу на fasm, которая убирает диск E:
А вот как все вернуть обратно?

Приложение:

Отправлен: 11.11.2006, 22:07
Вопрос задал: Шевчук Максим Юрьевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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!
Желаю удачи!
---------
Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!
Ответ отправил: Луковкин Николай Иванович (статус: 3-ий класс)
Ответ отправлен: 14.11.2006, 12:52


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное