• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите с Masm и Winapi

  • Автор темы FourtySeven
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FourtySeven

Может и мне поможите:

Программа должна запрашивать имя файла. Потом создавать файл с этим именем.

Проблема в том что
API-шная процедура ReadConsole возвращает имя в формате 'any.name',0Dh,0Ah. А CreateFile использует 'any.name',00h.

Для этого я написал процедуру StrCutter, которая заменяет первое вхождение символа 0Dh на 00h.
.data
text db 'bbb.txt',0Dh,0Ah
;Тут дескрипторы динамических библиотек и другие
;служебные переменные


.code
;Подключение библиотеки с моими процедурами, etc

MOV AX,sizeof text ;Толкаем в стек размер строки
PUSH AX
PUSH OFFSET text ;Толкаем адрес строки
CALL [StrCutterA] ; Запускаем мою процедуру получеам text='bbb.txt',0,0Ah


INVOKE CreateFile, ADDR text,GENERIC_WRITE,0,NULL,CREATE_ALWAYS, \
FILE_ATTRIBUTE_NORMAL,0 ; Здесь получаем ERROR_NOACCESS(000003E6)
;далее API-шные процедуры

MOV FhandleW,EAX
INVOKE CloseHandle,FhandleW

INVOKE ExitProcess,0

Смотрим скрины debugger-а.

link removed



link removed



link removed






Права все есть(Админ). Если использовать text db 'bbb.txt',0 все работает =\
Заранее благодарен за ответ.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!