хз чем они отличаются и какой лучше.Прикручивать к нему надо чтото или можно уже кодить ? если несложно кинь примеры,ибо их там нету.С англ описанием проги справлюсь какнить : ).
Использую masm, удобен в плане наличия большого количества макросов, упрощающих разработку, а еще имеется в самом инсталляторе множество примеров, по которым можно разбираться.
Они настроены под разные компиляторы. -- Вот тебе пример просто досовстой программы. masm: Code: CSEG segment org 100h Start: mov ah,9h mov dx,offset String int 21h int 20h String db 'Fuck This World$', 0 CSEG ends end Start fasm: Code: use16 org 100h mov ah, 9h mov dx, String int 21h int 20h String db 'Fuck This World!$', 0 Если сложно разбираться в подобных IDE -- пиши пока что в блокноте, или Notepad++, как сказал slesh и компилируй вручную.
Не думаю, что пример досовской программы в наше время нужен кому-то) На масме простой месажбокс выглядит так: Code: .386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\macros\macros.asm uselib kernel32, user32 .code main: invoke MessageBox, 0, chr$("Hello, world!"), chr$("Caption"), 0 invoke ExitProcess, 0 end main (С использованием стандартных макросов.) Для удобства компиляции есть такое: http://kaimi.ru/2009/08/пакет-для-компиляции-masm32/
Ну если на то пошло -- то вот на фасме: Code: format pe gui 4.0 entry start include 'include/win32a.inc' include 'include/api/kernel32.inc' include 'include/api/user32.inc' start: invoke MessageBox, NULL, message, caption, MB_ICONERROR invoke ExitProcess,0 caption db 'Antichat', 0 message db 'Fuck This World',0 data import library kernel32,'kernel32.dll', user32, 'user32.dll' end data Только все равно начинать лучше с ДОСа, ИМХО.
Неужели ты думаешь, что я ошибся? Так страшнее сторится ,) UPD: К стати размер программы 1,00 КБ (1 024 байт)
Чет не пойму,че я непрально делаю ? копирую код примера или кидаю чужой пример в винасм,жму ctrl+8 и мне выдаёт execution failed. masm32 прикрутил с сайта http://www.masm32.com/masmdl.htm.Пути указал к бинарникам,инклуд папке и либ.
Как в MASM без подключения сторонних либ высокого уровня вывести десятичное число ? Да или вообще содержимое регистра ?!
Такой вот код имеется.Должен число вывести по идее: Code: .data numbers dd 50 message db "Total is %u",0 .data? buffer db 10 dup(?) .code start: invoke wsprintf,ADDR buffer,ADDR message,addr numbers invoke MessageBox,0,addr buffer,addr buffer,0 invoke ExitProcess,0 end start end Все этапы гут,вот только процесс падает сразу.
Возникла пара вопросов по одной из статей на васм: http_://www.wasm.ru/article.php?article=1001007 1) Что означают символы <> в объявлении структуры hitpoint POINT <> ? 2) Что ещё за нижнее/верхнее слова ?! Не привёл объяснений,мб кто поймёт. 3) Зачем вообще это and eax,0FFFFx,когда можно использовать mov eax,0 или я чего-то не понял...Поясните,пожалуйста( 4) Code: .IF MouseClick invoke lstrlen,ADDR AppName invoke TextOut,hdc,hitpoint.x,hitpoint.y,ADDR AppName,eax .ENDIF Только смутные догадки,зачем здесь нужна функция вычисления длины
Как при помощи OllyDbg 1.1 изменить функцию в dll-файле? Мне нужно внести некоторые изменения в один dll-файл. EntryPoint = 329C ImageBase = 10000000 Отладчик OllyDbg 1.1 должен остановиться на точке входа: VA = ImageBase + ImageBase = 1000329С но он останавливается на адресе 0097329С. Подскажите, откуда взялась цифра 97? А то я не могу понять, как попасть в одну из секций файла.
Ну дык в DLL Image Base может быть игнорирован. потому что в ней есть в большинстве случаев релоки. которые позволяют её грузить почти в любую область памяти. Тока системные некоторые длл загружаются по фиксированному адерсу. А все остальные могут по другим грузиться, в зависимости от занятости этих участков.
Я переходил при помощи Ctrl+G на разные секции, но ту которая нужна не могу найти. Может, кто-нибудь знает, как узнать виртуальный адрес, с которого начинается одна из секций в dll-файле? Где-нибудь в OllyDbg 1.1 можно посмотреть по каким адресам, какие секции загружены?
Ну вообще они загружены именно по тем адресам который прописаны в таблице секций. С учетом адреса загрузки модуля.