Вопрос № 57911: Здравствуйте ! А как можно удалить файл который сейчас работает. Ну я имею ввиду функцию, как в паскале paramstr(0)-текущий файл. А как на асме ? (под дос)...Вопрос № 57923: Здравствуйте ! Как можно прочитать не файл, а кластеры на которых он расположен ?...Вопрос № 57926: Здравствуйте ! Часто читая чужие исходники я вижу след. строки : db 32,1,0; или db 0fh,31h. Что означают эти
команды. И как их можно использовать ?...Вопрос № 57958: Доброго времени суток уважаемые эксперты.
Если на асме сделать программу, без использования прерываний 20h-2Fh(т.к. они относятся конкретно к ДОС), то будет ли она работать на Линуксе и если будет, то можно ли там использовать адреса видеобуфера(...Вопрос № 57977: Вопросы по отладчикам.
adf
1) Как в нем перейти к нужному оператору миную остальные ?
Нужная операция выполняется в "середине" программы, жманать f1 долго и утомительно.
2) Как посмотреть значения памяти, после определенно...
Вопрос № 57.911
Здравствуйте ! А как можно удалить файл который сейчас работает. Ну я имею ввиду функцию, как в паскале paramstr(0)-текущий файл. А как на асме ? (под дос)
Отправлен: 06.10.2006, 14:01
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Whiteman!
Под Виндой удаление самого себя невозможно, потому что файл отображается на память, поэтому будет открыт.
А вот под ДОС-ом вполне возможно, потому что файл просто считывается в память.
Имя файла запущенной программы лежит в сегменте окружения, после всех строк
Смотри приложение
Обрати внимание, если запустишь под отладчиком, там будет имя отладчика(!), не удали случайно!
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 06.10.2006, 14:50 Оценка за ответ: 5
Отвечает: Луковкин Николай Иванович
Здравствуйте, Whiteman!
Функция DOS 41h:Удаление файла
Вход: AH=41h
DS:DX=адрес ASCIZ-строки с полным именем файла
Выход: CF=0,если файл удален
CF=1 и AH=02h,если файл не найден;03h,если путь не найден;05h,если длступ запрещен
Удалить файл можно только после того, как он будет закрыт, иначе DOS продолжит выполнение записи в несуществующий файл, что может привести к разрушению файловой системы.
Функция DOS 3Eh:закрыть файл
Вход: AH=3Eh
BX=индентификатор
Выход: CF=0,если не произошла ошибка
CF=1 и AX=6,если неправильный индентификатор
--------- Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!
Отвечает: Николай Орлов
Здравствуйте, Whiteman!
Не думаю что это возможно, да и для чего это нужно????При записи в файл или при чтении,если удалить файл, то может пострадать файловая система.
--------- Если нет выхода ищу вход.
Ответ отправил: Николай Орлов (статус: 6-ой класс)
Ответ отправлен: 06.10.2006, 20:01
Вопрос № 57.923
Здравствуйте ! Как можно прочитать не файл, а кластеры на которых он расположен ?
Отправлен: 06.10.2006, 16:08
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Whiteman!
Перед тем, как делать подобное, надо сначала хорошенько изучить структуру FAT Например,
http://www.dvgu.ru/meteo/PC/fat32.htm
http://sizov.boom.ru/fat.htm
При желании, можно найти в Инете кучу статей
Только после этого можно приступать к работе на уровне кластеров
Получить начальный кластер можно, например, через SFT, как описано в
http://www.wasm.ru/print.php?article=1006004
Ну а дальше читаем FAT, и последовательно считываем цепочку кластеров...
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 06.10.2006, 16:47
Отвечает: Николай Орлов
Здравствуйте, Whiteman!
Для этого надо использовать функцию абсолютного чтения с диска.
AH=02H
Al - количество секторов для чтения.
CH - цилиндр
CL - сектор
DH - головка
DL - диск
ES:BX - сегмент смещение для буфера
int 13h
А так же:
AL - диск
CX - количество секторов для чтения
DX - начальный сектор для чтения.
DS:BX - буфер
Int 25h
С уважением,ENS.
--------- Если нет выхода ищу вход.
Ответ отправил: Николай Орлов (статус: 6-ой класс)
Ответ отправлен: 07.10.2006, 13:22
Вопрос № 57.926
Здравствуйте ! Часто читая чужие исходники я вижу след. строки : db 32,1,0; или db 0fh,31h. Что означают эти команды. И как их можно использовать ?
Отправлен: 06.10.2006, 16:15
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: ADSota
Здравствуйте, Whiteman!
db 32, 1, 0 - это не команда... Скорее часть ее...
db 0fh,31h - команда RDTSC - получить в EDX:EAX текущий счетчик тактов процессора пентиум...
Это делается из-за того, что не все команды поддерживаются ассемблером (например старый MASM, TASM)...
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 06.10.2006, 16:25
Отвечает: Николай Орлов
Здравствуйте, Whiteman!
Это запась байтов в удобное место, для каких-либо целей.Переменные, но только без имени. Допустим возврат коретки:
;можно string db 'hello',0Ah,0Dh,'world','$'
;а можно и так
string db 'hello'
db '0Ah,0Dh,
db 'world'
db 0Ah,0Dh,'$'
С уважением,ENS.
--------- Если нет выхода ищу вход.
Ответ отправил: Николай Орлов (статус: 6-ой класс)
Ответ отправлен: 07.10.2006, 13:23
Вопрос № 57.958
Доброго времени суток уважаемые эксперты.
Если на асме сделать программу, без использования прерываний 20h-2Fh(т.к. они относятся конкретно к ДОС), то будет ли она работать на Линуксе и если будет, то можно ли там использовать адреса видеобуфера(0B800h and 0A000h).
Заранее спасибо.
С уважением, ENS.
Отвечает: n0name
Здравствуйте, ENS!
2Fh и 2Eh не относятся к DOS, они относятся к прерываниям Windows.
Смотря какая, без WinAPI - скорее всего. Адрес видеобуфера можно использовать.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 06.10.2006, 20:24
Вопрос № 57.977
Вопросы по отладчикам.
adf
1) Как в нем перейти к нужному оператору миную остальные ?
Нужная операция выполняется в "середине" программы, жманать f1 долго и утомительно.
2) Как посмотреть значения памяти, после определенной операции в память должны быть загружены данные, я хочу посмотреть их и удостоверится. По какому адресу они должны загрузится я знаю (а собственно по другому быть и не могло наверное).
По CV.
Почему codeview не хочет работать с *.com и вылетает с ошибкой no symbol handler found?
Отправлен: 06.10.2006, 23:32
Вопрос задал: Torsten (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Луковкин Николай Иванович
Здравствуйте, Torsten!
1.Вот то что я знаю про отладчик AfdPro:
а)AfdPro управляется командами с клавиатуры. Место, куда вводятся команды, помечено в окне отладчика значками CMD>. Самая важная команда отладчика - QUIT (выход). Набрав ее и нажав Enter, мы покидаем отладчик.
в)Клавиша F1- с ее помощью можно попасть внутрь процедуры и посмотреть, как выполняется каждая ее инструкция.
г)Клавиша F2- выполняет программу по шагам, причем вызов и возврат из процедуры считается одним шагом.
г)Клавиши F7,F8 - позволяют забираться в различные окна отладчика(движение вверх-вниз) и F9,F10 (вправо-влево). Попав в окно, позволяющее увидеть память компьютера, можно изменить не только сегментный регистр, но и любой байт. Память можно просматривать в любом напрвлении с помощью клавиш - стрелки вверх-вниз.
д)Результаты работы программы можно увидеть, переключаясь между окном отладчика и экраном компьютера с помощью клавиши F6. Но прежде необходимо набрать в окне отладчика команду mo a on и нажать Enter.
е)Большая часть его команд описана в файле помощи, вызываемой клавишей F4.
2. Извини, но с отладчиком CV мне не приходилось работать, но зато про OllyDbg я могу рассказать тебе все что хочешь, т.к. это мой самый любимый отладчик.
Удачи!
--------- Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!
Ответ отправил: Луковкин Николай Иванович (статус: 2-ой класс)
Ответ отправлен: 07.10.2006, 23:25 Оценка за ответ: 5 Комментарий оценки: Спасибо за столь развернутый ответ, я во всем разобрался и все что нужно проверил. Ну и конечно зря вы так все расписали, можно было кратенько, время ваше жалко. По поводу Olly мне этот отладчик тоже понравился, когда начну разбиратся 32-разрядными приложениями буду им пользоватся. Он на 16-разрядные не рассчитан, а пока я только с ними. По книге все
таки изучаю асм.
PS. Вообще странно видеть такой хороший ответ от эксперта 1-го класса.