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

 eXeL@B —› Софт, инструменты —› x64dbg отладчик
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 22 . 23 . >>
Посл.ответ Сообщение

Ранг: 7.7 (гость), 51thx
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2013 11:49 · Поправил: Ra1n0
· Личное сообщение · #1

Актуальные ссылки:

sourceforge.net
http://x64dbg.com
https://github.com/x64dbg/x64dbg
scyllahide

Документациия по отладчику - --> Link <--

Новый проект от Mr.eXoDia и др.

Features:

Open-source
Intuitive and familiar, yet new user interface
C-like expression parser
Full-featured debugging of DLL and EXE files (TitanEngine)
IDA-like sidebar with jump arrows
IDA-like instruction token highlighter (highlight registers etc.)
Memory map
Symbol view
Thread view
Content-sensitive register view
Fully customizable color scheme
Dynamically recognize modules and strings
Import reconstructor integrated (Scylla)
Fast disassembler (BeaEngine)
User database (JSON) for comments, labels, bookmarks etc.
Plugin support with growing API
Extendable, debuggable scripting language for automation
Multi-datatype memory dump
Basic debug symbol (PDB) support
Dynamic stack view
Built-in assembler (XEDParse)
View your patches and save them to disk
Built-in hex editor
Find patterns in memory






| Сообщение посчитали полезным: ff0h, Gideon Vi, nick8606, Artem_N, JKornev, DimitarSerg, daFix, Rio, n0x90, DenCoder, Maximus, ELF_7719116, exprxp, Error13Tracer, Gerpes, SDFnik, VanHelsing, marius, jangle, hello, Bronco, mushr00m, HandMill, Johnatalbi, kassane, BAHEK, zNob, mkdev, Haoose-GP, HAOSov, mr qubo, Tyrus, kurorolucifer, Relax_, esa_r, Styx, Creckerhack, RootKey, RoKZaR, CKAP, Cigan, tRuNKator, Wargrinder, morgot, BiteMoon, mak, Illuzion


Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 18 июля 2018 01:57
· Личное сообщение · #2

Boostyq пишет:
На самом деле сложно их винить

все 3 опенсорс, при таком счастье, обвинять - это уже бес предел.
самим фиксить хлопотно, проще надстройку написать, а чтоб авторы фиксили, надо толпой , донатить.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 21 июля 2018 15:49
· Личное сообщение · #3

mrexodia пишет:
Currently the parser can be considered reasonably fast, parsing about 200,000 instructions in 1.5 seconds.

--> Link <--
как то по одной инстр в эту статистику у меня не вписывается, отсюда и вопрос.
диз блоками декодирует, а асм двиг блоками может кодировать?
и как бы сразу вытекающее,а как быть с long&short, ксед_парсе вроде их удаляет.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..


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


Ранг: 71.5 (постоянный), 95thx
Активность: 0.10.38
Статус: Участник

Создано: 28 июля 2018 13:28
· Личное сообщение · #4

f13nd пишет:
BlackCode пишет:
Но какова причина этого бряка? И как это пофиксить?
Причина наверное в том, что int3 туда воткнул не отладчик. В ольге это делается в exceptions-ignore following-int3 breaks, в эксодии очевидно аналог этой опции engine-skip int3 stepping, либо engine-ignore inconsistent breakpoints (ну или может само исключение добавить. в исключения исключений).


Написал Mr.eXoDia, он подсказал причину)
Оказалось виной этому была галочка в настройках отладчика на Query process cooke*
Убрал, стало все по феншую




Ранг: 59.5 (постоянный), 326thx
Активность: 0.170.76
Статус: Участник

Создано: 28 июля 2018 17:02
· Личное сообщение · #5

Покопался в коде. Весь код хранится в DLL. и GUI и DBG, Очень неудобная какая-то архитектура, я думал, что модуль DBG будет в EXE, а он вынесен отдельно.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 29 июля 2018 00:14
· Личное сообщение · #6

yashechka пишет:
Покопался в коде. Весь код хранится в DLL. и GUI и DBG, Очень неудобная какая-то архитектура, я думал, что модуль DBG будет в EXE, а он вынесен отдельно.


уважаемый яшечка!
или пишите по делу и конструктивно, или заведите блог и там делитесь впечатлениями.

-----
Give me a HANDLE and I will move the Earth.





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 31 июля 2018 04:05
· Личное сообщение · #7

в SDK есть апи
bool DbgMemMap(MEMMAP* memmap);
при вызове метода заполняется структура MEMMAP, возвращают кол-во страниц в процессе, и данные о первой странице. пока не вкурю, как по оставшимся получить данные.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 14.3 (новичок), 5thx
Активность: 0.070
Статус: Участник

Создано: 14 ноября 2018 06:42
· Личное сообщение · #8

Bronco Привет) Есть пара вопросов. Ты со скриптами больше все равно знаком, так вот:
1. Есть к примеру скрипт, там написано логирование регистров eax and edx при остановке на ret функции VirtualAlloc. Соответственно адрес размеченной секции и размер. Как все это можно направить в файл.
2. В ольке была команда в скриптах вывести окно мессага чтобы туда можно было ввести значение и уже с этим значением работать. В pdfке не нашел такой команды.
Если что то обьяснил херово простите. Буду благодарен за ответы.



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 14 ноября 2018 10:40 · Поправил: VOLKOFF
· Личное сообщение · #9

А зачем сохранять именно в отдельный файл, если это будет дублировать лог?
Используете Log для вывода всего необходимого, если нужно память сохранить savedata регион сохраняет.

RoKZaR пишет:
вывести окно мессага

Есть команда msg
Есть команда msgyn



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 14 ноября 2018 12:29
· Личное сообщение · #10

Bronco пишет:
ри вызове метода заполняется структура MEMMAP, возвращают кол-во страниц в процессе, и данные о первой странице. пока не вкурю, как по оставшимся получить данные.



наверное уже сами решили, но все же -
ответ на ваш вопрос в сорсах,
функция

void MemoryMapView::refreshMap()
там есть итерация по страницах.



Ранг: 14.3 (новичок), 5thx
Активность: 0.070
Статус: Участник

Создано: 14 ноября 2018 16:46
· Личное сообщение · #11

VOLKOFF пишет:
дублировать лог

Просто в логе помимо свох значений еще например куча Exception и прочего. И это приходится разделять. Удобнее конечно если бы можно опционально выводить что нужно в лог и в файл.
VOLKOFF пишет:
Есть команда msg
Есть команда msgyn

Первая просто месаг выводит, а вторая с кнопками да или нет. Другого не дано видимо. Иногда нужно вызвать мессаг, ввести там значение и чтобы оно оказалось в $result. Как смог так обьяснил)




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 04 декабря 2018 04:59
· Личное сообщение · #12

я хочу trace execution от entry point'a до места, где читается память (собственно, это не так важно, что именно там происходит). В более общем виде, хочу trace от одного места в программе до другого.

"To enable trace logging into trace view, you first enable it via “Start Run Trace” menu" - сделано.
А дальше не понимаю. Все tracing options - это Conditional Tracing.
Как мне обозначить условия этого трэйсинга, что бы он шел от определенного места до того, где будет читаться константа из памяти?

-----
Give me a HANDLE and I will move the Earth.





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

Создано: 04 декабря 2018 07:27 · Поправил: r99
· Личное сообщение · #13

пора уже под каждую команду написать образец применения



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 05 декабря 2018 16:06 · Поправил: hash87szf
· Личное сообщение · #14

plutos пишет:
Как мне обозначить условия этого трэйсинга, что бы он шел от определенного места до того, где будет читаться константа из памяти?

Вопрос не понятен.
Если конец известен, туда бряк и всё, trace into...
Если же ни конст, ни адрес памяти не известны, то хз как тормозить
У меня например проблема, есть начало и конец, где то глубоко внутри js алокатор создаёт памяти кусок, и что-то пишет число в память, а как этот момент умно поймать хз



plutos пишет:
"To enable trace logging into trace view, you first enable it via “Start Run Trace” menu" - сделано.

Это не надо. Это пишет логи если тыкать F7, F8, Animate...

Надо остановиться где вы хотите начать, и сюда:


https://x64dbg.readthedocs.io/en/latest/introduction/Expression-functions.html
cip - current instruction pointer
mod.base(cip) - module base addr at cip

https://x64dbg.readthedocs.io/en/latest/introduction/ConditionalTracing.html
must have, switch condition: mod.party(dis.branchdest(cip)) == 1

https://x64dbg.readthedocs.io/en/latest/introduction/Formatting.html
formatting...

Не забывать нажимать 'log file...' и заносить имя и тд иначе всё уходит в void/log tab
алсо записывать команды, хдбг их не запоминает если его выключить

вот так например я логи писал всех calls в main module
logtext
{a:cip} --- {a:dis.branchdest(cip)} --- {mod.base(cip)}
logcond
dis.iscall(cip) && (mod.base(cip) == 0x00400000)
switch
mod.party(dis.branchdest(cip)) == 1

Обходить, или не лезть в модули dll можно только чекая их адреса, whitelista нет

Скорость 2000 инстракшн/с... так шо, думайте

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


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

Создано: 05 декабря 2018 22:32 · Поправил: difexacaw
· Личное сообщение · #15

plutos

> я хочу trace execution от entry point'a до места, где читается память

Вы хотите невозможное. Как верно заметил hash87szf:

> Скорость 2000 инстракшн/с... так шо, думайте

Тот же вмп будет вариться с гигабайтной выборкой год", но есчо до этого обнаружит машинную трассировку(TF).

Не для этих целей отладчик предназначен.

Что бы отследить весь поток инструкций и выборку(обращение в память) нужно использовать dbi-инструменты. Обычно это эмуляторы/вм.

Но и эти инструменты на данный момент сомнительны. Не по причине неработоспособности, а потому что и авер/авторы защиты так же это всё читают и дорабатывают.

Что бы чётко сформулировать то что вам нужно, необходимо понимать что есть выборка. Отследить до места, где память читается" не корректная, хоть и понятная формулировка.

Учитывая что норм защита использует вм, а они разумеется транслируют адреса, то такой подход deprecated.

Вм элементарно может создать анклав - область памяти, которая N/A, либо в ней совсем иные данные для вм, нежеле те, которые вы обнаружите прочитав такую область.

Не используется это в протекторах по одной причине - проблема указателей. Вм работает в юм, при передаче указателя в км произойдёт крэш. Можно выделить указатели, но врядле возможно их различить. Это не решённая задача. И весьма привлекательная для виксов - полный облом сканера памяти. Но это нельзя сделать для обычного формата пе, только если вводить свой.

Для вм машин же реализовать анклав не проблема, так как они налету декриптуют данные, те есть инфа про исполняемые блоки. Так что в любой момент нужно ожидать что чтение области будет невозможно. А эту технику они освоят, несомненно. И тогда само понятие отладчика исчезнет, для работы с таким кодом.

-----
vx


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

Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 06 декабря 2018 17:03
· Личное сообщение · #16

difexacaw пишет:
Для вм машин же реализовать анклав не проблема


Так реализуй уже че-нибудь, десять лет от тебя один треш и угар на форумах.

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


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

Создано: 06 декабря 2018 19:59
· Личное сообщение · #17

Alchemistry

Что значит реализуй, я никогда не писал протекторы, зачем мне это.

-----
vx





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 декабря 2018 03:09
· Личное сообщение · #18

клерк, тебе про протекторы ничего не говорили
тебе сказали че-небудзь




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

Создано: 07 декабря 2018 15:16 · Поправил: difexacaw
· Личное сообщение · #19

reversecode

Давно реализовано даже в виде нескольких моторов, ищите сами. Что бы и вы поработали хоть в поисковике. Я намеренно ссылки с ядиска сюда не дам. Раз потролить захотелили.

-----
vx





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

Создано: 08 декабря 2018 17:33
· Личное сообщение · #20

Как же достали меня эти ассемблеры, в x64dbg их 3 штуки (XEDParse, Keystone и Asmjit) и ни один нормально не работает.
XEDParse - строит неоптимальный код, если операнд константа в пределах -128-+128, то он записывает его как dword вместо byte при негативной записи константы
01CF24D1 | FF B5 E7 FF FF FF | push dword ptr ss:[ebp-19]
01CF24D7 | FF 75 E7 | push dword ptr ss:[ebp-19]
первую строку создал XEDParse, вторую Asmjit
Keystone - не ассемблирует db код (db код понимает только XEDParse) и не понимает константные сегменты, например call far 0x33:addr
Asmjit - не умеет ассемблировать push dword со значением более 0x7FFFFFFF
и ни один из них не умеет принудительно делать длинные переходы
Может подскажете какой-нибудь безглючный ассемлер (с исходниками или в виде либы, лучше для статической линковки), чтобы мог успешно создавать как х86, так и х64 код.

-----
Everything is relative...




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 08 декабря 2018 18:47
· Личное сообщение · #21

Vamit
fasm




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

Создано: 08 декабря 2018 19:48
· Личное сообщение · #22

rmn
fasm не годится, написан на ассемблере, компилируется только в ехе файл, на вход ему нужно подавать листинги, по одной инструкции не делает, а разбираться что там на ассемблере написано и переделывать не вижу смысла

-----
Everything is relative...





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 08 декабря 2018 20:01 · Поправил: f13nd
· Личное сообщение · #23

Vamit пишет:
на вход ему нужно подавать листинги, по одной инструкции не делает

fasm g может одну строчку и с командной строки брать. А по одной инструкции фасм всегда делал. Ну и вобщем-то вывалить эту инструкцию побайтно в лог тоже может, если немного фантазии подключить.

-----
2 оттенка серого




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 08 декабря 2018 20:01
· Личное сообщение · #24

Vamit
Так сам кодогенератор выцепить можно. Бегло глянул, похоже там просто все: все в одном файле, инструкция последовательно парсится и stos'ятся байтики в буфер.




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

Создано: 08 декабря 2018 20:17
· Личное сообщение · #25

f13nd,rmn
вы не понимаете, зачем мне командная строка и ассемблер в виде ехе, когда мне нужно прилинковать его к плагину, работающему под х64dbg и на вход ему подавать по одной текстовой инструкции и получать её кодовое представление, а все остальное, релокации, оптимизации и т.д. делает декомпилятор. Выцепить из фасма сам ассемблер конечно можно, но написан он полностью на асме и всё в одном файле и куча инлюдов, чем копаться в таком коде, проще повеситься...)

В общем пока 2 проблемы с Keystone решил:
- вместо db последовательности кода из нескольких инструкций пришлось её сначала дизасмить по инструкциям и затем кормить ассемблеру.
- это call far 0x33:addr тоже решил, он понимает такую запись lcall 0x33:addr

в принципе XEDParse понимает все инструкции, но его прожорливость кода, не позволяет его использовать, созданный им код просто не помещается в отведенное для него место.

-----
Everything is relative...





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 08 декабря 2018 20:28 · Поправил: f13nd
· Личное сообщение · #26

Vamit пишет:
вы не понимаете, зачем мне командная строка и ассемблер в виде ехе, когда мне нужно прилинковать его к плагину, работающему под х64dbg и на вход ему подавать по одной текстовой инструкции и получать её кодовое представление, а все остальное, релокации, оптимизации и т.д. делает декомпилятор.

Я не понимаю самой задачи. Если это скрипт/плагин который может ассемблировать что-то налету чтоб тут же и исполнялось, не вижу проблемы в том, чтобы заполнить нужные поля инструкции и без внешней библиотеки. Если на входе их конечно не весь набор инструкций интела. Если задача просто перерабатывать код, не знаю при чем здесь тогда дебаггер.

-----
2 оттенка серого


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


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

Создано: 08 декабря 2018 20:56
· Личное сообщение · #27

Vamit

У вас каждый день новые задачи. Вот есчо ассемблер понадобился зачем то..

> XEDParse - строит неоптимальный код

Совершенно не понятно зачем вам понадобилось ассемблировать что то налету. С начала нужно выполнить обратную операцию(те дизасмить). Затем вы собрались компилировать выхлоп дизассемблера и это всё налету.. есчо и нужна зачем то оптимизация.. что вы вообще делаете ??

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 08 декабря 2018 21:03
· Личное сообщение · #28

difexacaw
вмп же разбирает. Сворачивает граф и компилит его в другую секцию.




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

Создано: 08 декабря 2018 21:05
· Личное сообщение · #29

rmn

Но а причём тогда отладчик

-----
vx





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

Создано: 08 декабря 2018 21:07
· Личное сообщение · #30

Да все элементарно, декомпилятор вм работает как плагин под x64dbg, из вм кода создается псевдо код
028105F0+[451-457]: rvm_38 = rvm_28 + rvm_18
0281060D+[458-470]: [mvm]d<rvm_10 + 0xFFFFFFFC> = rvm_38
0281065C+[485-503]:v test rvm_30, rvm_30
02810690+[504-506]: [mvm]d<rvm_10 + 0xFFFFFFF8> = __$esp
028107D2+[614-614]: jz 0x02810BA0
затем распознаются регистры и строятся инструкции
028105F0+[451-457]: eax = add eax, edx
0281060D+[458-470]: [ebp + 0xFFFFFFFC] = eax
0281065C+[485-503]:v test ebx, ebx
02810690+[504-506]: [ebp + 0xFFFFFFF8] = esp
028107D2+[614-614]: jz 0x02810BA0
окончательный вид
01CF24C0: add eax, edx
01CF24C2: mov dword ptr [ebp + 0xFFFFFFFC], eax
01CF24C5: test ebx, ebx
01CF24C7: mov dword ptr [ebp + 0xFFFFFFF8], esp
01CF24CA: jz 0x01CF24E2
а далее всё это построчно ассемблируется и релоцируется на нужное место

-----
Everything is relative...




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 08 декабря 2018 21:13
· Личное сообщение · #31

difexacaw пишет:
Но а причём тогда отладчик

Потому что он пилит не статический анализатор, а на трейсах.


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 22 . 23 . >>
 eXeL@B —› Софт, инструменты —› x64dbg отладчик
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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