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

 eXeL@B —› Софт, инструменты —› x64dbg отладчик
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 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

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

Создано: 11 декабря 2013 12:07
· Личное сообщение · #2

хех, уже готов)



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

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

ff0h
ну до готов думаю еще далеко)) но уже юзабельно,главное что они активно "пилят" его.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 11 декабря 2013 12:13
· Личное сообщение · #4

The debugger core is based on TitanEngine
Disassembly powered by BeaEngine


Ну, я не знаю... ©

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

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

Создано: 12 декабря 2013 02:56
· Личное сообщение · #5

Ну, я не знаю...
Сообщение посчитали полезным: int

И все же я думаю, что лучше это - чем вообще ничего... (я про ОпенДбг)

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


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 декабря 2013 05:03 · Поправил: Gideon Vi
· Личное сообщение · #6

SReg пишет:
И все же я думаю, что лучше это - чем вообще ничего...


При каждом степе рисковать выстрелить себе в ногу. Постоянно подозревать отладчик в желании выстрелить тебе в ногу. Видеть во сне, как отладчик стреляет тебе в ногу.
И, что самое плохое, он таки может ни разу не выстрелить, но ты постоянно будешь его подозревать и перепроверять.
Это страшно, бро. Так работать нельзя.

А если без сарказма, то пилить им придется как свой инструмент, так и тулы, на которых он базируется. Чужие тулы.




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

Создано: 12 декабря 2013 05:22
· Личное сообщение · #7

Если там фундамент - штатный механизм(отладочный порт), то идею следует зарубить на корню.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 декабря 2013 05:41
· Личное сообщение · #8

Что значит "если". Ничего другого за бесплатно, на паблик, юзабельного и не глючного ни кто не пишет.




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

Создано: 12 декабря 2013 05:57 · Поправил: Dr0p
· Личное сообщение · #9

Gideon Vi

Механизм этот глючный и бесперспективный(он предназначен не для копания в защитах). Далее от него будет сложно отказаться, так что надо эту часть продумать пока есть возможность, чтобы заново всё с нуля не пилить.

Системная часть должна быть в ядре реализована и быстрый интерфейс туда.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 декабря 2013 07:40
· Личное сообщение · #10

Dr0p, где я хоть словом возразил? Повторюсь: то, что ты перечислил, ни кто не пишет. Или пишет, но очень медленно. По вполне понятным обстоятельствам, к стати.



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

Создано: 12 декабря 2013 11:20
· Личное сообщение · #11

Ну что сказать, не плохо, удачи



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

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

SReg пишет:
И все же я думаю, что лучше это - чем вообще ничего...

В таком уж случае лучше не любимая всеми вами IDA. А что касается, OpenDbg я сейчас делаю проект по автоматизации телевещания уже год, фактически учусь программировать графику на Qt (очень замороченный интерфейс у этой софтины). Проект сложный, зато после него легко смогу сделать GUI. А вот если я начну ядро изучать, вы точно никогда его не дождетесь. Кое-кто обещал помочь с ядром, остальные все "помощники" не достаточный уровень имеют для этого. Может вот Dr0p захочет запилить дровину, раз он такой эксперт в отладке (я без иронии).

А данный отладчик это чистый рип интерфейса OllyDbg.




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 12 декабря 2013 14:19
· Личное сообщение · #13

int пишет:
А данный отладчик это чистый рип интерфейса OllyDbg.

Так это же просто отлично, не ?

-----
ds


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

Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 12 декабря 2013 14:47
· Личное сообщение · #14

int пишет: Кое-кто обещал помочь с ядром, остальные все "помощники" не достаточный уровень имеют для этого.
Дык тогда и уперлось все в то, что не готовы были все компоненты отладчика, кроме ядра UI, биндинг для дизасма, частично трейсер по тем же причинам.

int пишет: Может вот Dr0p захочет запилить дровину
Если бы он еще писал на си и без фанатизма, кругом все морфить да пермутировать, а так +1.

int пишет: Проект сложный, зато после него легко смогу сделать GUI.
Так это же хорошо, а работа, никуда от нее не деться, святой дух только у попов высококалорийный.
Будет каркас, будут кодеры и бетатестеры.
Ждемс.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

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

F_a_u_s_t
Дык я как раз тебя и имел в виду (не стал указывать ник по полит. соображениям). Просто были товарищи, которые даже не смогли разобраться с исходниками Ms-Rem'а. Согласен, что кодить ядро, пока нет ничего, нет смысла. Это как делать двигатель в автомобиль, если для него нет подходящего кузова, салона, трансмиссии и колес, а делать их некому. Поэтому, когда и если будет GUI и адекватный трейсер (он в принципе адекватен, только вот без анализатора бесполезен), т.е. будет UserMode-отладчик полноценный, можно и созывать команду тогда. А дергать людей просто так мне лично не хочется. Уже пройдено и ни один раз.

DimitarSerg пишет:
Так это же просто отлично, не ?

Есть такое понятие как привычка. А еще есть такое понятие консерватизм. Привычка != удобство.




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

Создано: 12 декабря 2013 15:45 · Поправил: Dr0p
· Личное сообщение · #16

int

Коденг на две части разделяется, две области, два мира. Это работасо средой программирования и работа с програмной средой. Обычно работа выполняется со средой программирования(как аверы етц), не осознавая окружающую среду(ось). Все механизмы рассматриваются сугубо как обьекты среды программирования. Тип такого восприятия определяется уровнем кодера. Если он высок, то реализация не занимает внимание, она не осознаётся. Так же как и речь - вы же не думаете над синтаксисом когда говорите. В противном случае получается гавно как в общем везде. Ну а реализация нужных механизмов займёт часы с учётом отладки, не более. Вот только проблема есть - гуй я реализовать не буду, у меня к не системным поделкам какое то отвращение, а заставить себя описывать интерфейсы ядра довольно таки сложно.

> не смогли разобраться с исходниками Ms-Rem

Есчо раз, он спортил много людей своим паскалем(дельфя). Описание и использование системных механизмов, у него ничего больше небыло. Так что не вижу что он нам дал. На тот момент уже были в сети исходники ядра, далее оно было открыто в виде wrk. Если код получает список процессов через слепки в этом нет его заслуги - это системный механизм. Понятно почему он Z0mbie не нравился, впрочем как и мне.

> если будет GUI

С современными автоматизированными визуальными средами про гуй вообще никто не думает. Мышью контролов накидать на форму не составляет проблемы.

> адекватный трейсер

Вот это уже интересная часть. Реализация через системные дебаг апи не приемлима(производительности вообще нет, доставка сообщений на отладочный порт очень тяжёлая операция).




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

Создано: 12 декабря 2013 15:51 · Поправил: Dr0p
· Личное сообщение · #17

> Может вот Dr0p захочет запилить дровину

Она запилена под x86 в сайд моторе.

> Если бы он еще писал на си и без фанатизма, кругом все морфить да пермутировать

Был бы пригодный конпиль, может быть чего на си и запилил. Недавно десятую студию поставил - там ну никак компиль не может собрать модуль без 40кб говна на си.

На счёт морфа вы наверно правы. У меня за года выработалась некая особая модель реализации, изменение которой кажется не годным. Так например макро %GET_GRAPH_ENTRY юзается даже там, где оно совершенно не нужно



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 12 декабря 2013 16:15
· Личное сообщение · #18

int пишет: Дык я как раз тебя и имел в виду (не стал указывать ник по полит. соображениям).
"Помирать" не собираюсь, если что.

Dr0p пишет:С современными автоматизированными визуальными средами про гуй вообще никто не думает.
На самом дели хороший гуй не такая простая задача, если конечно не такое говно, как в windbg.

Dr0p пишет:
Недавно десятую студию поставил - там ну никак компиль не может собрать модуль без 40кб говна на си.

Опять 25, никакого гуана не пихается, тред о GCC намекает.

Dr0p пишет: юзается даже там, где оно совершенно не нужно
В этом и проблема, одно дело, когда пилишь малварь, а другое, когда пилишь обычный код для общественности.




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

Создано: 12 декабря 2013 18:30
· Личное сообщение · #19

F_a_u_s_t

Но его нужно будет заюзать при неоходимости и в малварном, так что это только плюс.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 12 декабря 2013 19:05
· Личное сообщение · #20

Dr0p пишет:
Вот это уже интересная часть. Реализация через системные дебаг апи не приемлима(производительности вообще нет, доставка сообщений на отладочный порт очень тяжёлая операция).

А вот для этого и нужен драйвер)

Dr0p пишет:
Есчо раз, он спортил много людей своим паскалем(дельфя).

Вообще-то те исходники были на сях. Они просто приватные, никто их не выкладывал никуда и вроде пока не текло.



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

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

норм отладчик будет если авторы не забросят
а по поводу ms-remа: он придумал и реализовал десятки техник и при этом он никогда не орал что он элита хотя и был ею

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


Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 12 декабря 2013 22:10 · Поправил: ajax
· Личное сообщение · #22

SegFault пишет:
он придумал и реализовал десятки техник

просветите нас, не знающих про десятки

PS: для меня z0mbie и 29A были интересны, ес-но в плане винды. остальное - не торт

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


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


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

Создано: 12 декабря 2013 22:49
· Личное сообщение · #23

int

Есть ведь альтернатива железячной трассировке - в буфере код исполнять. Копируем блок в буфер, фиксим его если надо, дополняем ветвлением в наш код и передаём управление на буфер. Так в VMBE реализована трассировка. Есно некоторые инструкции нужно хардверно трейсить(сискол например). Есть конечно подводные камни, например фолт в буфере нужно корректно обработать. Самая главная проблема - нет быстрого дизасма длин. Он должен быть сугубо табличным, подобным как у авера VBA.

> просто приватные

Вот оно как



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

Создано: 12 декабря 2013 23:07
· Личное сообщение · #24

ajax
зомби это классика а его преемником стал мсрем. погуглите в инторнетах куча статей мс-рема для того времени это было актуально и ново. Кстате на этом сайте есть интервью с ним http://www.cracklab.ru/int/ms_rem.php. После мс-рема никого не было все скатилось в коммерс и приваты. Ну собственно сцена с тех пор пустует. Как говорится цирк уехал а клоуны остались ( привет клерк! )



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

Создано: 12 декабря 2013 23:25 · Поправил: dosprog
· Личное сообщение · #25

А не нонсенс ли - GUI на API Windows для kernel mode debugger'а?

Вспомнился анекдот про шарящего в светлом пятне от прожектора на асфальте прохожем (потерянные ключи искал).
Когда его спутник переспросил - мол, точно здесь потерял?
- тот и говорит: - да не здесь, а там, за углом.
Спутник снова спрашивает: - а чего же здесь ищешь???
Тот ему: - а того, что туда, за угол, прожектор не достаёт.

Это я к тому, что нормальный kernel mode debugger весь целиком должен находиться в kernel-mode драйвере. Вспомните тот же Soft-ICE. (Про "удалённую отладку" я не говорю, хотя тут, похоже, речь ведётся именно о ней... )
Близок к пониманию сути проблемы Dr0p, но сделать GUI без WinAPI одному человеку тяжеловато...




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

Создано: 12 декабря 2013 23:29
· Личное сообщение · #26

dosprog пишет:
но сделать GUI без WinAPI одному человеку тяжеловато...

syser китайцы запили из двух человек на с++ )) клерку конечно такое не осилить



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

Создано: 12 декабря 2013 23:40
· Личное сообщение · #27

reversecode,
по моим наблюдениям, Dr0p копает в сторону "подружить" OllyDbg с kernel-mode модулем (он и не скрывает этого).
Что-ж, если ему удастся то, что он задумал, полезная вещь может выйти, пускай и с ограниченной функциональностью.




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

Создано: 12 декабря 2013 23:44 · Поправил: reversecode
· Личное сообщение · #28

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

этакий разработчик девелоп китов, их которых вы сами должны понять что собрать




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

Создано: 12 декабря 2013 23:58 · Поправил: Dr0p
· Личное сообщение · #29

dosprog

Ну с сервисами я её подружил и вполне таки годно. Думаю надо будет отдельный диспетчер исключений сделать, в обход системного. Это займёт несколько строк кода. В остальном не вижу что есчо там не хватает. Доступ к ядру открыт через бэкдор, можно загружать код и исполнять(так снималась цепь теневых колбеков, которые иначе не достать; тут где то топик есть про это и на аверлабе).

Code:
  1. ; +
  2. ;
  3. VMRW proc Src:PVOID, Dst:PVOID, S1ze:ULONG
  4.          lea eax,Src
  5.          push eax
  6.          push PagedPool
  7.          ; В отладочном билде формируются переходники на процедуры, это приведёт к заполнению буфера
  8.          ; мусором при копировании(push offset загрузит ссылку на переходник). Связываем процедуры в
  9.          ; графе посредством процедурного ветвления(типичное макро для микода GET_GRAPH_ENTRY/GET_CU
  10.          ; RRENT_GRAPH_ENTRY). Для опеределения размера процедуры используем два связывания.
  11.          %GET_GRAPH_ENTRY xGateVMRW
  12.          mov ecx,eax
  13.          %GET_GRAPH_ENTRY xGateVMRW2
  14.          sub eax,ecx
  15.          sub eax,5        ; ~ link size.
  16.          push eax         ; Size
  17.          push ecx         ; Address
  18.          push "WRMV"
  19.          xor eax,eax
  20.          %SIDECALL SIDE_BACKDOOR
  21.          ret
  22. VMRW endp
  23.  
  24. ; +
  25. ;
  26. CbEnumFrames51 proc ThreadId:HANDLE
  27. Local Cframe:CALLOUT_FRAME
  28. Local Tframe:KTRAP_FRAME
  29.          invoke GetThreadObject, ThreadId   ; PETHREAD
  30.          .if Eax
  31.                  lea ecx,[eax + ThCallbackStack]
  32.                  ; PCALLOUT_FRAME
  33.                  invoke VMRW, Ecx, addr Cframe.CallbackStack, sizeof(PVOID)
  34.                  .if Eax
  35.          Next:
  36.                         .if Cframe.CallbackStack
  37.                               ; CALLOUT_FRAME{}
  38.                               invoke VMRW, Cframe.CallbackStack, addr Cframe, sizeof(CALLOUT_FRAME)
  39.                               mov ecx,Cframe.TrapFrame
  40.                               .if Eax && Ecx
  41.                                    ; TRAP_FRAME{}
  42.                                    invoke VMRW, Ecx, addr Tframe, sizeof(KTRAP_FRAME)
  43.                                    .if Eax
  44.                                        %DBG "T'frame: rEip: 0x%X, rDbgEip: 0x%X, rEsp: 0x%X, rEFlags: 0x%X", Tframe.rEFlags, Tframe.HardwareEsp, Tframe.rEip, Tframe.DbgEip
  45.                                        jmp Next
  46.                                    .endif
  47.                               .endif
  48.                         .endif
  49.                  .endif
  50.          .endif
  51.          ret
  52. CbEnumFrames51 endp


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

reversecode

Там всё очень тривиально есчо и криво, за исключением интерфейса. Это тяжёлая тема и реализация, что то такое Great пытался сделать. Плюсы я не знаю.

> результат будет какой то двиг который сами ручками будете подгружать подкомпиливать подзапускать и все это на подпорках

В файле регедита меняется имя и он запускается. На этом вся установка и оканчивается. На счёт сборки приведу пример. Надо отследить IOCTL в каспере, девайсы, коды и буфера. Добавляется фильтр для сервиса элементарно. Если вы смотрели сурсы, то понимаете. Для этого нужен билд.

Вас не огорчает, что тэг для кода "ASM"




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 декабря 2013 20:05
· Личное сообщение · #30

Достаточно взглянуть на список того, что ещё предстоит реализовать:

- attach/detach debugger
- asm command
- memcpy
- pe data access
- fpu support
- mmx support
- find asm
- find memory (pattern+wildcard)
- mov [mem],#data#,size
- getremotestring
- function parameter
- help file updates
- scripting
- thread support
- tls callbacks
- inject dll
- dump memory
- dump process
- set pe data in memory
- va to offset
- offset to va
- getapiname
- float calculations
- command help
- inject asm code
- and or xor commands
- analysis
- getlasterror
- display open handles
- build howto
- step to user code
- tracing(?)
- [OPTIONAL] child processes (TitanEngine)
- display source in PDB files (source debugging)
- patching (+save)
- handle view
- window view
- debug strings
- process privileges
- loaded modules window
- strings
- references
- callstack
- stack
- heap
- functions
- TEB/TBI
- PEB/PBI
- cpu filename+thread id
- shift+f7f8f9
- log breakpoints
- fix memory breakpoints
- membp in memmap
- command va2offset (and the other way around)
- various different float calculations
- and/or/xor/cmp with internal flags (script)
- restore window position (BridgeSetting)
- follow in dump
- opcode byte split
- middle mouse click = copy addr/bytes/disasm
- DOS name fix in Qt browse dialog
- abstractTable column names
- stack window(!)
- dump window(!!!)
- tabbed GUI (workspace+dragable windows)
- LUA/Python support
- ep break options
- live comments
- [] brackets for memory operations
- custom colours
- show export table
- find all intermodular calls
- highlight register changes (only when CIP changed also)
- PAGE UP + PAGE DOWN keys in disasm
- function lines (+database) for analysis
- 'dead' bytes custom analysis
- loops lines (+database) for analysis
- enable/disable hw+mem breakpoint

-----
EnJoy!



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


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