Сейчас на форуме: -Sanchez- (+9 невидимых) |
eXeL@B —› Основной форум —› Использование IDA Pro (part 2) |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 21 . 22 . >> |
Посл.ответ | Сообщение |
|
Создано: 27 марта 2017 11:54 · Личное сообщение · #1 Обмен опытом использования и настройки интерактивного дизассемблера и отладчика IDA Pro. Прошлый топик | Сообщение посчитали полезным: oxfemale, gent0o0 |
|
Создано: 11 сентября 2019 10:55 · Личное сообщение · #2 plutos пишет: для любителей языка GO В блоге (https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro/) есть упоминание депозитария Егора Зайцева, но ссылка на его набор с поддержкой Go v.1.7. После этого Егор добавил поддержку старших версий https://gitlab.com/zaytsevgu/GoUtils2.0 и переехал на https://github.com/sibears/IDAGolangHelper Он докладывал это на Zeronigths в том же 2016 году https://2016.zeronights.ru/wp-content/uploads/2016/12/GO_Zaytsev.pdf ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: plutos |
|
Создано: 14 сентября 2019 08:39 · Поправил: plutos · Личное сообщение · #3 Idapython script to carve binary for internal RPC structures Usage: Just run the script findrpc.py. Features: •View in a glance which RPC clients and servers are embedded in the binary •Locate dispatch tables for RPC servers •Quickly rename every RPC proc handlers found •(On Windows) Generate decompiled IDL from RPC declarations ******************************************************* Adds dereferenced pointers, colors and other useful information, similar to some GDB plugins (e.g: PEDA, GEF, pwndbg, etc). Supports following architectures: x86, x86-64, ARM, ARM64, MIPS32 and MIPS64 Requirements •IDA-Pro >= 7.2 ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 19 сентября 2019 02:08 · Личное сообщение · #4 ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 19 сентября 2019 20:46 · Поправил: DenCoder · Личное сообщение · #5 |
|
Создано: 19 сентября 2019 21:38 · Личное сообщение · #6 |
|
Создано: 19 сентября 2019 21:46 · Поправил: DenCoder · Личное сообщение · #7 |
|
Создано: 19 сентября 2019 22:08 · Личное сообщение · #8 |
|
Создано: 19 сентября 2019 22:13 · Личное сообщение · #9 |
|
Создано: 19 сентября 2019 22:33 · Личное сообщение · #10 |
|
Создано: 19 сентября 2019 22:49 · Личное сообщение · #11 Неплохо бы Wing под XP. Поставиться поставился, со скриптом/импортом разобрался, а запускаешь - не приложение Win32. На 7ке всё ставить - места мало. Этот комп пора на 7ку переводить Добавлено спустя 0 минут pdb попробую, что за зверь Добавлено спустя 1 минуту А ptvsd собирается минимум на VS2013, как-то тоже неудобство. Добавлено спустя 8 минут Хотя вроде увидел, что под VS2010 кто-то пытается поставить, и авторы утверждают, что VS2010 годен. ----- IZ.RU | Сообщение посчитали полезным: dma |
|
Создано: 19 сентября 2019 22:59 · Поправил: plutos · Личное сообщение · #12 Использую ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: dma |
|
Создано: 24 сентября 2019 00:41 · Поправил: reversecode · Личное сообщение · #13 |
|
Создано: 24 сентября 2019 03:54 · Личное сообщение · #14 Description: load the new IOS kernel cache in IDA, symbolize it, and debug it. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 27 сентября 2019 18:20 · Личное сообщение · #15 Глючно ведёт себя ида 6.8 в некоторых случаях. Вот такой фрагмент скрипта Code:
выводит Code:
И всё, что я создавал, кануло в лету Фрагмент кода, на котором это происходит Code:
Видно из лога, что до анализа фрагмента чанки функции все на месте, после анализа - всё слетает. Автоанализ отключён. Никто с таким не сталкивался? ----- IZ.RU |
|
Создано: 28 сентября 2019 15:22 · Личное сообщение · #16 DenCoder пишет: Глючно ведёт себя ида 6.8 в некоторых случаях. Да в каждой версии багов до этого самого места... Ильфак хоть исправляет, когда пинаешься (ну если есть поддержка). Правда, меньше их не становится. Старые исправляет, новые появляются. Возможно, что что-то подобное уже исправлено в новых версиях... Удивляться, что в (уже очень древней) 6.8 что-то не работало вряд ли стоит... А глючить может где угодно... |
|
Создано: 28 сентября 2019 22:30 · Личное сообщение · #17 Решил разобраться, что же происходит внутри иды. Весь алго анализа внутри ida.wll. У анализатора иды есть несколько состояний, их можно пронумеровать(заданы, как десятичные числа): 10, 20, 25, 30, 35, 38, 40, 50, 60, 70, 80, 90, 200. В моём случае при анализе участка кода выше внутри функции analyze_area() получается состояние 30. После некоторых операций по свитч-кейс таблице передаётся управление на case 30, откуда вызывается внутренняя функция, в которой удаляется указанный тейл(remove_func_tail()), очищается вообще структура ранее созданной функции(clear_func_struct()), остаётся только несколько тейлов и добавляется новая функция с указанными границами(add_func_ex()). Разбираюсь дальше ----- IZ.RU | Сообщение посчитали полезным: plutos |
|
Создано: 28 сентября 2019 23:03 · Личное сообщение · #18 Может я ничего не понимаю в этой жизни, но full analysis уродского огрызка из 4 инструкций, явно не относящегося к нормальному эпилогу - это такая неизбежная необходимость? На create_insn() можно пройтись по всем четырем (даже если анализ полностью выключен и следующая сама не объявится), в референсах инструкции <теоретически> должен появиться референс на следующую. ----- 2 оттенка серого |
|
Создано: 28 сентября 2019 23:08 · Поправил: DenCoder · Личное сообщение · #19 Законченый правильный анализ обфускированной таким образом функции, её фрагмента выставит правильные spd и даст понятие об использовании переменных. Просто это удобство, которого мы временно лишены в таких случаях. Под иду 7.0 скрипт переписывать, а не хотелось бы. Да и не уверен, что там всё ок бы работать. Чтобы это посмотреть, надо сначала скрипт переписать. Добавлено спустя 3 минуты На других фрагментах(тейлах) analyze_area() нормально отрабатывает, а на этом всё валит. Хочу разобраться, почему, и по возможности исправить. ----- IZ.RU |
|
Создано: 28 сентября 2019 23:27 · Поправил: f13nd · Личное сообщение · #20 DenCoder пишет: Хочу разобраться, почему, и по возможности исправить. Бери вон лучше auto_mark_range(long start, long end, long queuetype), к которой analyze_area() сводится, это примерно и есть то что надо. Вместо AU_USED и AU_FINAL можно сразу AU_CODE воткнуть. Кстати твой список констант очень напоминает AU_* ----- 2 оттенка серого | Сообщение посчитали полезным: DenCoder, plutos |
|
Создано: 29 сентября 2019 00:09 · Личное сообщение · #21 f13nd пишет: Кстати твой список констант очень напоминает AU_* Так и есть, спасибо за подсказку! f13nd пишет: Бери вон лучше auto_mark_range(long start, long end, long queuetype), к которой analyze_area() сводится Этого мало, auto_mark_range() ставит только в очередь. Внутри analyze_area() ставится участок кода в очередь 2 раза, да - AU_USED(40) и AU_FINAL(200), а дальше вызывается внутренняя функция, в которой определяется состояние почему-то AU_PROC(30), потому и всё летит. Но мысль возникла - может просто вызвать auto_unmark() (В иде 6.8 autoUnmark)? Попробовал так, analyze_area() ничего не снесла. Как-то проверять надо состояние анализатора перед выполнением анализа Добавлено спустя 6 минут Да!!! Если выполнить autoWait(), то всё сразу летит. Выходит, в очереди много всего накопилось ещё при отладке скрипта. В общем, если перед анализом на диапазоне выполнить autoCancel(), то всё ок работает. Добавлено спустя 16 минут Научиться бы ещё просматривать, что в очереди. И как бы отменять их все сразу? ----- IZ.RU |
|
Создано: 29 сентября 2019 00:30 · Личное сообщение · #22 |
|
Создано: 29 сентября 2019 00:41 · Личное сообщение · #23 |
|
Создано: 29 сентября 2019 00:55 · Личное сообщение · #24 |
|
Создано: 29 сентября 2019 00:59 · Поправил: plutos · Личное сообщение · #25 To morgot цвет именно стрелок не менял, но если использовать fiend опередил, возможно его способ проще. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: morgot |
|
Создано: 29 сентября 2019 01:01 · Поправил: DenCoder · Личное сообщение · #26 f13nd пишет: Давно пора гидрой все это делать. Она отлажена? Косяков не больше, чем в иде? morgot пишет: можно ли поменять цвет стрелок в IDA view (там, где условные переходы). Вообще-то, меню Options -> Colors -> Graph. Твои будут Yes Edge и No Edge, меняй, сколько хочешь ) В 7.0 не проверял, ставить надо, винду переставлял ----- IZ.RU | Сообщение посчитали полезным: morgot |
|
Создано: 29 сентября 2019 01:18 · Личное сообщение · #27 DenCoder пишет: Она отлажена? Косяков не больше, чем в иде? Косяков не меньше, зато сам процесс анализа понятней, прозрачней и глубже. И вмешаться можно на любом этапе. При желании можно вообще от всего отказаться и насухую листинг самому анализировать по псевдокоду, который дизасм отдает. Или даже влезть в дизасм, если чем-то не устраивает. ----- 2 оттенка серого |
|
Создано: 29 сентября 2019 04:23 · Поправил: plutos · Личное сообщение · #28 f13nd пишет: зато сам процесс анализа понятней, прозрачней и глубже. И вмешаться можно на любом этапе Поскольку все познается в сравнении, не мог бы ты, если возможно, сделать что-то вроде краткого сравнительного анализа: взять один и тот же код и показать, что делает ида и гидра (не весь listing, конечно, а именно ключевые критические моменты, на которые стоит обращать внимание). Но обязательно с комментариями, типа "вот тут гидра бьет иду и наоброт". Лично мне это бы очень помогло в понимании обоих tools и создании полной, обьемной картины анализа. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: DenCoder |
|
Создано: 29 сентября 2019 08:38 · Поправил: DenCoder · Личное сообщение · #29 Сколько я времени в прошлом потратил на новые "передовые" инструменты. Моё мнение - всё новое - ЗЛО! f13nd пишет: Или даже влезть в дизасм, если чем-то не устраивает. Движок может быть с сюрпризом таким, что много чего переписывать, может быть, придётся. А времени, как всегда, ни на что не хватает. ----- IZ.RU |
|
Создано: 29 сентября 2019 17:11 · Поправил: f13nd · Личное сообщение · #30 plutos пишет: взять один и тот же код и показать Допустим есть некоторый известный всем алгоритм и он в x86 (это шулерский прием сравнивать иду по x86, но некоторые считают, что кроме него ничего не существует) Берем точку входа в него и падаем вниз (пусть не будет тейлов, это шулерский прием, но тейлы тут погоды не сделают): Code:
Code:
Дизассемблировать ида могёт, никто не сомневался. Даже аргументы процедуры (процедуры!) правильно определила. Но меня до этого процесса не допустили, так что я хочу всё перепроверить или проделать это вместо иды. Пройтись по зависимостям, найти значения, используемые без предварительной инициализации (аргументы) и значения инициализированные, но не использованные (потому что это не процедура). Вон mak недавно показывал, что это оказывается полезная практика. Для этого в иде есть microcode api и угадайте с 3 попыток почему я вам их не покажу. На самом деле этот скрипт демонстрирует почти все апи, которые в иде можно применить для анализа кода (кроме microcode api, которые для х86 пока большинство могут увидеть только на картинках). На этом с идой всё. Шуруем в гидру и смотрим что она может нам предложить. Code:
Code:
Немного усложнив видим псевдокод, который можно анализировать. Code:
Code:
Так делать нельзя, это только для демонстрации: Code:
Code:
Отфильтровав эту портянку можно будет найти в ней 0, соответствующий регистру eax в адресном пространстве регистров. Он был инициализирован "(register, 0x0, 4) INT_NEGATE (register, 0x0, 4)" и не использован. Это значение, которое функция возвращает. В аргументы не полез, для них нужно писать нормальный солвер, но главное что возможности есть. ----- 2 оттенка серого | Сообщение посчитали полезным: Vintersorg, plutos, sim_19, omeh2003 |
|
Создано: 29 сентября 2019 17:33 · Поправил: DenCoder · Личное сообщение · #31 |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 21 . 22 . >> |
eXeL@B —› Основной форум —› Использование IDA Pro (part 2) |