eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› MUltimate Assembler
<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
Посл.ответ Сообщение


Ранг: 534.6 (!)
Статус: Uploader
retired

Создано: 14 сентября 2009 09:42 · Поправил: BoRoV New!
Цитата · Личное сообщение · #1

Плаг для ольки, позволяющий добавлять/заменять в дизасме и соответствено в проге асм код даже выходящий за пределы если он вставляется посреди имеющегося кода, при этом все адреса у call, jcc, и прочего пересчитыются с учетом этой новой вставки.

// З.Ы. Было пять скринов пошаговой инструкции его использования, но автор почему-то их удалил
// З.Ы.2. Автор с россии, а че прошел мимо нас... хз



v.0.1
Первый релиз, в нем было несколько багов

v0.2
- Supports data disassembling and assembling as a C-style string.
- Suggests you to create a backup before disassembling, so that the modifications will be visible.
- Help added.
- Minor fixes.

v.0.3
- Disassembles external jumps and calls.
- Added an options dialog.
- Fixes a couple of crashes.
- A right click menu to make LCF-AT happy

That's all, I've completed my ToDo list

Кажется все он пофиксил, т.к. все говорили что те баги что были пофиксены

rammichael.com/

Ранг: 271.6 (наставник)
Статус: Модератор
CrackLab

Создано: 23 мая 2011 06:50 New!
Цитата · Личное сообщение · #2

RaMMicHaeL
вот Delete еще бы...

Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 23 мая 2011 19:02 New!
Цитата · Личное сообщение · #3

SReg
Close=Delete

| Сообщение посчитали полезным: SReg


Ранг: 14.7 (новичок)
Статус: Участник

Создано: 28 сентября 2011 22:12 New!
Цитата · Личное сообщение · #4

--> MUltimate Assembler <-- v1.5, встречайте!
Новинки:

Анонимные метки
Обозначаются как "@@", @b (или @r) используется для предыдущей анонимной метки, @f для следующей, как в FASM-е.

Пример:
Code:
  1.     JMP SHORT @f
  2.     NOP ; пропускаем
  3.  
  4. @@:
  5.     JMP SHORT @b ; (или @r) бесконечный цикл


Сохранение в файл, загрузка из файла


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

Использование одним набором вкладок с несколькими версиями OllyDbg
В ollydbg.ini есть опция под названием "tabs_path", которая позволяет задать путь, где будут храниться файлы с кодом вкладок.
С этой версии, можно задать нескольким версиям OllyDbg один и тот же путь, и они будут работать с тем же набором вкладок.
Так же можно открыть несколько окошек плагина, изменить в одном из них набор вкладок, и при переходе на другое окошко изменения вступят в силу.

Внимание! Если вы обновляетесь со старой версии и хотите сохранить ваши вкладки:
1. Откройте ollydbg.ini, найдите секцию плагина, и вырежьте следующие опции: tabs_counter, tabs_last_open, tabs_file[x].
2. Откройте папку, которая задана в опции "tabs_path", и создайте в ней файл "tabs.ini".
3. В этом файле создайте секцию "[tabs]" и вставьте вырезанные опции.

| Сообщение посчитали полезным: HandMill, Bronco, MarcElBichon, Konstantin, SReg, vnekrilov, kioresk, daFix, Gideon Vi, SVLab, drone, DimitarSerg, obfuskator, Valemox, _ruzmaz_, Satanael, d0wn, gsx3000, Skino


Ранг: 1.3 (гость)
Статус: Участник

Создано: 3 октября 2011 09:51 New!
Цитата · Личное сообщение · #5

RaMMicHaeL пишет:
Анонимные метки
Обозначаются как "@@", @b (или @r) используется для предыдущей анонимной метки, @f для следующей, как в FASM-е.

А в двух словах - это что?


Ранг: 515.2 (!)
Статус: Участник
Победитель турнира 2010

Создано: 3 октября 2011 10:16 New!
Цитата · Личное сообщение · #6

stasionok пишет:
А в двух словах - это что?


Из приведенного ниже цитаты примера все должно быть придельно ясно.

Code:
  1.     JMP SHORT @f
  2.     NOP ; пропускаем
  3.  
  4. @@:
  5.     JMP SHORT @b ; (или @r) бесконечный цикл


Анонимная (без имени) метка @@ помечает некий адрес (команду) в программе.
Переход вперед (forward) на нее осуществляется как JХХ SHORT @f
Переход назад (backward) осуществляется как JХХ SHORT @b.
Внимание!! ближайший к метке переход или переход на ближайшую анонимную метку.

Если снова не понятно, то смотри FASM.

| Сообщение посчитали полезным: stasionok



Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 3 октября 2011 11:20 New!
Цитата · Личное сообщение · #7

Тут фасм не при чем, оно и в масм так.

Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 3 октября 2011 12:20 New!
Цитата · Личное сообщение · #8

OKOB
Переход на такую метку обязательно должен быть short?

RaMMicHaeL
Надо бы уже хелп по работе с вкладками и файлами , не сразу разобрался, что там и как.
Может стоит отказаться от олиного ini и писать всё в свой?


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 3 октября 2011 13:12 New!
Цитата · Личное сообщение · #9

Выдержка из хелпа masm32:
Local Code Labels

Syntax: [instruction] @F
.
.
.
@@: [statement]
.
.
.
[instruction] @B

Description:

The @@: label defines a local code label, which is in effect until
the next instance of @@:. The @F and @B operands can be used in
conditional and unconditional jump statements to jump to the next

and previous @@: label respectively.

The @@: label is useful for defining a nearby jump point where a
full label is not appropriate.

Т.е. про длинну ничего не сказано. Я проверил, jcc может быть как short так и long, как в FASM не знаю.

| Сообщение посчитали полезным: stasionok, SVLab



Ранг: 515.2 (!)
Статус: Участник
Победитель турнира 2010

Создано: 3 октября 2011 15:29 · Поправил: OKOB New!
Цитата · Личное сообщение · #10

SVLab пишет:
Переход на такую метку обязательно должен быть short?


Вероятно RaMMicHaeL привел такой пример потому, что плаг предназначен для вставки коротких фрагментов кода, где и шорта достаточно. Но вероятно обрабатывается в любом случае. За уточнением этого вопроса к автору.

| Сообщение посчитали полезным: SVLab


Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 3 октября 2011 18:53 New!
Цитата · Личное сообщение · #11

Проверил тоже, переход может быть и длинным.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 18 октября 2011 14:12 New!
Цитата · Личное сообщение · #12

takerZ пишет:
Запрашиваем поддержку горячих клавиш:

Сделаем.

takerZ пишет:
• что-нибудь для сборки, акселератор Alt + A почему-то не работает;

Странно, все время им пользуюсь.

SVLab пишет:
Надо бы уже хелп по работе с вкладками и файлами , не сразу разобрался, что там и как.
Может стоит отказаться от олиного ini и писать всё в свой?

А что там не ясно?
Насчет писать в свой файл, в последней версии я так и сделал, в основном для того чтобы две разные сборки ольки могли использовать один набор вкладок.

SVLab пишет:
Переход на такую метку обязательно должен быть short?

Нет. short я использовал потому, что без него пишется длинная версия прыжка, 5-байтовая.
А вообще у плагина очень простая логика меток: они просто заменяются адресом, и команда передается ассемблеру ольки.
Можно не только использовать длинные прыжки, но и подобные вещи:
Code:
  1.     MOV DWORD [@f], @f
  2.     XOR EAX, @f
  3.  
  4. @@:
  5.     DD @b


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 18 октября 2011 14:55 New!
Цитата · Личное сообщение · #13

0_o у ольки же есть оптимизатор, вы им не пользуетесь?

Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 18 октября 2011 21:56 · Поправил: SVLab New!
Цитата · Личное сообщение · #14

RaMMicHaeL пишет:
А что там не ясно?

Ну когда разберешься, все более-менее ясно . Но не интуитивно (вернее, не как в большинстве программ). Например, если открыть вкладку из файла, создается ее копия, и работаем с копией. Если вкладка с таким именем уже есть, копия будет переименована (добавится (2)). С одной стороны, есть некоторая гарантия, что при закрытии вкладки изменения не будут потеряны, но с другой, только в том случае, если не забыл сохранить в файл
RaMMicHaeL пишет:
Насчет писать в свой файл, в последней версии я так и сделал, в основном для того чтобы две разные сборки ольки могли использовать один набор вкладок.

Так в свой пишутся только вкладки, все остальные параметры в олин.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 18 октября 2011 23:51 · Поправил: RaMMicHaeL New!
Цитата · Личное сообщение · #15

PE_Kill пишет:
0_o у ольки же есть оптимизатор, вы им не пользуетесь?

Пользуюсь, но с прыжками, использующие метки, есть такая ситуация:
Code:
  1. <401000>
  2.  
  3.     JMP @next
  4.     nop
  5.     ; nop, nop, nop, ...
  6. @next:


Для того, что-бы узнать адрес метки @next, нужно посчитать размер кода, а что-бы узнать размер кода, нужно знать адрес метки @next для определения длины прыжка.
Я с решением этой задачи сильно не возился: плагин всегда пишет длинный прыжок, а если нужен короткий, надо самостоятельно писать SHORT.

SVLab пишет:
вернее, не как в большинстве программ

ОК, согласен. Напишу пару строк в хелпе.

SVLab пишет:
Так в свой пишутся только вкладки, все остальные параметры в олин.

А чем, собственно, свой ini файл лучше чем ollydbg.ini?

Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 19 октября 2011 01:52 New!
Цитата · Личное сообщение · #16

RaMMicHaeL пишет:
А чем, собственно, свой ini файл лучше чем ollydbg.ini

А какой смысл рассовывать параметры по разным местам? Проще ведь посмотреть всё в одном файле, чем выискивать в олином (хотя там особо и лазить нечего). Ну или, допустим, мне надо перенести настройки только плагина на другой комп или в другую олю, или после переустановки системы или оли восстановить. Просто ради удобства.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 4 ноября 2011 05:11 New!
Цитата · Личное сообщение · #17

takerZ пишет:
Запрашиваем поддержку горячих клавиш:


Сделано в v1.5.1, --> Link <--

• закрытие вкладки;
Ctrl+W, Ctrl+F4
Закрытие всех вкладок: Ctrl+Alt+Shift+W

• перемещение фокуса между закладками (лучше вперед);
Ctrl+PgDn/Ctrl+PgUp, Ctrl+Tab/Ctrl+Shift+Tab

• переименование текущей закладки;
F2, Ctrl+R

• создание новой закладки;
Ctrl+N, Ctrl+T

• Сохранение текущего документа;
Ctrl+S

• Открытие документа;
Ctrl+O

• что-нибудь для переключения режима номеров строк;
Ctrl+Alt+Insert

• можно что-нибудь для инициации окна, а то F10 + M не очень удобно тянуться, да и акселератор может переехать какой-нибудь другой плагин, который тоже пишется в это меню, вроде memdump'а.
Ctrl+Shift+M

| Сообщение посчитали полезным: SReg, vnekrilov, DimitarSerg, obfuskator, _ruzmaz_, Gideon Vi, Valemox, kioresk, Konstantin, HandMill, ClockMan


Ранг: 42.9 (посетитель)
Статус: Участник

Создано: 18 ноября 2011 22:22 New!
Цитата · Личное сообщение · #18

RaMMicHaeL
Предлагаю изменить названия меток при дизассемблировании кода, точнее добавить в имя метки номер(имя) вкладки, в которой откроется дизассемблируемый код.

Т. е. вместо @L00000001, @L00000002, ... будет что то типа @L_номер вкладки_00000001, @L_номер вкладки_00000002, ...

Либо предусмотреть такое изменение нумерации меток в настройках плагина.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 2 декабря 2011 05:23 New!
Цитата · Личное сообщение · #19

Не знаю, чем оно лучше, но если очень хочется, пожалуйста.

{ Атач доступен только для участников форума } - multiasm.rar

| Сообщение посчитали полезным: SVLab, Konstantin


Ранг: 42.9 (посетитель)
Статус: Участник

Создано: 2 декабря 2011 21:10 New!
Цитата · Личное сообщение · #20

RaMMicHaeL пишет:
Не знаю, чем оно лучше

Если обьединять дизассемблированый код с разных вкладок, получается совпадение имен меток.
Это как с горячими клавишами, мелочь, а приятно. Можно конечно и в редакторе переименовывать по шаблону.(я так и делал)

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 3 декабря 2011 14:19 New!
Цитата · Личное сообщение · #21

Версия 1.6:


Брать --> тут <--.

takerZ пишет:
Сконпелируйте под последний иммунити и будет оверкилл. Вот правленный пдк:

Не такой то он и правленный.
Скачал я этот иммунити, ставлю плагин, вроде работает. Делаю дисасм, выдает ошибку памяти.
Подебагил иммунити олькой , оказалось, что у них структуры выравнены по 4 байта, а не 1 как у ольки.
Т.е. вместо #pragma pack(1) должно быть #pragma pack(4), а еще лучше:
Code:
  1. #pragma pack(push, 4)
  2. /*...*/
  3. #pragma pack(pop)

| Сообщение посчитали полезным: SVLab, huckfuck, Konstantin, _ruzmaz_, Gideon Vi, vnekrilov


Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 3 декабря 2011 15:38 New!
Цитата · Личное сообщение · #22

RaMMicHaeL пишет:
Версия 1.6:

О, вот это то, что надо. Когда-то делал дизассембер для Радио-86РК, который подставлял в имена меток адреса. Голосую за лучший плагин десятилетия в плане функционала и поддержки

Ранг: 42.9 (посетитель)
Статус: Участник

Создано: 4 декабря 2011 01:25 · Поправил: Konstantin New!
Цитата · Личное сообщение · #23

RaMMicHaeL
Круть!

Ранг: 271.6 (наставник)
Статус: Модератор
CrackLab

Создано: 10 августа 2012 01:30 · Поправил: SReg New!
Цитата · Личное сообщение · #24

MUltimate Assembler v1.7
--> Link <--
челлендж --> Link <--

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 августа 2012 12:20 New!
Цитата · Личное сообщение · #25

Новое в версии 1.7:

Относительные виртуальные адреса
Можно писать адреса относительно базы модуля. Удобно если у модуля есть релокации и его база не постоянна.

Пишется оно так:

Code:
  1. <$module1.1000>
  2.  
  3.     CALL $$1100 ; то же, что и CALL $module1.1100
  4.     CALL $module2.1000


Вот, например, блокнот, загружен по разным базам:


Закомментированные комментарии
Некоторые комментарии полезны в редакторе, но мешают в OllyDbg, например название функции или параметры.
Можно использовать двойную точку с запятой (;;) в таких ситуациях.



Разные улучшения и фиксы


Качать --> тут <--.

| Сообщение посчитали полезным: _ruzmaz_, HandMill, xDvKx, mak, drone, Gideon Vi, d0wn, SVLab, Valemox, NikolayD, verdizela, vnekrilov, Konstantin, 4kusNick, nepohek


Ранг: 42.9 (посетитель)
Статус: Участник

Создано: 6 сентября 2012 09:44 · Поправил: Konstantin New!
Цитата · Личное сообщение · #26

RaMMicHaeL
Странный подход у вас к арифметике меток. Например, возьмём команду
Code:
  1. lea eax, dword ptr ds:[@l_400005-5]

после ассемблирования получим - lea eax, dword ptr ds:[400000]
А вот с
Code:
  1. mov eax, @l_400005-5

такой трюк уже не пройдет - выдаст ошибку. Как-то избирательно получается.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 6 сентября 2012 15:08 New!
Цитата · Личное сообщение · #27

Это подход ассемблера OllyDbg, а не мой.
Плагин лишь заменяет метку на адрес, и передает команду ассемблеру Оли.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 18 сентября 2012 01:50 New!
Цитата · Личное сообщение · #28

--> v1.7.1 <--
* Поиск/замена текста в редакторе (горячие клавиши: Ctrl+F, Ctrl+H, F3, Shift+F3).
* Исправлена работа с командами с префиксами (LOCK, REP, REPE/REPZ, REPNE/REPNZ).

| Сообщение посчитали полезным: kioresk, SReg, Gideon Vi, vnekrilov, _ruzmaz_, NikolayD



Ранг: 307.7 (мудрец)
Статус: Участник

Создано: 18 сентября 2012 02:29 New!
Цитата · Личное сообщение · #29

RaMMicHaeL
Кликаю в нужное место кода - плагин не вызывается ни по Ctrl+M ни по Ctrl+Shift+M - так у всех или просто мне везет ? Если вызвать его через меню плагинов или правую кнопку мышки тогда все ок.

Можно ли добавить установку брейкпоинтов, тоесть:
Code:
  1. nop
  2. nop
  3. bp    ; устанавливает брейкпоинт на команду идущую выше или ниже
  4. nop

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 17 октября 2012 07:31 New!
Цитата · Личное сообщение · #30

--> Multiline Ultimate Assembler <-- v2.0:

Новое название
Плагин теперь называется Multiline Ultimate Assembler, а не MUltimate Assembler.

Если вы обновляетесь со старой версии, измените название секции в ollydbg.ini с "MUltimate Assembler" на "Multiline Ultimate Assembler" чтобы сохранить настройки.

Версия для OllyDbg v2
На данный момент известно об одной проблеме: не работают команды DB, DW, DD, итд., так как ассемблер новой OllyDbg их не поддерживает.

Файл помощи
Я написал хелп файл, объясняющий синтакс ассемблера, интерфейс редактора, и опции плагина. Файл на английском. Если что не ясно, спрашивайте, переведу.

| Сообщение посчитали полезным: NikolayD, SReg, DimitarSerg, vnekrilov, KingSise, _ruzmaz_, Gideon Vi, Konstantin, schokk_m4ks1k, d0wn, plutos


Ранг: 328.8 (мудрец)
Статус: Участник

Создано: 17 октября 2012 10:03 New!
Цитата · Личное сообщение · #31

RaMMicHaeL пишет:
Файл на английском. Если что не ясно, спрашивайте, переведу.


А можно ли сделать параллельно файл справки и на русском языке?
<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
 eXeL@B —› Софт, инструменты —› MUltimate Assembler

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS