Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.
Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )
hiew и сама ida почему то разный код показывают, может у них разный дизассемблер для ARM. В самой ida как то можно? пока не смог найти. а ОКОВа не понял, мне не в битах, а в двоичном (бинарном виде)
адреса те же, на скрине видно. Не выглядит также. Возможно hiew не может работать с thumb или thumb2. Но основное интересует, что и спрашивал, где в ida можное hex код редактировать в нулях и единицах?
Ранг: 324.3 (мудрец), 221thx Активность: 0.48↘0.37 Статус: Участник
Создано: 07 сентября 2014 13:39 · Поправил: DenCoder · Личное сообщение · #11
reversecode пишет: потому что адреса скорее всего другие, точку перед адресом нужно в hiew ставить Адреса те же, коды инструкций те же, код инструкции PUSH {R4-R7,LR} именно F0 B5. В Иде показан правильно листинг в двухбайтном Thumb-режиме, hiew пытается дизасмить в режиме ARM. Само собой в этом режиме F0 B5 будет #UD.
Попытка поиска гуглом поддержки хьюем режима Thumb ничего не дала, кроме обратного - thumb было решено не реализовывать пока. )
Но могу посоветовать свой метод, как альтернативный. Меня не напрягает открывать арм-файл и в иде и в WinHex'е, где определив нужный сегмент и подсчитав дельту в нём(часто для первого сегмента с кодом адрес виртуальный совпадает с тем, что в файле), можно без труда поправить инструкцию или данные. В Data Interpreter там можно настроить отображение в битовом представлении.
DumaZik пишет: где в ida можное hex код редактировать в нулях и единицах? dant3 предложил хороший вариант, OKOB показал вариант, как сбрасывать и устанавливать биты. Бинарного представления в иде нет, поэтому для правки битов придётся переводить в hex и обратно, что гораздо проще чем из hex в десятичный вид и наоборот.
PatchWork: de-obfuscation via IDA+PyEmu какой то фрейм ворк от фраунхофера, по деобфускации https://public.gdatasoftware.com/Web/Landingpages/DE/GI-Spring2014/slides/004_plohmann.pdf https://bitbucket.org/daniel_plohmann/idapatchwork
Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
Создано: 12 ноября 2014 21:49 · Поправил: reversecode · Личное сообщение · #24
там смотря для каких типов иды + рейсов если лицензия на юзера, то флекса нет а что разве новость?
Добавлено спустя 16 часов 39 минут CodeXplorer v1.5 released! Changes: Better Type Reconstruction, Usability Improvements https://github.com/REhints/HexRaysCodeXplorer/releases/tag/1.5
Дебажу сбойное приложение в иде, передаю ему параметры через Process Options. И мне нужно ему для краша передать ну очень длинную строку порядка 3к символов. Ида такой длинный параметр усекает. Как решить эту проблему?
----- Stuck to the plan, always think that we would stand up, never ran.
в лоб делаешь скрипт на сервере, в скрипте передаешь свои 3к символов(надеюсь линукс не треснет от такого размера) дальше в иде запускаешь отладку этого скрипта, а и ловиш уже свое приложение которое форкнет скрипт
Что значит запустить отладку скрипта? Понятно, что можно через скрипт передать параметры, и процесс стартанёт. Его (бинарь) можно предварительно запатчить, чтоб зациклился, потом аттачиться и патчить обратно. Но мне интересны адекватные способы. Допустим, в скрипте я запускаю своё приложение как-то так:
failedApp param1 param2 LONGPARAMMMMMM...MMM
как потом в иде его остановить?
----- Stuck to the plan, always think that we would stand up, never ran.
Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
Создано: 19 ноября 2014 18:09 · Поправил: reversecode · Личное сообщение · #29
в иде можно запускать приложение котрое лежит на сервере /bin/sh имя скрипта в иде передаешь на запуск ида запустить sh шел и на выполнение твой скрипт где уже будет твое приложение свое приложение и ловишь остановка выполнения в иде Ctrl+F2
Добавлено спустя -57 минут если подумать наверное еще можно поотлаживать в ида через gdb протокол на сервере тогда только запускаешь свою прогу через gdb и передаешь через gdb все параметры а в иде только аттачишься и запускаешь (не пробовал но думаю такое вполне возможно)
вот я прописал в process options путь к шеллу (/bin/sh), в параметрах передал путь к скрипту. Запустил это в иде, оно стартует, но бряки не срабатывают, как мне дебажить сбойное приложение?
----- Stuck to the plan, always think that we would stand up, never ran.
потому что нужно выйти на приложение перед его форком и заранее на нём бряк поставить(когда оно уже загружено в память но еще управление не передалось в него), а ставить бряк перед тем как оно запущенно, не сработает