eXeL@B —› Софт, инструменты —› x64dbg - Плагины |
. 1 . 2 . 3 . 4 . 5 . >> |
Посл.ответ | Сообщение |
|
Создано: 01 мая 2017 07:40 · Поправил: Bronco · Личное сообщение · #1 #ifdef немного оффтопика, шапка всё таки. Отладчик набирает потихоньку обороты, базовая платформа достаточно гибкая. Сам проект опен сорс, как и остальные крос платформенные движки в нём из пользованные. Неплохой pluginsdk, к сожалению мало описания в help, но по хидерам разобраться довольно не сложно. Собственно в чём вопрос ? Парни всё есть, но никто ничего не пишет. //Для OllyDbg на тутсях целый раздел и с плагинами и с скриптами. Вот по случаю решил пополнить копилку. Хз что, но пока мутил было интересно. Рассчитываю, что это даст старт, более практичным обсуждениям и в плане программирования и в плане решения разных задач. Топик для всех плагинов, которые либо есть, либо будут. Многие из тех что есть так же опен сорс. В общем не Грааль конечно, но лудоманить на этом не приветствую. #else О плагине ! Из того что в разработке, но частично готово. Меню отладчика - Чистим историю открытия приложений, скриптов и командной строки: Меню отладчика //- Зарегистрировано пока 9 новых команд для скриптового движка. - RipAsmCode - описание в мсг - RipAsmInstruction - описание в мсг - FindAsmInstruction - описание в мсг - FunctionAsmEnd - описание в мсг - FunctionLogClear - FunctionLabelClear - FunctionScriptAbort - FunctionFindPointer - описание в мсг - FunctionGetTime Меню отладчика - Параметры Деобфускатора//сохраняются в ини Меню отладчика -- Параметры "обхода лапши"//сохраняются в ини Меню отладчика -WannabeUIF под обе архитектуры Меню диззасма: - Деобфускатор // бетка - В выделеном листинге перемещаем все нопы вниз. - Обходим лапшу из jmp&jcc//статик трассировка в выделенную страницу - Освобождаем память от выделенной страницы, и удаляем все записи в лейбах. #endif Под х86 тестировалось инерциально, под х64 пока только на паре тройке семплов..)) Из нерешённого, это кьют_виджеты, идея перетащить табшиты лога и скрипта в окно дампа как то не решается. И пройтись по элементам дальше хендлов дочерних окон с ClassName Qt5QWindowIcon, пока не получается. Линк запостил. Дальше посмотрим, что из этого топа выйдет. //ахах топ потыхеньку умирает, сколько бы не постил ----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: mak, zNob, Haoose-GP, v00doo, jinoweb, ClockMan, fasteralex |
|
Создано: 01 мая 2017 15:46 · Личное сообщение · #2 анти анти дебаг, китайский... https://github.com/stonedreamforest/NaiHeQiao авто хуки на CreateProcess etc, vs малварь https://github.com/David-Reguera-Garcia-Dreg/DbgChild итд... https://github.com/search?q=topic%3Ax64dbg-plugin&type=Repositories хм, а Вудман RCE Tools - Collaborative RCE Tool Library прикрыли... х64дбг бажное, Иду даж приятней применять... |
|
Создано: 01 мая 2017 19:31 · Личное сообщение · #3 |
|
Создано: 01 мая 2017 19:48 · Личное сообщение · #4 difexacaw > - Как это реализовано, что за конструктор ? да все нужные данные на ладошке SELECTIONDATA select; BASIC_INSTRUCTION_INFO currentdata; Code:
GuiSelectionGet(GUI_DISASSEMBLY, &select); Code:
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 01 мая 2017 19:54 · Личное сообщение · #5 |
|
Создано: 01 мая 2017 19:54 · Поправил: VodoleY · Личное сообщение · #6 Bronco та да.. ток это можно сделать ток в динамике (трассировка). статик анализ будет чертовски адский и глючный.. либо в конце концов получится микровиртуальная машина. ЗЫ к чему я это веду... динамик построенние трассы.. чертовски тормознутая тема. Добавлено спустя 3 минуты difexacaw пишет: А как связываются эти BASIC_INSTRUCTION_INFO в списки да блин все просто.. у тебя 1ая инструкция.. а потом инструкция + ее размер.. типа следующая инсрукция.. и так до посинения. я таку байду чисто на дизасемблере делал Walker называл. все норм работает.. пока нету jmp eax или call [ebx] ну в этом роде .... те работает ток для простых вещей. но зато кода.. 30 строчек ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 01 мая 2017 20:09 · Поправил: Bronco · Личное сообщение · #7 VodoleY пишет: это можно сделать ток в динамике (трассировка). в процессе чтения_записи в секцию_страницу, чем не динамика ? либо уже позже с пром_кодом в живую в самой странице, VodoleY пишет: пока нету jmp eax или call [ebx] ну в этом роде duint addr; //addrvalue (jumps + calls) если поле в структуре равно 0, то это либо переходники в таблицы, либо переходники по содержимому указателей в регистрах общего пользования. тут так же всё просто, повторюсь плагинсдк неплохой. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 01 мая 2017 20:16 · Личное сообщение · #8 |
|
Создано: 01 мая 2017 21:04 · Личное сообщение · #9 |
|
Создано: 01 мая 2017 21:42 · Поправил: Bronco · Личное сообщение · #10 difexacaw пишет: ап. difexacaw и наше вам с кисточкой.. ответы на подобные "глубокие" вопросы , с высокой долей вероятности возможно найти ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 01 мая 2017 22:08 · Личное сообщение · #11 |
|
Создано: 01 мая 2017 22:28 · Поправил: Bronco · Личное сообщение · #12 shellstorm пишет: зачем вообще хвататься за MUA? он хорошо справляется со свёрткой цикличных конструкций, с дистанциями операторов пост и пред условий. автор предоставил хоткеи, воспользоваться этим самое простое решение. есть keystone и xed Ок...а как переключать режим асемблирования ? я этого в сдк не нашёл. и потом, каждый из этих движков на каких то инструкциях спотыкается, кеды на каких то хмм и выше, кейстоун чуть получше, асмжт ещё лучше, но и у него есть пределы. ну а так полностью согласен, возможность своей реализации всегда есть. но и тут подводные ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 01 мая 2017 22:39 · Личное сообщение · #13 Bronco пишет: Ок...а как переключать режим асемблирования ? В смысле x86/x64? asmjit флагом x64 \ false\true. Keystone завязан на разрядности отладчика, x86 отладчик и опция выставлена x86, в x64 соответственно x64. Можно совсем радикально подойти, прикрутить fasm.dll, компилить bin и уже его лить, тем более дизасм есть и можно разбить по инструкциям. Это все же проще чем связывать два плагина. Добавлено спустя 3 минуты #ifdef _WIN64 parse.x64 = true; #else //x86 parse.x64 = false; #endif |
|
Создано: 01 мая 2017 22:57 · Личное сообщение · #14 shellstorm пишет: В смысле x86/x64? не в архитектуре препятствие. в интерфейсе дизасма есть выбор движка (space). аналог в аписдк не нашёл. MUA выдаёт эксепшены , в зависимости от возможностей текущуго активного движка. ну а два плага увязать через регистрацию новых скриптовых команд, задача не сложная. так то всё шустро, за минуту до 100 подпрограмм, с размером от 60 до 600 и выше байт, переносит на родные места, а тут их порядка 17000. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 01 мая 2017 23:24 · Личное сообщение · #15 Выставляется в настройках. Code:
Добавлено спустя 17 минут забыл привести сами настройки. Code:
| Сообщение посчитали полезным: Bronco |
|
Создано: 01 мая 2017 23:52 · Личное сообщение · #16 |
|
Создано: 02 мая 2017 00:07 · Личное сообщение · #17 Bronco пишет: может что и по кьютвиджетам там есть, помимо стандарта адд ; шоу и тд? все gui здесь: https://github.com/x64dbg/x64dbg/blob/development/src/gui/Src/Bridge/Bridge.h остальное самому дописывать или подменять через хаки и надеяться, что ничего не рухнет, ну или как вариант получить размеры виджета и рисовать все поверх родного. |
|
Создано: 02 мая 2017 08:38 · Личное сообщение · #18 shellstorm пишет: все gui здесь оки. посмотрю shellstorm пишет: достаточно набросать небольшой парсер и обойтись без костылей с MUA. вот теперь полностью согласен. для этой задачи вышло где то 30 строчек. при отключенном гуе шустро получается. порядка 300х подпрограм с общими размером 30000 байт за минуту. весьма оптимистично. ну и как плуг теперь назвать? с AssemblerEngine ещё не разбирался но это нужно. без тру катч падать будем. вот первая инструкция что попалась с которой -кеды и кейстоун не дружат, асмжт проглатывает не морщась. COMISS XMM0, XMMWORD PTR [RCX + 0x188] ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 02 мая 2017 09:09 · Личное сообщение · #19 |
|
Создано: 02 мая 2017 13:44 · Поправил: shellstorm · Личное сообщение · #20 Bronco пишет: оки. посмотрю еще этот шаблон можно глянуть, если требуется что то кастомное: https://github.com/x64dbg/QtPlugin Bronco пишет: порядка 300х подпрограм с общими размером 30000 байт за минуту. весьма оптимистично. можно еще выжать скорости добавив многопоточность, задача неплохо масштабируется. |
|
Создано: 02 мая 2017 13:46 · Личное сообщение · #21 ajax пишет: репорти авторам пусть кто ближе, или в теме тот и репостит. LOCK XADD DWORD PTR [0x1421D552C], EAX - RW XED&CAPSTON, аasmjt онли R MOVSS DWORD PTR [R8], XMM0 RW CAPSTON& , XEDparser онли R COMISS XMM0, XMMWORD PTR [RCX + 0x188] RW аasmjt , XED&CAPSTON онли R чтобы все в ауте такого не было. одна инструкция с указателем либо пересчитвать, либо мнемоника, так что таскать бинариным не вариант Ексепшен "could not allocate memory", как из плага перехватить_обработать пока не разабрался ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 02 мая 2017 18:36 · Поправил: ajax · Личное сообщение · #22 |
|
Создано: 03 мая 2017 03:54 · Поправил: Bronco · Личное сообщение · #23 ajax пишет: я не из этой "оперы" да у меня так же гранаты не той системы... Bronco пишет: как из плага перехватить_обработать пока не разабрался у нас булка, тут и перехватывать ничего не надо., BRIDGE_IMPEXP bool DbgAssembleAt(duint addr, const char* instruction) а вот с AssemblerEngine пока разбираюсь shellstorm пишет: можно еще выжать скорости добавив многопоточность по моему частному случаю слишком много , поэтому в первую очередь качество. чтобы бокарезы потом не искать. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 мая 2017 05:10 · Личное сообщение · #24 Bronco пишет:а вот с AssemblerEngine пока разбираюсь Скиньте проект вашего макета плагина и опишите кратко, что именно хочется и что не получается, допилю эту часть. Bronco пишет: по моему частному случаю слишком много , поэтому в первую очередь качество. чтобы бокарезы потом не искать. Да нет, если использовать нормальную библиотеку никаких проблем не будет, тем более думаю в будущем все равно появятся cfg, иначе как код чистить. |
|
Создано: 03 мая 2017 05:19 · Поправил: Bronco · Личное сообщение · #25 shellstorm пишет: Скиньте проект вашего макета плагина и опишите кратко, что именно хочется и что не получается, допилю эту часть. по умолчанию использую asmjt, энум в хидер бриджа закинул, пока так, но уже не закрываеимся. Code:
вопрос по SetCIP, это универсальный IP под обе архитектуры ? по задаче которую надо решить. у меня в двух секциях с таблицами перебито порядка 40000 указателей, по секции кода порядка 17 000 уникальных безусловных переходов на оригинальный код приложения. Нахожу прыжки, ищу в таблицах указатели с аналогичной дистанцией, перебиваю на секцию кода, возвращаю тело подпрограммы на ролное место ..)) ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 мая 2017 06:04 · Личное сообщение · #26 Bronco пишет: вопрос по SetCIP, это универсальный IP под обе архитектуры ? Да, универсально, зависит от разрядности отладчика. За настройки отвечают функции BridgeSetting\Get\Set\Update : читаем\пишем\обновляем. Bronco пишет: Нахожу прыжки, ищу в таблицах указатели с аналогичной дистанцией, перебиваю на секцию кода В принципе вполне рабочий вариант, в IDA был плагин который делал аналогичное. Вечером гляну что там можно сделать с движками и запилю шаблон плагина. |
|
Создано: 03 мая 2017 06:53 · Личное сообщение · #27 shellstorm пишет: BridgeSetting\Get\Set\Update хм...я то думал Диа сдк в снапшотах обновляет, но собственно оно работает. немного не так как Вы предложили, но суть та же Code:
но надо делать в цикле while (true) до посинения... ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 мая 2017 07:29 · Личное сообщение · #28 Bronco пишет: немного не так как Вы предложили, но суть та же Так выше скидывал куски кода из объявлений, то бишь из самих сурсов x64dbg, сам я не писал, показал лишь интерфейс и контекст использования. В аттаче ман по api x64dbg. 2d2d_03.05.2017_EXELAB.rU.tgz - x64dbg.zip | Сообщение посчитали полезным: Bronco |
|
Создано: 03 мая 2017 08:48 · Личное сообщение · #29 shellstorm пишет: В аттаче ман по api x64dbg. ок..феньку тыкнул. вышло где то так. Code:
плаг дебажу в студии, но не могу понять почему прерывания в ней на участке кода не стабильные, надо так понимать что в среде винды будет то же самое? ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 мая 2017 13:07 · Личное сообщение · #30 |
. 1 . 2 . 3 . 4 . 5 . >> |
eXeL@B —› Софт, инструменты —› x64dbg - Плагины |