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

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


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

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

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

 eXeL@B —› Софт, инструменты —› Плагины к отладчику Mr.eXoDia x64/x32 dbg
<< . 1 . 2 . 3 . 4 . 5 . >>
Посл.ответ Сообщение


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

Создано: 1 мая 2017 07:40 · Поправил: Bronco New!
Цитата · Личное сообщение · #1

#ifdef
немного оффтопика, шапка всё таки.
Отладчик набирает потихоньку обороты, базовая платформа достаточно гибкая.
Сам проект опен сорс, как и остальные крос платформенные движки в нём из пользованные.
Неплохой pluginsdk, к сожалению мало описания в help, но по хидерам разобраться довольно не сложно.
Собственно в чём вопрос ?
Парни всё есть, но никто ничего не пишет.
//Для OllyDbg на тутсях целый раздел и с плагинами и с скриптами.
Вот по случаю решил пополнить копилку. Хз что, но пока мутил было интересно.
Рассчитываю, что это даст старт, более практичным обсуждениям и в плане программирования и в плане решения разных задач.
Топик для всех плагинов, которые либо есть, либо будут.
Многие из тех что есть так же опен сорс.
В общем не Грааль конечно, но лудоманить на этом не приветствую.
#else
О плагине !
Из того что в разработке, но частично готово.
Меню отладчика
- Чистим историю открытия приложений, скриптов и командной строки:
Меню отладчика //- Зарегистрировано пока 9 новых команд для скриптового движка.
- RipAsmCode - описание в мсг
- RipAsmInstruction - описание в мсг
- FindAsmInstruction - описание в мсг
- FunctionAsmEnd - описание в мсг
- FunctionLogClear
- FunctionLabelClear
- FunctionScriptAbort
- FunctionFindPointer - описание в мсг
- FunctionGetTime
Меню отладчика
- Параметры Деобфускатора//сохраняются в ини
Меню отладчика
-- Параметры "обхода лапши"//сохраняются в ини
Меню отладчика
-WannabeUIF под обе архитектуры
Меню диззасма:
- Деобфускатор // бетка
- В выделеном листинге перемещаем все нопы вниз.
- Обходим лапшу из jmp&jcc//статик трассировка в выделенную страницу
- Освобождаем память от выделенной страницы, и удаляем все записи в лейбах.
#endif
Под х86 тестировалось инерциально, под х64 пока только на паре тройке семплов..))
Из нерешённого, это кьют_виджеты, идея перетащить табшиты лога и скрипта в окно дампа как то не решается.
И пройтись по элементам дальше хендлов дочерних окон с ClassName Qt5QWindowIcon, пока не получается.
--> Эта <-- тема актуальна, оптимизация по шаблонам(потернам) довольна реальна, но как организовать базу данных для них, пока не решалась.
Линк запостил.
--> от 24 июля 2017<--
Дальше посмотрим, что из этого топа выйдет.
//ахах топ потыхеньку умирает, сколько бы не постил

| Сообщение посчитали полезным: mak, zNob, Haoose-GP, v00doo, jinoweb, ClockMan



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

Создано: 7 мая 2017 05:38 New!
Цитата · Личное сообщение · #2

shellstorm пишет:
Если интересно погонять плагин

ок.shellstorm пишет:
все же пересобрал часть отладчика

респект конечно, но у меня поначалу то же оптимистично всё было, пока не надоело.
чтобы на исузах не толкаться, была мысль, на лябе постить все фиксы в сорцах, но воли не хватило.
shellstorm пишет:
Там просто список апи, никаких интеллектуальных подсказок нет

ну хоть что то есть, в --> этом просто редачь. <--
и вроде в меню прописывается, а на форме тупо всё вешает --> Link <--


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

Создано: 7 мая 2017 10:21 New!
Цитата · Личное сообщение · #3

Bronco Отредактируй шапку темы, добавь линки с названиями плагинов для разных систем, 32-64 отдельно =) Тема про плагины, а плагинов наверху нет


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

Создано: 7 мая 2017 11:14 New!
Цитата · Личное сообщение · #4

mak пишет:
отредактируй шапку темы

воли мало, будет обнова или пополнение, отредачу.

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

Создано: 8 мая 2017 06:59 New!
Цитата · Личное сообщение · #5

Bronco пишет: но у меня поначалу то же оптимистично всё было

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

теперь к плагинам, на питоне их тоже можно вполне годно писать, местами даже лучше чем на c\c++.
нужно установить все из этого списка:

python 2.7
Visual C++ for Python
package manager
setuptools
cython compiler
лишним не будет:
cython tutorial
в аттаче приме примитивного плагина.
немного о структуре:
здесь прописываем настройки сборки, имя плагина, иклуды, библиотеки, опции сборки: setup.py
здесь пишем код, по хорошему нужно было еще и pxd создавать, но сойдет и так: install_bp.pyx
здесь код функции на c, сделано намеренно, можно было писать и на пюре питон, но кому сложно сразу с ним разобраться, показан выход, эта функция используется в install_bp.pyx: bridge.c
все, остальное уже смотреть и разбираться.
собирается все батником.

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

Добавлено спустя 33 минуты
забыл, в скриптовом движке самого отладчика бага.
скопировать: call и вставить в окно скрипта

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

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



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

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

shellstorm пишет:
у меня все сломалось

сочувствую. но там местами действительно не очень весело.
наиболее качественная запись это отладочная
Code:
  1. BRIDGE_IMPEXP bool DbgAssembleAt(duint addr, const char* instruction)
  2. {
  3.     if(_dbg_sendmessage(DBG_ASSEMBLE_AT, (void*)addr, (void*)instruction))
  4.         return true;
  5.     return false;
  6. }

но она не всегда булку возвращает, местами раньше на мсг уходит. и дальше аут.
далее.
на х64 кейстоун и асмжт при записи увеличивают размер инструкции. пример: mov->movabs
для XEDParse пока критичны 2 опкода,
Code:
  1. if (!strcmp(opcode, "movss") || !strcmp(opcode, "comiss"))

но двиг XEDParse наоборот уменьшает местами размер инструкции
Code:
  1. edit_size::0000000145BB2F44::nop word ptr cs:[rax + rax]::engine::XEDParse
  2. edit_size::0000000145681DA7::nop word ptr [rax + rax]::engine::XEDParse
  3. edit_size::0000000145681E18::nop dword ptr [rax + rax]::engine::XEDParse
  4. edit_size::0000000145BAE835::or r8, 0xffffffffffffffff::engine::XEDParse
  5. dit_size::0000000145681DB0::mov word ptr [rcx - 0x10], r13w::engine::XEDParse
  6. edit_size::0000000145BB8EB5::or rax, 0xffffffffffffffff::engine::XEDParse

Multiline Ultimate Assembler хорош тем, что он не ломает саму функцию, независимо от того изменился ли размер инструкции в цикле

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

Создано: 8 мая 2017 13:01 New!
Цитата · Личное сообщение · #7

Bronco пишет: сочувствую. но там местами действительно не очень весело.

Фигня случается.

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

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


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

Создано: 8 мая 2017 17:19 New!
Цитата · Личное сообщение · #8

shellstorm пишет:
Рановато скрипты внесли в сам двиг,

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

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

Создано: 8 мая 2017 18:40 New!
Цитата · Личное сообщение · #9

Bronco пишет: с качеством разобрались, но при таких подходах, на больших объёмах, это всё долго.

Это то понятно, что оно когда то будет, но хочется же прямо сейчас. )


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

Создано: 8 мая 2017 21:13 New!
Цитата · Личное сообщение · #10

shellstorm пишет:
но хочется же прямо сейчас. )

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

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

Создано: 8 мая 2017 21:50 New!
Цитата · Личное сообщение · #11

Bronco пишет: не загружает файл *.rc, и обновляться не хочет, и с переустановкой траблы.

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


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

Создано: 9 мая 2017 08:12 · Поправил: Bronco New!
Цитата · Личное сообщение · #12

shellstorm пишет:
repair нифига не ремонтировало.

вы*бало по полной, выручил --> VisualStudioUninstaller <--
не знаю какие задачи Вы решаете, и чего ожидаете, ша с настройками разберусь, фронтовиков уважу, и чего нить залью.

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

Создано: 11 мая 2017 19:25 New!
Цитата · Личное сообщение · #13

NFD plugin for x64dbg (Linker/Compiler/Tool detector)

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



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

Создано: 11 мая 2017 21:14 · Поправил: difexacaw New!
Цитата · Личное сообщение · #14

Bronco

> difexacaw, менторский тон не воспринимаю априори, поэтому плезир, отредач свой --> пост <-- сам, и желательно ответом на мой вопрос, через призму текущей темы. "деды воевали" оставь для васма.

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

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

Создано: 12 мая 2017 02:22 New!
Цитата · Личное сообщение · #15

hash87szf пишет: страшно, ну прям не верится что читать сигнатуры с файлцо

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


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

Создано: 12 мая 2017 17:23 · Поправил: Bronco New!
Цитата · Личное сообщение · #16

Dart Raiden пишет:
(Linker/Compiler/Tool detector)

я так понял что базы с сигнатурами прошиты.
не дурно бы, для перспективы, чтобы побольше от Detect-It-Easy by hors в плагин добавить, место же ещё много.
у PE-Header-Dump-Utilities один недостаток, всё в лог пишется.
Bronco пишет:
и чего нить залью.

немного погонял на качество, в XEDParse + ещё N критических опкодов.
Code:
  1. enter -0x38e1, -0x7f::engine_error::XEDParse 
  2. prefetcht0 byte ptr [r9]::engine_error::XEDParse
  3. imul r10, rax, 0x320::engine_error::XEDParse
  4. fisttp dword ptr [rax - 0x7b]:: engine_error::XEDParse
  5. and rax, 0xfffffffffffff000::engine_error::XEDParse
  6. ficomp dword ptr [rbx]::engine_error::XEDParse
  7. fcom qword ptr [rbx] engine_error::XEDParse
  8. comisd xmm3, xmmword ptr [0x141dd5498]::engine_error::XEDParse
  9. fisubr dword ptr [rax + rcx*2]::engine_error::XEDParse
  10. fldenv [rsi] engine_error::XEDParse
  11. mov cr5, rbx::engine_error::XEDParse 
  12. FDIVRP ST(6)::engine_error::XEDParse

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

Создано: 16 мая 2017 22:32 New!
Цитата · Личное сообщение · #17

Bronco the assembler engines are not all on the same page currently, which is basically the reason there are multiple. Personally I would recommend to use asmjit because it is based on the most stable backend. XEDParse was really a project done when no other x64 assembler engine was available and it's mostly outdated with lots of bugs.

As for the different sizes of the output. Often compilers don't output the most efficient representation for an instruction so re-assembling them with any assembler engine could cause the instruction to become smaller. You can use the 'Fill with NOPs' option to work around this.

shellstorm Not sure what this crash is you mention when pasting a script. Could you paste the script you pasted? Some time ago I fixed a possible crash when loading an empty script, perhaps you are using an older version?

difexacaw not sure what the relevance of AVL trees would be, considering that a control flow graph is not really something you model with a tree. The graph representation in x64dbg is pretty efficient, but could probably be improved by using a better hash map in combination with a pool allocator but I didn't find any performance problems on the analysis myself, even on gigantic functions.

As for the graph representation, do not use the raw BridgeCFGraphList, BridgeCFNodeList and BridgeCFInstruction. They are only provided as a serialization mechanism to transport the graph representation over a C API. You should instead use BridgeCFGraph (https://github.com/x64dbg/x64dbg/blob/development/src/gui/Src/Gui/DisassemblerGraphView.cpp#L1595).

You can then use "node=graph.nodes[graph.entryPoint]" to get the basic block (BridgeCFNode) of the function start. From there you can use "graph.nodes[node.brtrue]" and "graph.nodes[node.brfalse]" to traverse the graph. You can also walk the graph backwards using the "graph.parents" in a similar way.

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



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

Создано: 16 мая 2017 23:05 New!
Цитата · Личное сообщение · #18

mrexodia

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


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

Создано: 17 мая 2017 00:31 · Поправил: Bronco New!
Цитата · Личное сообщение · #19

mrexodia пишет:
recommend to use asmjit

угу...
оригинал и XEDParse
Code:
  1. 48 8B 05 15 00 00 00 | MOV RAX, QWORD PTR DS:[14B28219C] 

asmjit и Keystone
Code:
  1. 48 A1 9C 21 28 4B 01 00 00 00 | MOVABS RAX, QWORD PTR DS:[14B28219C] 

все выравнивания нопами asmjit чаще пишет как один байт 90, иногда 2 простых нопа.
а в источнике
Code:
  1. 0F 1F 40 00| NOP DWORD PTR DS:[RAX] 
  2. 66 0F 1F 84 00 00 00 00 00| NOP WORD PTR DS:[RAX + RAX] 

любая залоченная инструкция и мы с асмжт в ауте.
Keystone частенько портит указатели, + увеличивает размер инструкций.
В каждом двиге свои траблы.
Играться вроде можно сетингом двигов, но изменить не успеваем. - часто на записи вылазит
"COULD NOT ALLOCATE MEMORY"
даже бул ретурном не возвращают.
почему не посмотреть в сторону дизасма от мелких?
Как отключить к *беням, регистрацию патченных байтов ?
Во первых , предел 10000 байт, дальше отладчик начинает задыхаться.
Во вторых, все что пишется байткодом, патчем тупо не регистрируется, в итоге от него смысла нет, приходиться дампить и ребилдить. Ещё чего нить накидать?


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

Создано: 17 мая 2017 01:50 · Поправил: reversecode New!
Цитата · Личное сообщение · #20

а что там должно быть ?
загнал в сисеровский дизасм ради интереса

Code:
  1. DISASM 48 8b 05 15 00 00 00  Len 7 = ' mov rax,[0000001c]'
  2. DISASM 48 a1 9c 21 28 4b 01 00 00 00  Len 10 = ' mov rax,[14b28219c]'
  3. DISASM 0f 1f 40 00           Len 4 = ' nop [rax]'
  4. DISASM 66 0f 1f 84 00 00 00 00 00  Len 9 = ' nop [rax+rax+00000000]'


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

Создано: 17 мая 2017 02:19 · Поправил: Bronco New!
Цитата · Личное сообщение · #21

размер источника для мовика с указателем 7 байт, кеды так и пишут, остальные 2 двига инструкцию кодируют как 10 байт. причём прицепились только к rax.
выравнивание нопами по коду довольно много, на примере первого, источник 4 байта, кеды записали как 4, кейстоун как 3, асмжт тупо 1 ноп.
тела фунок с пост и предусловиями, и более сложными циклами.
попадаются подпрограммы где есть и lock, и movss, и места под гланды. тихий шок.
при долгой работе отладчика по скрипту система притормаживает, глянул по диспетчеру нажрал 2.5 гига.
стартовал с 70 мб.

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

Создано: 17 мая 2017 12:23 New!
Цитата · Личное сообщение · #22

mrexodia пишет: Some time ago I fixed a possible crash when loading an empty script, perhaps you are using an older version?

1. open dbg
2. paste:call
3. close dbg
...


Добавлено спустя 18 минут
difexacaw пишет: что мы совсем глупые

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


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

Создано: 17 мая 2017 14:50 New!
Цитата · Личное сообщение · #23

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

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

Создано: 17 мая 2017 14:55 · Поправил: v00doo New!
Цитата · Личное сообщение · #24

reversecode, когда там уже ring3 syser запаблишишь ?
Bronco пишет:
все выравнивание asmjit пишет как один байт 90

Видимо логика у авторов была такая - раз это nop, то заменяем на 90, экономим память, а раз он заменяет, значит понимает что это 4 и 9 байтный ноп.


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

Создано: 17 мая 2017 16:05 New!
Цитата · Личное сообщение · #25

Bronco

Покажите на примере.

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

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



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

Создано: 17 мая 2017 16:23 New!
Цитата · Личное сообщение · #26

difexacaw
на примере.
Code:
  1. JE 1462F8795  
  2. MOV DWORD PTR DS:[RAX + 8], 0 
  3. LEA RAX, QWORD PTR DS:[141CFFD40] 
  4. MOV QWORD PTR DS:[RBX], RAX  
  5. JMP 1462F8797  
  6. ADD BYTE PTR DS:[RAX], AL  
  7. ADD BYTE PTR DS:[RAX], AL
  8. _1462F8795:
  9. XOR EBX, EBX 
  10. _1462F8797:
  11. TEST RBX, RBX

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


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

Создано: 17 мая 2017 17:01 New!
Цитата · Личное сообщение · #27

Bronco

При описании графом две add не будут включены, так как нет ветвления на этот блок. Смотрите пример:





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

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



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

Создано: 17 мая 2017 17:50 New!
Цитата · Личное сообщение · #28

v00doo 64 ? за него возьмусь только когда добью и народ обкатает 32 на баги
а если альфу 32, то она всегда есть, только никому не надо

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

Создано: 17 мая 2017 18:00 New!
Цитата · Личное сообщение · #29

Bronco пишет: а вот как свернуть функу на новом месте не нарушив конструкцию, пока не вкурю

Собственно клерк как ни странно, но все верно написал.
Блок это промежуток между бранчами, смотрим вхождение адреса в блок, если его нет, значит это мусор, можно даже занопить, чтобы не отвлекало внимание. Только здесь тоже есть нюансы, в статике не всегда возможно определить вхождение адреса в блок, ведь можно и jmp eax + цифры. В целом это классическая задача по покрытию кода.
Базовый анализ и сам отладчик умеет делать
Берете проанализированные блоки и ищите среди них пересечения, адреса пересечений тоже умеет искать, но полноценный анализ без динамики невозможен и здесь остается вести свой лог по всяким jmp reg\call reg.

Добавлено спустя 6 минут
Рекомендую для ознакомления пару книг по графам написанных человеческим языком и которые можно осилить без особых знаний математики.
Алгоритмы. Построение и анализ
Фундаментальные алгоритмы на C++. Часть 5. Алгоритмы на графах

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



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

Создано: 17 мая 2017 18:30 New!
Цитата · Личное сообщение · #30

shellstorm

> Блок это промежуток между бранчами, смотрим вхождение адреса в блок

Блок" это ветвь. Если проверять по адресам, то это приведёт к классической ошибке - ветвление не на начало инструкции вызовет корреляции, например push 4/jcc $-1. Так как два такие "блока" будут перекрываться по адресам


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

Создано: 17 мая 2017 18:54 New!
Цитата · Личное сообщение · #31

shellstorm пишет:
но полноценный анализ без динамики невозможен

в смысле, трассировка в живую?
тогда динамики пока нет.
феньки, за полезное инфо, всем потыкал.
переписал_обкатываю, утечек нет, исправление размера нет, быстрее в 2,5 раза.
сборкой по блокам чуть позже займусь.
<< . 1 . 2 . 3 . 4 . 5 . >>
 eXeL@B —› Софт, инструменты —› Плагины к отладчику Mr.eXoDia x64/x32 dbg

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

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