23.08.2017, 10:58 [+3 UTC]
в нашей команде: 2 099 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
21.08.2017, 17:42

Последний вопрос:
22.08.2017, 10:37

Последний ответ:
23.08.2017, 07:57

Последняя рассылка:
22.08.2017, 20:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
18.04.2017, 09:53 »
svrvsvrv
Большое спасибо за консультацию и ссылку на фильм. [вопрос № 190896, ответ № 274918]
07.10.2009, 14:16 »
Анна Зорина
Просто великолепно! Спасибо большое!!! [вопрос № 173006, ответ № 255117]
17.02.2012, 15:30 »
Николай Мироненко
Спасибо smile [вопрос № 185456, ответ № 269994]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 341
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 318
quirck
Статус: 1-й класс
Рейтинг: 46

Перейти к консультации №:
 

Консультация онлайн # 191219
Раздел: • Assembler
Автор вопроса: Caesar (Посетитель)
Отправлена: 12.07.2017, 08:18
Поступило ответов: 0

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

Код (Assembler) :: выделить код
.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


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

Код (Assembler) :: выделить код
CSEG segment
org 100h
Begin:
       mov dx, offset Message
       mov ah,9
       int 21h
       int 20h	
Message db 'Hello!$'

CSEG ends
end Begin


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

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

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

Красный цвет, это цвет модератора.
Добавлен тег CODE.
--------

• Отредактировал: Зенченко Константин Николаевич (Модератор)
• Дата редактирования: 12.07.2017, 09:33

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 191219

Зенченко Константин Николаевич
Модератор

ID: 31795

# 1

 +1 
 
= общий = | 12.07.2017, 09:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата: 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, Книги

• Отредактировал: Зенченко Константин Николаевич (Модератор)
• Дата редактирования: 12.07.2017, 10:00

Зенченко Константин Николаевич
Модератор

ID: 31795

# 2

 +1 
 
= общий = | 12.07.2017, 13:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Что у Вас получилось?

Caesar
Посетитель

ID: 401251

# 3

= общий = | 12.07.2017, 14:13 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Зенченко Константин Николаевич:

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

За первый ответ большое спасибо.

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 4

 +1 
 
= общий = | 12.07.2017, 14:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Зачем гуглить, ВЫ уже там, где можно все узнать smile
Перекиньте link.exe из папки binr в bin

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 5

= общий = | 12.07.2017, 14:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

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

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


-----
 Прикрепленный файл (кликните по картинке для увеличения):

Зенченко Константин Николаевич
Модератор

ID: 31795

# 6

 +1 
 
= общий = | 12.07.2017, 14:50 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

В папке BIN, у Вас нет LINK.exe, смотрите он должен быть в соседних папках. Скопируйте его в BIN.
Сам пытался установить, чет не получилось.
Вот новая ссылка, у меня установилось.

Зенченко Константин Николаевич
Модератор

ID: 31795

# 7

 +1 
 
= общий = | 12.07.2017, 14:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Нужно добавить ключ /АТ в команду, т.к. код написан под модель Tiny, и должен появится файл СОМ

Caesar
Посетитель

ID: 401251

# 8

= общий = | 12.07.2017, 14:57 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

скачал, установил, та же история, то же сообщение
Борьба продолжается

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 9

= общий = | 12.07.2017, 15:07 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

/АТ smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 10

= общий = | 12.07.2017, 15:23 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Разгадка была близка))) http://www.codenet.ru/progr/asm/newbee/lesson13.php я уже начал капать в правильном направлении)))
Спасибо большое. Дело в параметрах.

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



Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 11

 +1 
 
= общий = | 12.07.2017, 15:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

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

Чего-то мне кажется, что писать программы на Ассемблере Вам вряд ли понадобится.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 12

= общий = | 12.07.2017, 15:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

конкретно хотелось бы стать вирусным аналитиком. Посмотрел Ollydbg, idapro там же сплошной ассемблер.

Некоторые требования по вакансиям вирусного аналитика:
Знание Assembler x86 на уровне написания больших проектов;
Хорошее знание C/C++;
Владение инструментами OllyDBG, Hiew, IDA;
Знание архитектуры Windows, DOS структуры NE- и PE-файлов;
Технический английский.

• Отредактировал: Caesar (Посетитель)
• Дата редактирования: 12.07.2017, 15:54

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 13

 +2 
 
= общий = | 12.07.2017, 15:58 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Это да, копаться в программах без знания команд Ассемблера никак smile
Сейчас 16-битный Ассемблер неактуален, но знать не мешает, для общего развития.
Изучайте 32-(64-) битный Ассемблер.
Пробуйте писать программы, смотрите, как они работают (под отладчиком)
Смотрите под отладчиком другие программы.

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

Для начала более, чем достаточно.
Вирусный аналитик должен знать все "потроха" системы. И не только Windows, кстати.
Вы пока только в начале пути...

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 14

= общий = | 12.07.2017, 16:00 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата:
Некоторые требования по вакансиям вирусного аналитика:
Знание Assembler x86 на уровне написания больших проектов;
Хорошее знание C/C++;
Владение инструментами OllyDBG, Hiew, IDA;
Знание архитектуры Windows, DOS структуры NE- и PE-файлов;
Я сказал примерно то же самое smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 15

= общий = | 12.07.2017, 16:10 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Большое спасибо! Я теперь у Вас постоянный гость smile

• Отредактировал: Caesar (Посетитель)
• Дата редактирования: 12.07.2017, 16:10

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 16

 +1 
 
= общий = | 12.07.2017, 16:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата: волк из "Жил-был пёс"
Ты заходи, если что
smile smile smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Зенченко Константин Николаевич
Модератор

ID: 31795

# 17

 +1 
 
= общий = | 12.07.2017, 16:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата: Caesar
конкретно хотелось бы стать вирусным аналитиком.

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

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14636 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн