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

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


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

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

Выпуск № 519
от 17.08.2006, 06:35

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


Вопрос № 51905: Привет All! У меня вопрос по работе с нуль терминальными строками: Я пишу консольное приложение которое читает строку из консоли в буфер который я переделил так : …. hBuffer equ byte ptr [ebp-8Ch] …. xor ebx,ebx push ebx<b...
Вопрос № 51907: Подскажи пожалуйста как будет в HEX виде выглядеть последовательность команд: ..

Вопрос № 51.905
Привет All!
У меня вопрос по работе с нуль терминальными строками:
Я пишу консольное приложение которое читает строку из консоли в буфер который я переделил так :
….
hBuffer equ byte ptr [ebp-8Ch]
….
xor ebx,ebx
push ebx
push nWrite
push nRead
push hBuffer
push hInput
call ReadConsole

где nWrite количество прочитанных байт. Так строка которая содержится в буфере не заканчивается нулём я пытаюсь его дописать в конце:
lea eax, hBuffer r
mov ecx, nWrite
_loop: inc eax
loopnz _loop
xor ebx,ebx
mov [eax],ebx
после этого пытаюсь передать указатель на, теперь уже, нуль терминальную строку в API функцию. Но функция возвращает ошибку :-( Соответственно вопрос в том как правильно преобразовать полученный буфер в нуль - терминальную строку?
Отправлен: 12.08.2006, 00:33
Вопрос задал: Шурыгин В.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Physicist
Здравствуйте, Шурыгин В.В.!

В функцию ReadConsole четвёртым параметром передается указатель на переменную типа DWORD, т.е. должно быть что-то вроде
push addr nWrite
а дописать ноль можно так:
lea eax,hBuffer
add eax,nWrite
mov byte ptr [eax],0
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 12.08.2006, 00:58


Вопрос № 51.907
Подскажи пожалуйста как будет в HEX виде выглядеть последовательность команд:

Приложение:

Отправлен: 12.08.2006, 01:10
Вопрос задал: Ilya_Ivanov (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Physicist
Здравствуйте, Ilya_Ivanov!

Это будет выглядеть так:
EA54CD4000
90
55
8BEC
.......
64A100000000
6A64
FF15xxxxxxxx (адрес KERNEL32.Sleep в таблице импорта)
EA1А124000
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 12.08.2006, 01:31


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное