![]() |
eXeL@B —› Софт, инструменты —› new Syser Debugger by reversecode |
<< . 1 . 2 . 3 . 4 . >> |
Посл.ответ | Сообщение |
|
Создано: 21 мая 2017 04:33 · Поправил: Модератор · Личное сообщение · #1 ![]() история реверса в оффтопе кто не видел благодарностей не надо, багов наверняка там еще много, как собственных так и в процесса реверса, TODO тоже еще есть но в целом уже можно запустить, трейсить, ставить бп, добавлять вотчи, даже плагины, итд интересны моменты(багрепорты) когда дебаггер будет падать x32/x64 https://www.sendspace.com/file/t4lpr5 - недоступна, в розыске последняя версия кто успел сохранить 4 июня 2017, 20:59:10 http://rgho.st/67jjLSRTg 1607 210517 add handle int 3 fix mouse scroll fix memory leak PEFile read import 0413 230517 fix crash on delete watch item improve terminate debug add FlushInstructionCache on WriteMemory start debug from cmdline 2046 230517 improve reset(reload the input file) (WO hotkey) 1528 240517 hide BP(CCh) bytes from HexView, show original value colored BP(code,data) in HexView done re PopupMenu on HexView (hotkey not tested), operation toolbar in TODO done re command(edit,move,compare) memory 0203 250517 done re ModuleList window done re ascii/unicode string context ref fix env path by add manifest 2224 250517 fix crash without dbg plugin first build x64 1813 280517 fix mouse wheel scroll on x64 fix scroll by UPbtn bar add ALT+ hotkey fix fit hexview on x64 fix hexview change addr on edit addr area fix align stackview on x64 fix str sym ref on \t add resolve ctx ref on r8-r15 CPU reg x64 improve PE loader for x64, for resolve import/export sym fix select bytes on hexview for x64 add show EB line jmp ref chg addr/offs represent on codeview 0731 290517 fix PE Loader for x64, to read import/export for hibase > 32bit, as example kernelbase.dll done re sym command, allow show/add symbol/use it for set breakpoint fix readpe onload file, for correct read sizeof file for x64 fix search module range and module info status for x64 1258 040617 fix disable load x86 on syser x64 fix fmt fit addr exception violation on syser x64 fix PID/TID status and expr var fix fit addr tab in code/data view for x64 fix 'p ret' cmd, run to return implement SDK menu api done re process list window (attach work, detach from target at todo) starting re peexplorer window 1559 040617 fix load SyserColor.cfg from old SyserOption.exe util https://www.sendspace.com/file/l7r3pw 2058 040617 improve highlight keyword api и пример плагина в архиве дистрибутива x32 ![]() x64 ![]() ![]() |
|
Создано: 26 мая 2017 00:24 · Личное сообщение · #2 F11 step branch о котором я писал последний раз в офтопе, перечитайте его даже в x64dbg хотели добавлять.... он не реализован в ring3 сисера, только в ring0 есть там нужен доступ на запись в MSR или DR7... и хз даст ли винда поменять там тот бит... надо экспериментировать, тестировать.. посему пока будет как стептрейс дизасм да, сыроватый, китайцы его наверное особо и не тестили ![]() |
|
Создано: 26 мая 2017 00:43 · Поправил: Haoose-GP · Личное сообщение · #3 |
|
Создано: 26 мая 2017 12:39 · Поправил: Veliant · Личное сообщение · #4 Поддержу немного тему. Плагин-хайдер для нового сайсера. Распаковывать так же как и размещены в архиве - syser_hide.dll в Plugins, hide_generic.dll рядом с главным exe. Кто хочет, может использовать hide_generic.dll в своих проектах. Грузится отладчиком через LoadLibrary и больше ничего делать не надо. Библиотека устанавливает хук на ZwWaitForDebugEvent в процессе отладчика и из обработчика устанавливаются все остальные хуки и патчится память в отлаживаемом процессе. Конфиг зашит в самой dll в конце файла в виде ([\x00] - выключено, любой другой символ - включено): Code:
Тестовый пример под отладкой ![]() Upd: сам же нашел баг... в режиме syswow64 хуки не ставятся тк код отличается от версии x86 ![]() |
|
Создано: 28 мая 2017 19:06 · Личное сообщение · #5 обновил, много всяких багов все еще в портировании на x64 долго фиксил peloader под x64 для резолва символов в дизасме, надеюсь все гуд 1813 280517 fix mouse wheel scroll on x64 fix scroll by UPbtn bar add ALT+ hotkey fix fit hexview on x64 fix hexview change addr on edit addr area fix align stackview on x64 fix str sym ref on \t add resolve ctx ref on r8-r15 CPU reg x64 improve PE loader for x64, for resolve import/export sym fix select bytes on hexview for x64 add show EB line jmp ref chg addr/offs represent on codeview ![]() |
|
Создано: 28 мая 2017 19:20 · Поправил: dosprog · Личное сообщение · #6 |
|
Создано: 29 мая 2017 07:42 · Личное сообщение · #7 продолжаем фиксить x64, обновил еще 0731 290517 fix PE Loader for x64, to read import/export for hibase > 32bit, as example kernelbase.dll done re sym command, allow show/add symbol/use it for set breakpoint fix readpe onload file, for correct read sizeof file for x64 fix search module range and module info status for x64 ![]() |
|
Создано: 29 мая 2017 13:38 · Поправил: TryAga1n · Личное сообщение · #8 reversecode пишет: интересны моменты(багрепорты) когда дебаггер будет падать 64 битная версия: При поптыке открыть x86 приложение, все намертво зависает. 32 битная версия: При попытке открыть незапротекченое Microsoft Visual C#11 приложение, висит. Если EP находится в хидере, так же получаем полный висяк. C нулевым EP тоже висит. Решение хз, наверное криво написан парсер хидера ![]() |
|
Создано: 29 мая 2017 14:08 · Личное сообщение · #9 с такими баг репортами можете сразу и фиксы предлагать ![]() про первый знаю, уже столкнулся, но не разбирался.. хз должен же наверное CreateProcess как то говорить что не может создать процесс ? а второе даже и пробовать не с чем, шарпа вроде и нет под рукой.. в винде разве что поискать Добавлено спустя 5 минут http://bbs.pediy.com/thread-217773.htm китайцы про обсид что то пишут, я так думаю там акксес виолайшин из за протекта ? т.е. не баг ? или нужно сделать что бы игнорились эксепшены как в ольке ? ![]() |
|
Создано: 29 мая 2017 14:14 · Личное сообщение · #10 |
|
Создано: 29 мая 2017 14:14 · Личное сообщение · #11 |
|
Создано: 29 мая 2017 14:17 · Личное сообщение · #12 |
|
Создано: 29 мая 2017 14:20 · Личное сообщение · #13 |
|
Создано: 29 мая 2017 14:57 · Личное сообщение · #14 reversecode пишет: а второе даже и пробовать не с чем, шарпа вроде и нет под рукой.. в винде разве что поискать Извращения Corkami над РЕ форматом https://github.com/corkami/pocs/tree/master/PE и тут, если полистать https://code.google.com/archive/p/corkami/downloads?page=1 ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 29 мая 2017 18:14 · Поправил: reversecode · Личное сообщение · #15 в этом нужен будет совет, от тех кто сражаются с пакерами и протекторами можно полагаться на pe header всегда ? чувствительна ли к нему винда ? а то что бы не вышло так что я поставлю условие на проверку к примеру архитектуры, опшион хеадера, гуи систем а потом окажется что какие то файлы их не проходят, а винда вообще плюет на все это и тупо запускает... так что нужен совет какие данные брать для проверки формата на валидность для запуска в отладчике ![]() |
|
Создано: 29 мая 2017 18:21 · Личное сообщение · #16 |
|
Создано: 29 мая 2017 19:10 · Личное сообщение · #17 |
|
Создано: 29 мая 2017 20:17 · Поправил: dosprog · Личное сообщение · #18 |
|
Создано: 29 мая 2017 20:33 · Личное сообщение · #19 я пока еще не смотрел в чем там проблема, но судя по всему одного CreateProcess мало, и оно там(в винде) не проверяет что запускает сорс отладчика есть в офтопе, там проверка если CreateProcess вернет 0, ноль не возвращает, иначе бы отлуп был по открытию файла... значит винда ничего не проверяет..... и возвращает не ноль ![]() |
|
Создано: 29 мая 2017 20:36 · Поправил: difexacaw · Личное сообщение · #20 reversecode > какие данные брать для проверки формата на валидность для запуска в отладчике Модуль валидный, если он может быть загружен. Следовательно для валидации его нужно загрузить штатными средствами, к примеру создать файловую секцию(SEC_IMAGE) и если она будет успешно создана, то образ валид. Процесс создать тоже самое по сути, тоже образ мапится, но только там левые механизмы используются, так что излишне. ----- vx ![]() |
|
Создано: 29 мая 2017 20:54 · Поправил: reversecode · Личное сообщение · #21 поигрался с STEP BRANCH обсуждал ранее в офтопе не заводится он... краткий екскурс, винда позволяет через DR7 бит 8 и 9 добираться до MSR 0x1D9 ставим TF в EFLAGS и 9 бит в DR7 (тоже что и 2 бит в 0x1D9) и должны генерится #DB которые должна ловить WaitForDebugEvent ставим оба флага, отпускаем треид и выполнения пролетает мимо всех инструкций, как будто никаких TF и BTF не стоит вообще и завершается никаких других евентов в WaitForDebugEvent кроме терминейта, не приходит... т.е. установленный 9 бит в DR7 что то делает, только делает что то странное, ощущения что вообще степ трейс отключает причем если бы он не устанавливался, то работал бы установленный TF в EFLAGS, а так получается и TF игнорится... загадка ех жаль, такая хорошая идея пропала смотрел в свой ntoskrnl.exe все присутствует, т.е. код который позволяет через DR7 9 бит включать BTF , есть значит где то в другом собака зарыта... заресечил бы кто ? ![]() |
|
Создано: 29 мая 2017 21:12 · Поправил: difexacaw · Личное сообщение · #22 |
|
Создано: 29 мая 2017 21:33 · Личное сообщение · #23 core2duo и всякие Corei5 и выше это не такое уж и новое железо)) и оно не отображается, оно меняет http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_Resource_Kit-ACADEMIC/WindowsResearchKernel-WRK/WRK-v1.2/base/ntos/ke/amd64/procstat.asm вот пример из старого врк для амд для интелла там только проверка на интел ![]() |
|
Создано: 29 мая 2017 21:48 · Поправил: difexacaw · Личное сообщение · #24 reversecode В том году разбирали это на r0crew. Оказалось что железячная фича и ось не причём, но я не помню подробности, в принципе могу попробовать поискать, если телеграм хранит логи. Если хотите правильно сделать, то нужно почитать доки Интела по порту сей фичи и её поддержку, затем определить камень и что он поддерживает этот механизм, как обычно cpuid. Может лучше это сделать стандартными методами - драйвер, msr, branch trace. ----- vx ![]() |
|
Создано: 29 мая 2017 21:56 · Поправил: reversecode · Личное сообщение · #25 ну так естесно железная фитча MSR но достучаться к MSR можно только в r0 а тут оказывается винда дает бекдор к этим регистрам, через биты DR7 регистра в r3 только вот все равно не работает... ладно, разобрался с запуском x86 прог на x64 дебагере CreateProcess работает, а чего ему собственно не работать, он то в емуляторе пускает, все верно, вот только дебаг евенты уже другие приходят STATUS_WX86_BREAKPOINT //Exception status code used by Win32 x86 emulation subsystem такие не хендлятся, вот оно и висит в бесконечном цикле.... так что надо ставить какую то проверку, созданный ли процесс через CreateProcess emu или нет если на 64 и emu, значит тушим и выходим по хорошему я бы сделал что бы x64 дебагером и x86 проги можно было отлаживать... но думаю утону пусть это будет в TODO а сейчас это просто как то ловить и зарезать такие проги Добавлено спустя 28 минут отладка x86 на x64 исправлена через IsWow64Process ![]() |
|
Создано: 30 мая 2017 08:19 · Поправил: spinz · Личное сообщение · #26 |
|
Создано: 30 мая 2017 12:13 · Поправил: reversecode · Личное сообщение · #27 ну не бит, число Code:
Добавлено спустя 5 часов 1 минуту spinz не помню, есть разве разница в каком порядке грудятся drx регистры ? __writedr это непосредственная запись mov dr0, итд Code:
Code:
![]() |
|
Создано: 01 июня 2017 02:49 · Личное сообщение · #28 |
|
Создано: 01 июня 2017 03:32 · Личное сообщение · #29 |
|
Создано: 01 июня 2017 03:38 · Личное сообщение · #30 reversecode посмотри плезир у себя, как сисер кодирует в архитектуре х64 инструкцию "MOV REG, 0x80000000" в х64dbg какой то звиздец с этой константой. XEDParse кодирует её отрицательной "MOV REG, -0x80000000", или это косяк декодировки капстона. AsmJit при асмбле выдаёт полную жесть "41 B8 00 B4 C4 04| MOV R8D, 4C4B400" Один Keystone иногда кодирует правильно "49 B8 00 00 00 80 00 00 00 00| MOVABS R8, 80000000", но не всегда, чаще выдаёт такое же как и AsmJit. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. ![]() |
|
Создано: 01 июня 2017 04:02 · Личное сообщение · #31 VOLKOFF та это я видел, но что ложится в fs там не показано, у чела в статье сразу кусок дизасма где 0 строкой <00> mov [rsp+0x8],rcx <05> sub rsp,0x28 вообщем наверное нужно свои примеры сбилдить и посмотреть нужно всего лишь для красивой разукраски стеквотча, для x86 не делал... и вот думаю если делать, то можно ли будет так и для x64 разукрасить... Bronco я асм еще не вытягивал с сисера, он там есть факт, но умеет ли 64 хз вытягивать ли его тоже хз, вамит сказал что без дизасма ему один асм не зачем а дизасм в апи там будет жесть... но если отталиваться от того что сисер дизасмит, то таким же образом я думаю он и ассемблит а диасмит он так DISASM 49 b8 00 00 00 80 00 00 00 00 Len 10 = ' mov r8,80000000' Добавлено спустя 1 час 9 минут печаль, асм в сисере 16/32 ![]() |
<< . 1 . 2 . 3 . 4 . >> |
![]() |
eXeL@B —› Софт, инструменты —› new Syser Debugger by reversecode |
Эта тема закрыта. Ответы больше не принимаются. |