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

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


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

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

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

 eXeL@B —› Софт, инструменты —› Mr.eXoDia x64 dbg
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 .
Посл.ответ Сообщение

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

Создано: 11 декабря 2013 11:49 · Поправил: 3 мая 2016 21:30 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


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

Создано: 17 мая 2019 21:55 · Поправил: bartolomeo New!
Цитата · Личное сообщение · #2

Подскажите - как-то можно в х64 дебагере сохранять трассу в текстовый файл без написания плагина ?


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

Создано: 18 мая 2019 00:28 · Поправил: Bronco New!
Цитата · Личное сообщение · #3

bartolomeo пишет:
как-то можно в х64 дебагере сохранять трассу в текстовый файл

можно, даже с контекстом. но не больше 10к инструкций в час минуту.

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


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

Создано: 18 мая 2019 10:48 New!
Цитата · Личное сообщение · #4

что именно нужно нажать ? - что-то в упор не вижу (


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

Создано: 18 мая 2019 12:50 New!
Цитата · Личное сообщение · #5

bartolomeo


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

| Сообщение посчитали полезным: bartolomeo, dma, morgot


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

Создано: 26 мая 2019 07:12 New!
Цитата · Личное сообщение · #6

коллеги, может быть есть плагин, действительно улучшаяющий статический анализ? StaticAnalysis is deprecated, xAnalyzer что-то может, но там где надо (в стеке) его нет. После Olly это боль.

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

Создано: 16 июня 2019 22:19 New!
Цитата · Личное сообщение · #7

расскажите, что с плагинами, которые требуют capstone.dll? Они работают на новых вериях, если докопировать эту dll или их пора удалять?

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 28 июня 2019 10:35 · Поправил: PEvgen New!
Цитата · Личное сообщение · #8

Подскажите аналог команды "eval" для скрипта.
(eval "jmp dword ptr ds:[хххххххх]")
В доках не нахожу....


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

Создано: 28 июня 2019 17:21 · Поправил: Bronco New!
Цитата · Личное сообщение · #9

PEvgen пишет:
аналог команды "eval" для скрипта.

аналога нет, только --> формат строки<--, но не во всех командах он поддерживается.
проще через свой плагин добавить команду для форматирования нужной строки.
PEvgen пишет:
(eval "jmp dword ptr ds:[хххххххх]")

хз ...давно не юзал, в команде ASM вроде можно было юзать динамическую адресацию.

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


Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 28 июня 2019 19:15 · Поправил: PEvgen New!
Цитата · Личное сообщение · #10

Bronco спасибо, а-то я уже подумал что слеп и туп (хотя и не разубедил окончательно)....
А через свой плагин, это про вот это?
Plugins
Plugins can use _plugin_registerformatfunction to register custom string formatting functions. The syntax is {type;arg1;arg2;argN@expression} where type is the name of the registered function, argN is any string (these are passed to the formatting function as arguments) and expression is any valid expression.

Я так понимаю...


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

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

PEvgen пишет:
Я так понимаю...

на самом деле очень полезная фишка, можно нарастить весь недостающий функционал.... и накидать своего.
хз чем поможет,не больше как пример, но вывод в лог делал свой. тупо надо было.
Code:
  1. #define MAKECODE(p) ((((p)[0])*0x01000000) \
  2.                    + (((p)[1])*0x00010000) \
  3.                    + (((p)[2])*0x00000100) \
  4.                    +  ((p)[3]) )
  5. ------------
  6. bool cbLogtofile(int argc, char* argv[])
  7. {
  8.          if (argc > 0)
  9.          {
  10.                  if ((argv[1] == 0) || (argv[2] == 0))
  11.                         return true;
  12.                  GetCurrentDirectory(MAX_PATH, message);
  13.                  sprintf(LogPathName, "%s\%s", message, argv[1]);
  14.                  char strformat[MAX_PATH] = "";
  15.                  sprintf(strformat, "%s", argv[2]);
  16.                  int res = 0;
  17.                  for (char const* p = strformat; *p; p += strncmp(p, "%%", 2) ? 1 : (++res, 2));
  18.                  if (res == argc - 3)
  19.                  {
  20.                         string s = strformat;
  21.                         char repl[MAX_PATH] = "";
  22.                         char t[5];
  23.                         for (size_t i = 0; i < argc; i++)
  24.                         {
  25.                               if (> 2)
  26.                               {
  27.                                    auto pos = s.find('%');
  28.                                    if (pos >= 0)
  29.                                    {
  30.                                        strncpy(t, &s[pos], 3);
  31.                                        t[3] = 0;
  32.                                        switch (MAKECODE(t))
  33.                                        {
  34.                                        case MAKECODE("%%p"):
  35.                                           sprintf(repl, "%p", DbgValFromString(argv[i]));
  36.                                           s.replace(pos, 3, repl);
  37.                                           break;
  38.                                        case MAKECODE("%%d"):
  39.                                           sprintf(repl, "%d", DbgValFromString(argv[i]));
  40.                                           s.replace(pos, 3, repl);
  41.                                           break;
  42.                                        case MAKECODE("%%u"):
  43.                                           sprintf(repl, "%u", DbgValFromString(argv[i]));
  44.                                           s.replace(pos, 3, repl);
  45.                                           break;
  46.                                        case MAKECODE("%%s"):
  47.                                           char str[XEDPARSE_MAXBUFSIZE];
  48.                                           DbgGetStringAt(DbgValFromString(argv[i]), str);
  49.                                           sprintf(repl, "%s", str);
  50.                                           s.replace(pos, 3, repl);
  51.                                           break;
  52.                                        case MAKECODE("%%x"):
  53.                                           sprintf(repl, "0x%llx", DbgValFromString(argv[i]));
  54.                                           s.replace(pos, 3, repl);
  55.                                           break;
  56.                                        case MAKECODE("%%X"):
  57.                                           sprintf(repl, "0x%llX", DbgValFromString(argv[i]));
  58.                                           s.replace(pos, 3, repl);
  59.                                           break;
  60.                                        case MAKECODE("%%i"):
  61.                                           BASIC_INSTRUCTION_INFO soursedata;
  62.                                           DbgDisasmFastAt(DbgValFromString(argv[i]), &soursedata);
  63.                                           sprintf(repl, "%s", soursedata.instruction);
  64.                                           s.replace(pos, 3, repl);
  65.                                           break;
  66.                                        case MAKECODE("%%a"):
  67.                                           char Comment[XEDPARSE_MAXBUFSIZE];
  68.                                           DbgGetCommentAt(DbgValFromString(argv[i]), Comment);
  69.                                           sprintf(repl, "%s", Comment);
  70.                                           s.replace(pos, 3, repl);
  71.                                           break;
  72.                                        }
  73.                                    }
  74.                               }
  75.                         }
  76.                         sprintf(strformat, "%s", s.c_str());
  77.                         ScriptWriteLog(strformat);
  78.                         sprintf(strformat, "%s\n", strformat);
  79.                         GuiProcessEvents();
  80.                         GuiAddStatusBarMessage(strformat);
  81.                  }
  82.          }
  83.          return true;
  84. }

не все аналоги подобрал, но мне для задачи хватило.

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 28 июня 2019 20:54 New!
Цитата · Личное сообщение · #12

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

Случаем увидел тут --> AdvancedScript 4.0 <--, еще не глядел, но думаю это то что мне надо....


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

Создано: 28 июня 2019 22:38 New!
Цитата · Личное сообщение · #13

PEvgen пишет:
но думаю это то что мне надо

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


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

Создано: 4 июля 2019 21:37 New!
Цитата · Личное сообщение · #14

Надеюсь автор плагина читает эту ветку ..

nfdx64dbg плагин (https://github.com/horsicq/nfdx64dbg) ломает настройки стилей в последней версии дебагера, хотя и в предыдущих тоже, подробности можно посмотреть здесь - --> Link <--

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



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

Создано: 5 июля 2019 18:45 New!
Цитата · Личное сообщение · #15

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

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

Создано: 7 июля 2019 15:01 New!
Цитата · Личное сообщение · #16

Unfortunately the type system is a bit jank and unclear to use. Here are some blog posts that explain it in more detail:

https://x64dbg.com/blog/2016/12/04/type-system.html
https://x64dbg.com/blog/2016/11/27/weekly-digest-14.html#types

Currently the main issue is that there is no ready-made JSON to import types from (similar to IDA type libraries), so you manually have to hack everything together (the C parser is written by hand and is very crappy). The plan was to write something similar to 010 editor's templates (perhaps kaitai struct) that would allow you to inspect the data in a programmatic way, but I never got around to it.

The API to display custom structures is available for plugins, so it would be possible for example to have a PE parser plugin that will lay out the structure for the user to view. Like most things however it is hardly ever used (I used it only a few times to display a CONTEXT structure) so there are not many improvements happening in that area. If you have specific questions or requests feel free to ask, but nowadays I'm mostly busy improving performance and stability so I don't know if I will be able to address them.

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



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

Создано: 7 июля 2019 15:40 New!
Цитата · Личное сообщение · #17

mak пишет:
Надеюсь автор плагина читает эту ветку ..

nfdx64dbg плагин (https://github.com/horsicq/nfdx64dbg) ломает настройки стилей в последней версии дебагера, хотя и в предыдущих тоже, подробности можно посмотреть здесь - --> Link <--


Спасибо за тестирование. Я пишу плагины для x64dbg по туториалу от автора. --> Link <-- Это конечно всё можно исправить, но для этого нужно использовать недокументированные способы, которые могут и не работать в следующих версиях x64dbg.


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

Создано: 27 июля 2019 05:44 New!
Цитата · Личное сообщение · #18

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


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

Создано: 8 октября 2019 21:24 · Поправил: Bronco New!
Цитата · Личное сообщение · #19

Хз какой то косяк пошёл с скриптовым двиглом.
DbgValFromString в место значения из переменной по скрипту, тупо конвертирует в число имя переменной.
Проверил на свежем сдк, баян тот же. студия 2015, вин10.1809
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 .
 eXeL@B —› Софт, инструменты —› Mr.eXoDia x64 dbg

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

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