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

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

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

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

Создано: 11 декабря 2013 11:49 · Поправил: Ra1n0 New!
Цитата · Личное сообщение · #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



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

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

упс...ещё одна фишка нарисовалась,
при поиске в памяти рва указателей, могут один указатель на 2 адреса раскинуть, раньше такого не было, да
и ваще сам поиск был не погрешим.
в качестве примера 0x0808CA30.

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


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

Создано: 24 января 2018 14:35 New!
Цитата · Личное сообщение · #3

1. не хватает кнопки "удалить" ненужные исправления из списка исправлений - отвлекают и вызывают п.2
2. при перезагрузке (иногда?) подключаются отключенные исправления
м/б что-то не так делаю или есть какой-то плагин?


Ранг: 88.2 (постоянный)
Статус: Участник

Создано: 25 января 2018 11:45 New!
Цитата · Личное сообщение · #4

Как-то можно заставить xdbg удалять при закрытии файлики из /db/ ? Настройки может какие или плагин?


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

Создано: 25 января 2018 18:49 New!
Цитата · Личное сообщение · #5

в батнике пропиши, и кликай.


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

Создано: 28 января 2018 08:42 New!
Цитата · Личное сообщение · #6

Code:
  1. Assembly instructions: 0x147B799DE-> neg [rsp]<- is not possible !
  2. Assembly instructions: 0x1479F14E7-> neg [rsp+0x8]<- is not possible !

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


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

Создано: 01 февраля 2018 20:49 New!
Цитата · Личное сообщение · #7

....\Mr.eXoDia x64 dbg\x64\CLRProfiler\
хз откуда взялась утиля с сорцами, в снапе её нет, для чего и как юзать?

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

Создано: 03 февраля 2018 19:29 New!
Цитата · Личное сообщение · #8

в x64dbg есть функция или плагин для вызова эскортных функций в отлаживаемой dll, как в ollydbg call dll export или еще не завезли? сам что-то не нашел.

Добавлено спустя 11 минут
Bronco пишет: хз откуда взялась утиля с сорцами, в снапе её нет, для чего и как юзать

Если верить гуглу, то это собственно и есть профайлер https://msdn.microsoft.com/en-us/library/ff650691.aspx


Ранг: 608.2 (!)
Статус: Участник
_Вечный_Студент_

Создано: 17 февраля 2018 02:49 New!
Цитата · Личное сообщение · #9

у кого-нибудь есть sources этой программы когда еще там был Capstone, а не Zydis (где-то сентябрь 2017)?
На github есть архивы уже собраных binary releases, а вот как найти старые sources я как-то не могу сообразить.
Или их там и нет?
Ну, в общем если у кого имеются и не лень, то пожалуста выложите!
Спасибо!


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

Создано: 17 февраля 2018 05:16 · Поправил: Bronco New!
Цитата · Личное сообщение · #10

plutos пишет:
когда еще там был Capstone

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

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


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

Создано: 17 февраля 2018 07:22 New!
Цитата · Личное сообщение · #11

plutos пишет:
у кого-нибудь есть sources этой программы когда еще там был Capstone, а не Zydis (где-то сентябрь 2017)?

Так на гитхабе и есть.
вот последний коммит, предшествующий добавлению Zydis.

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



Ранг: 608.2 (!)
Статус: Участник
_Вечный_Студент_

Создано: 17 февраля 2018 07:28 New!
Цитата · Личное сообщение · #12

Bronco пишет:
капстон пока присутствует

я про то, что folder capstone_wrapper is empty в сборке за середину октября.
Его конечно можно качнуть отдельно, но хотелось бы облегчить себе жизнь и получить все сразу в одном флаконе.
или я не там смотрю?


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

Создано: 17 февраля 2018 09:13 New!
Цитата · Личное сообщение · #13

plutos пишет:
я про то, что folder capstone_wrapper is empty в сборке за середину октября.

из текущих сорцов видно, что капстон обновляли "8 months ago"
октябрь дальше?...)))
-----
немного не по теме, но топ открывать не хочу.
Вопрос прямой. Как отличить реальный оператор флага, от фейкового?
пример фейка, или морф безусловного прыга
Code:
  1. PUSH R10
  2. MOV EBX, 0x6CB8680
  3. XOR R10D, R10D
  4. SBB EBX, R10D
  5. RCL EBX, 0x6
  6. JNE 0х14A3A5C86
  7. POP R10
  8. ...
  9. ...
  10. ...
  11. 14A3A5C86:
  12. POP R10

сука, но с реальным такая же фишка, данные затирают, сразу после перехода на метку.


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

Создано: 17 февраля 2018 09:47 New!
Цитата · Личное сообщение · #14

Bronco пишет:
Вопрос прямой. Как отличить реальный оператор флага, от фейкового?

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


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

Создано: 17 февраля 2018 10:48 · Поправил: Bronco New!
Цитата · Личное сообщение · #15

Vamit, шибко много трассировать, по логу, более 3000 операторов, + до*бени "разрывов" зависимых от данных в памяти, как самый простой
Code:
  1. LEA RAX, QWORD PTR DS:[0x146D5E222]
  2. PUSH RAX
  3. MOVSXD RAX, DWORD PTR DS:[0x14752DA2C]
  4. ADD QWORD PTR SS:[RSP], RAX
  5. POP RAX
  6. JMP RAX

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


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

Создано: 28 февраля 2018 09:57 · Поправил: Vamit New!
Цитата · Личное сообщение · #16

Протестировал из плагина (пока только в режиме х32) все три встроенных в х64dbg ассемблера: XEDParse, Keystone и Asmjit.
Первые два не позволяют делать принудительные длинные переходы, последний делает принудительный короткий или длинный переход добавлением слова short/long перед инструкцией перехода.
Но asmjit имеет необъяснимый глюк, он не ассемблирует push imm32 когда значение константы >= 0х80000000
Прямой доступ из плага имеется только к XEDParse, остальные 2 асма можно использовать только с косвенным доступом через сам дбж.
Решил использовать пока XEDParse с добавлением к нему фикса для генерации принудительных длинных переходов.

Осталось решить проблемку с ASLR, неужели при загрузке таржета в дбж тружно было сделать опцию отключения DynamicBase. Пока приходится извращаться, сбрасывать этот бит в исследуемом файле и после загрузки в дбж возвращать его обратно. Но думаю, что можно найти и автоматическое решение для этого.


Ранг: 669.6 (! !)
Статус: Участник
CyberMonk

Создано: 28 февраля 2018 16:30 New!
Цитата · Личное сообщение · #17

Vamit пишет:
Осталось решить проблемку с ASLR, неужели при загрузке таржета в дбж тружно было сделать опцию отключения DynamicBase. Пока приходится извращаться, сбрасывать этот бит в исследуемом файле и после загрузки в дбж возвращать его обратно. Но думаю, что можно найти и автоматическое решение для этого.



Включить
Code:
  1. editbin /dynamicbase %name%.exe

Выключить
Code:
  1. editbin /dynamicbase:no %name%.exe


Можно оформить в батник и это будет один клик ..

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

Создано: 28 февраля 2018 17:02 New!
Цитата · Личное сообщение · #18

Vamit пишет: неужели при загрузке таржета в дбж тружно было сделать опцию отключения DynamicBase.

У мистера уже спрашивали это. Подобные траблы только саму решать и слать патчи мистеру, иначе можно годы ждать.


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

Создано: 28 февраля 2018 20:25 New!
Цитата · Личное сообщение · #19

Vamit пишет:
short/long

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


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

Создано: 28 февраля 2018 21:38 · Поправил: Vamit New!
Цитата · Личное сообщение · #20

Bronco пишет:
беда пока с самим асемблированием, его тупо нет, и приходиться писать енкоде через врайт

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


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

Создано: 28 февраля 2018 22:20 · Поправил: Bronco New!
Цитата · Личное сообщение · #21

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

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

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

Создано: 05 марта 2018 00:23 New!
Цитата · Личное сообщение · #22

not sure because Google translate is bad, but keystone will be removed very soon. If you see bugs with asmjit, please report at https://github.com/asmjit/asmtk/issues


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

Создано: 05 марта 2018 02:37 · Поправил: Bronco New!
Цитата · Личное сообщение · #23

в общем толчком для более внимательного разбора возможностей предложенных асм двигов в режиме х64, послужило отсутствие внимания к простой --> исузе <--.
плюс фризы при энейблед гуя, и грёбанный патчер, которого нельзя отключить, и который вешает весь выхлоп, и в итоге тупо валит процесс после лимита всего в 10к риптнутых байтов.
Ксед, мягко сказать очень староват для текущих задач, не кодирует "imul", не кодирует инструкции с IMM, где есть знак и константа в 16 ричном формате (косяк капстона при дизе), увеличивает размер некоторых инстр с IMM.
Кейстоун, самый простой, удобный, и посвежее кседа, но недостаточно свеж по набору возможностей, не равнодушен к инструкциям с указателями, где один из операндов reg == RAX.в итоге увеличивает в размере.
АсмДжит, немного сложнее, однако самый свежий, но не равнодушен к инструкциям с указателями, где один из операндов reg == RCX. многое увеличивает в размере. но может и оптимайзить, что для цикличного кода то же не гуд. Не кодирует лоченные инструкции. И все выравнивания кода тела нопами больше одного байта, асемблит как однобайтовый NOP.
Титан, без его апи до фейса гуя никак, но реально тормозит по времени автоматику.
в итоге вышел напрямую к асмдвигам, минимизировал апи титана, солидно выиграл по скорости и качеству, а главное нет фризов и падений. сам парсер скидывать не буду, но для работы с движками пока юзаю этот код:
Code:
  1. bool EncodeInstr(duint adde_for, const char *instruction)
  2. {
  3. XEDPARSE XEDParse;
  4. #ifdef _WIN64
  5. XEDParse.x64 = true;
  6. #else 
  7. XEDParse.x64 = false;
  8. #endif
  9. XEDParse.cip = adde_for;
  10. strcpy_s(XEDParse.instr, instruction);
  11. if (XEDParseAssemble(&XEDParse) == XEDPARSE_ERROR)
  12. {
  13. _plugin_logprintf("Error: %s | XEDParse->%s\n", XEDParse.error, instruction);
  14. #ifdef _WIN64
  15. CodeInfo ci(ArchInfo::kTypeX64, 0, adde_for);
  16. #else
  17. CodeInfo ci(ArchInfo::kTypeX86, 0, adde_for);
  18. #endif
  19. CodeHolder code;
  20. code.init(ci);
  21. X86Assembler a(&code);
  22. AsmParser p(&a);
  23. Error err = kErrorOk;
  24. if (p.parse(instruction) != kErrorOk)
  25. {
  26. _plugin_logprintf("Error: %08x (%s) | Asmjit->%s \n", err, DebugUtils::errorAsString(err), instruction);
  27. ks_engine *ks;
  28. ks_err err =  KS_ERR_OK;
  29. unsigned char* encode;
  30. size_t count;
  31. size_t size;
  32. #ifdef _WIN64
  33. int mode = KS_MODE_64;
  34. #else
  35. int mode = KS_MODE_32;
  36. #endif
  37. if (ks_open(KS_ARCH_X86, mode, &ks) != KS_ERR_OK)
  38. {
  39. _plugin_logprintf("Error: failed on ks_open(), quit\n");
  40. return false;
  41. }
  42. if (ks_asm(ks, instruction, adde_for, &encode, &size, &count))
  43. {
  44. _plugin_logprintf("Error: failed on ks_asm() with count = %lu, error code = %u | Keystone->%s\n", count, ks_errno(ks), instruction);
  45. return false;
  46. }
  47. DbgMemWrite(adde_for, (void*)encode, size);
  48. ks_free(encode);
  49. ks_close(ks);
  50. return true;
  51. }
  52. else
  53. {
  54. code.sync();
  55. CodeBuffer& buffer = code.getSectionEntry(0)->getBuffer();
  56. unsigned char encode[XEDPARSE_MAXASMSIZE];
  57. memcpy(encode, buffer.getData(), buffer._length);
  58. DbgMemWrite(adde_for, (void*)encode, buffer._length);
  59. return true;
  60. }
  61. }
  62. else
  63. {
  64. DbgMemWrite(XEDParse.cip, (void*)XEDParse.dest, XEDParse.dest_size);
  65. return true;
  66. }
  67. }

| Сообщение посчитали полезным: mak, v00doo, DICI BF



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

Создано: 07 марта 2018 10:12 · Поправил: Bronco New!
Цитата · Личное сообщение · #24

наверное это всё таки косячок, при выделении кода в листинге, к select.end приходиться прибавлять 1 байт
Code:
  1. SELECTIONDATA select;
  2. GuiSelectionGet(GUI_DISASSEMBLY, &select);
  3. duint binsize = select.end - select.start + 1;

----
капстон и кейстоун убрали, сдк похудел. двигов в асм_энджине, всё так же три(?).// (1||2) == 2
----
кста, как асемблить двухбайтовый NOP(0x6690)?

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

Создано: 16 марта 2018 01:27 New!
Цитата · Личное сообщение · #25

Здраствуйте! Вопрос по теме x64dbg. Есть скрипт прохода на oep acprotect от нарвахи)) Там есть команда eob. Как можно интерпретировать эту команду в x64dbg?


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

Создано: 16 марта 2018 05:38 New!
Цитата · Личное сообщение · #26

RoKZaR пишет:
Как можно интерпретировать эту команду в x64dbg?

Для начала - посмотреть, что она делает в оригинальном скрипте.

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

Создано: 16 марта 2018 09:24 · Поправил: RoKZaR New!
Цитата · Личное сообщение · #27

Посмотрел. Относится к разряду бряковх, но описание команды отсутствует. Нашел в доках на дебаггер вот такие строки. То или нет? Если нет то какая команда тогда?
А за доки на ollyscript спасибо найти долго не мог.

{ Атач доступен только для участников форума } - Screenshot_2018-03-16-09-32-08-568_com.google.android.apps.docs.png

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

Создано: 20 марта 2018 16:56 New!
Цитата · Личное сообщение · #28

Назрело несколько вопросов:
1. Находясь на OEP запакованной проги при пролистывании колесом мыши ломает листинг. Почему и возможно ли исправить?
2. По курсу нарвахи при попытке нахождения Stolen Byte просто напросто не останавливается там где надо и там где написано по курсу. Приаттачил картинки чтобы было понятно что к чему.
3. Проблема со скриптами. При обьявлении переменной var ... первый раз она обьявляется и работает а во второй выдает, что не может обьявить переменную. Причем vardel не работает.
Вроде пока все. Просто новичек в этом, но хочется осваивать сразу не ольку а что то более продвинутое. Пусть и недопиленое. Буду премного благодарен за помощь!

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


Ранг: 608.2 (!)
Статус: Участник
_Вечный_Студент_

Создано: 20 марта 2018 19:33 New!
Цитата · Личное сообщение · #29

RoKZaR пишет:
но хочется осваивать сразу не ольку а что то более продвинутое


>>offtop
А что собственно не так с "олькой"?
Использую OllyDbg 16 лет и не могу нарадоваться.
Великолепный инструмент, на нем выросли поколения reverse engineers.
У него есть свои ограничения, но у кого их нет?
>>offtop

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

Создано: 20 марта 2018 19:39 · Поправил: RoKZaR New!
Цитата · Личное сообщение · #30

plutos пишет:
>>offtop

С олькой все так но рано или поздно придется переходить на платформу x64 и соответственно к совершенно другому инструменту. Поэтому решил привыкать сразу со сложного))) Причем начинал я сам с ольки.


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

Создано: 20 марта 2018 22:35 New!
Цитата · Личное сообщение · #31

plutos пишет:
Использую OllyDbg 16 лет и не могу нарадоваться.

Мда, на Вин10 не пашет, х64 не знает - ДОС то же была когда-то великолепной операционкой...
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 22 . 23 . >>
 eXeL@B —› Софт, инструменты —› x64dbg отладчик

Видеокурс ВЗЛОМ