• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Помогите с 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 все работает =\
Заранее благодарен за ответ.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab