Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+4 невидимых)

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


Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 14 сентября 2009 09:42 · Поправил: BoRoV
· Личное сообщение · #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/

-----
Лучше быть одиноким, но свободным © $me




Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 23 мая 2011 19:02
· Личное сообщение · #2

SReg
Close=Delete

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

Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

--> 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 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 03 октября 2011 09:51
· Личное сообщение · #4

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

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




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 03 октября 2011 10:16
· Личное сообщение · #5

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


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

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


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

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

-----
127.0.0.1, sweet 127.0.0.1


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


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 октября 2011 11:20
· Личное сообщение · #6

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

-----
Yann Tiersen best and do not fuck




Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 03 октября 2011 12:20
· Личное сообщение · #7

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

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 октября 2011 13:12
· Личное сообщение · #8

Выдержка из хелпа 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 не знаю.

-----
Yann Tiersen best and do not fuck


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


Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

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

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


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

-----
127.0.0.1, sweet 127.0.0.1


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

Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 03 октября 2011 18:53
· Личное сообщение · #10

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

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 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

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

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

-----
Yann Tiersen best and do not fuck




Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

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

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

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

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 (ветеран), 57thx
Активность: 0.110
Статус: Участник

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

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

Создано: 04 ноября 2011 05:11
· Личное сообщение · #16

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 (посетитель), 33thx
Активность: 0.040
Статус: Участник

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

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

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

Создано: 02 декабря 2011 05:23
· Личное сообщение · #18

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

7832_02.12.2011_EXELAB.rU.tgz - multiasm.rar

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

Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 02 декабря 2011 21:10
· Личное сообщение · #19

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

Создано: 03 декабря 2011 14:19
· Личное сообщение · #20

Версия 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 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 03 декабря 2011 15:38
· Личное сообщение · #21

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

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



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 04 декабря 2011 01:25 · Поправил: Konstantin
· Личное сообщение · #22

RaMMicHaeL
Круть!



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

Новое в версии 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 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 06 сентября 2012 09:44 · Поправил: Konstantin
· Личное сообщение · #25

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

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

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

Создано: 06 сентября 2012 15:08
· Личное сообщение · #26

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



Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

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

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


Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

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

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

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


-----
Don_t hate the cracker - hate the code.




Ранг: 15.3 (новичок), 118thx
Активность: 0.01=0.01
Статус: Участник

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

--> 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

Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

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


А можно ли сделать параллельно файл справки и на русском языке?




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 17 октября 2012 20:06
· Личное сообщение · #31

неплохо было бы добавить меню "хэлп" из главного окна, тем более хелп имеется. Ну или по ф1

-----
-=истина где-то рядом=-



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . >>
 eXeL@B —› Софт, инструменты —› MUltimate Assembler
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати