Консультация № 191219
12.07.2017, 08:18
0.00 руб.
12.07.2017, 09:33
0 17 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Здравствуйте, начал изучать ассемблер по Калашникову "Ассемблер - это просто".
masm 6.11 установить не получилось (разбираюсь), если есть подробная инструкция, и корректные ссылки для скачивания, буду благодарен.
Пока установил "dos box" и MASM 8086 (https://www.youtube.com/watch?v=5NmO9YPU0Xc), на нем "hello world" выглядит:

[code lang=asm].MODEL SMALL
.STACK 100H
.DATA
MSG DB 'HELLO!$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,9
INT 21h
MOV AH,4CH
INT 21h
MAIN ENDP
END MAIN[/code]

ниже "hello world" из Калашникова

[code lang=asm]CSEG segment
org 100h
Begin:
mov dx, offset Message
mov ah,9
int 21h
int 20h
Message db 'Hello!$'

CSEG ends
end Begin[/code]

И в первом и во втором случае masm, но пишется по разному в связи с этим возник ряд вопросов:
1. Как узнать в какой версии как писать?
2. Тот же вопрос по Fasm и Tasm.
3. Где взять документацию если в ней эти моменты раскрыты (ссылки для скачивания, ресурсы)?

Прим.На Fasm нашел(http://flatassembler.net/docs.php)

P/s. С Уважением Евгений!

Обсуждение

давно
Старший Модератор
31795
6196
12.07.2017, 09:19
общий
12.07.2017, 10:00
Адресаты:
Цитата: Caesar
masm 6.11 установить не получилось (разбираюсь),

Инструкция+ссылка на пакет masm

Цитата: Caesar
И в первом и во втором случае masm, но пишется по разному

Можно посмотреть у Зубкова:
Полное описание сегмента
имя_сегмента segment readonly выравн. тип разряд 'класс'
. . .
имя_сегмента ends
Имя сегмента - метка,

или сокращенное
имя_сегмента segment
. . .
имя_сегмента ends
Имя сегмента - метка,

Описание модели памяти:
.model модель,язык,модификатор
где модель - одно из следующих слов:
TINY - код, данные и стек размещаются в одном и том же сегменте размером до 64 Кб. Эта модель памяти чаще всего используется при написании на ассемблере небольших программ;
SMALL - код размещается в одном сегменте, а данные и стек - в другрм (для их описания могут применяться разные сегменты, но объединенные в одну группу). Эту модель памяти также удобно использовать для создания программ на ассемблере;
COMPACT - код размещается в одном сегменте, а для хранения данных могут использоваться несколько сегментов, так что для обращения к данным требуется указывать сегмент и смещение (данные дальнего типа);
MEDIUM - код размещается в нескольких сегментах, а все данные - в одном, поэтому для доступа к данным используется только смещение, а вызовы подпрограмм применяют команды дальнего вызова процедуры;
LARGE и HUGE — и код, и данные могут занимать несколько сегментов;
FLAT - то же, что и TINY, но используются 32-битные сегменты, так что максимальный размер сегмента, содержащего и данные, и код, и стек, - 4 Мб.

после этого доступны упрощенные директивы описания сегментов
.code
.stack размер
.data


Цитата: Caesar
1. Как узнать в какой версии как писать?

Версии есть под DOS(до 6.13 включительно) и Windows(6.14+)
Цитата: Caesar
2. Тот же вопрос по Fasm и Tasm.

Fasm все вресии могут создавать код как под DOS, так и Windows;
Tasm(до 4.хх) - DOS, Tasm(5.00) - Windows.
Синтаксис Fasm отличается от Tasm и Мasm, у последних одинаковый и он описан в большинстве книг.
В пакете Fasm есть инструкция по отличиям синтаксиса.
Цитата: Caesar
Где взять документацию если в ней эти моменты раскрыты (ссылки для скачивания, ресурсы)?

Tasm под DOS, Книги
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
12.07.2017, 13:54
общий
Адресаты:
Что у Вас получилось?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401251
75
12.07.2017, 14:13
общий
Адресаты:
Установил. Но запустить программу именно с книги не получается. Объектный файл создался, следовательно синтаксических ошибок нет (я правильно понимаю?).
Дальше в дело вступает линковщик и я осмелюсь предположить, что именно на этом этапе возникают ошибки (приложение).
Сейчас гуглю, но пока не получается.

За первый ответ большое спасибо.
Прикрепленные файлы:
e5e0a4aeca3f720988c015de68ad7a21.png
давно
Посетитель
7438
7205
12.07.2017, 14:36
общий
Адресаты:
Зачем гуглить, ВЫ уже там, где можно все узнать
Перекиньте link.exe из папки binr в bin
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401251
75
12.07.2017, 14:47
общий

Я уже так сделал)))))

Но ошибки не здаются так просто.
Линковщик выдал ошибку, exeшник все равно появился.
если его запустить то выходит всплывающее окно
Если нажать пропустить, то идет вывод всего сегмента кода?
А если закрыть то ничего не происходит.


Прикрепленные файлы:
67428f915c856b586a46e501ead7ab7d.png
давно
Старший Модератор
31795
6196
12.07.2017, 14:50
общий
Адресаты:
В папке BIN, у Вас нет LINK.exe, смотрите он должен быть в соседних папках. Скопируйте его в BIN.
Сам пытался установить, чет не получилось.
Вот новая ссылка, у меня установилось.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
12.07.2017, 14:56
общий
Нужно добавить ключ /АТ в команду, т.к. код написан под модель Tiny, и должен появится файл СОМ
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401251
75
12.07.2017, 14:57
общий
скачал, установил, та же история, то же сообщение
Борьба продолжается
давно
Посетитель
7438
7205
12.07.2017, 15:07
общий
Адресаты:
/АТ
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401251
75
12.07.2017, 15:23
общий
Разгадка была близка))) http://www.codenet.ru/progr/asm/newbee/lesson13.php я уже начал капать в правильном направлении)))
Спасибо большое. Дело в параметрах.

Я хочу переквалифицироваться на реверс инженера.
Последовательность моих действий, что за чем учить?



давно
Посетитель
7438
7205
12.07.2017, 15:32
общий
Адресаты:
Во-первых, сначала мы говорили об 16-битном Ассемблере (ДОС), а привели ссылку по 32-битному (Windows).
Это разные Ассемблеры!
Во-вторых, инженер - понятие весьма широкое. Скажите нам, чем именно Вы хотите заниматься.

Чего-то мне кажется, что писать программы на Ассемблере Вам вряд ли понадобится.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401251
75
12.07.2017, 15:38
общий
12.07.2017, 15:54
конкретно хотелось бы стать вирусным аналитиком. Посмотрел Ollydbg, idapro там же сплошной ассемблер.

Некоторые требования по вакансиям вирусного аналитика:
Знание Assembler x86 на уровне написания больших проектов;
Хорошее знание C/C++;
Владение инструментами OllyDBG, Hiew, IDA;
Знание архитектуры Windows, DOS структуры NE- и PE-файлов;
Технический английский.
давно
Посетитель
7438
7205
12.07.2017, 15:58
общий
Адресаты:
Это да, копаться в программах без знания команд Ассемблера никак
Сейчас 16-битный Ассемблер неактуален, но знать не мешает, для общего развития.
Изучайте 32-(64-) битный Ассемблер.
Пробуйте писать программы, смотрите, как они работают (под отладчиком)
Смотрите под отладчиком другие программы.

Кроме, собственно, команд, способов адресации, защитных механизмов,
всего того, чем заведует процессор, необходимо знать:
1) форматы разных файлов, в первую очередь EXE;
2) структуру программ, написанных на языках высокого уровня;
3) структуру ОС;
4) взаимодействие программ с системой;
5) механизмы взаимодействия компонент системы;
6) ориентироваться в алгоритмах шифровки/дешифровки;

Для начала более, чем достаточно.
Вирусный аналитик должен знать все "потроха" системы. И не только Windows, кстати.
Вы пока только в начале пути...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
12.07.2017, 16:00
общий
Некоторые требования по вакансиям вирусного аналитика:
Знание Assembler x86 на уровне написания больших проектов;
Хорошее знание C/C++;
Владение инструментами OllyDBG, Hiew, IDA;
Знание архитектуры Windows, DOS структуры NE- и PE-файлов;
Я сказал примерно то же самое
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401251
75
12.07.2017, 16:10
общий
12.07.2017, 16:10
Большое спасибо! Я теперь у Вас постоянный гость
давно
Посетитель
7438
7205
12.07.2017, 16:25
общий
Адресаты:
Цитата: волк из "Жил-был пёс"
Ты заходи, если что
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Старший Модератор
31795
6196
12.07.2017, 16:28
общий
Адресаты:
Цитата: Caesar
конкретно хотелось бы стать вирусным аналитиком.

Похвально.
Кроме выше сказаного:
1)Вы должны начать думать как вирус, точнее как вирусописатель;
2)Обратите внимание на книги Криса Касперски, в них есть много примеров "реальных" взломов с шифрованием, обхода различных Анти-приемов и ...;
3)Обратите внимание на книги по отладке без исходных кодов;
4)Набирайтесь опыта работы с различными дизассемберами, отдладчиками, НЕХ-редакторами, НЕХ-вьюверами.
5)Пишите свои программы на ЯВУ и ломайте их, прывыкайте к чудачествам компиляторов.

Думаю, что этой маленькой программы максимум Вам пока будет достаточно.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа