eXeL@B —› Вопросы новичков —› Введение в реверсинг с нуля, используя IDA PRO |
<< 1 ... 9 . 10 . 11 . 12 . 13 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 ноября 2016 22:13 · Поправил: yashechka · Личное сообщение · #1 Привет Всем. Здесь буду потихоньку выкладывать новый курс по ИДЕ (перевод статей автора Рикардо Нарваха) А тут, красивые PDF. Как только закончу снимать отладку, перейду на реверсинг с нуля и на что-то ещё. Буду рад услышать любые комментарии по курсу Также всем Спасибо за лайки. === | Сообщение посчитали полезным: Apocalypse, zds, srm60171, =TS=, gleco1, Gideon Vi, Djeck, zNob, SReg, ksol, filyaxxxcom, N_E_O, Orlyonok, Abraham, mak, ClockMan, VodoleY, Bad_guy, verdizela, negoday, _k0NkurS, TOM_RUS, vnekrilov, anonymous, HandMill, DICI BF, olafudaf, tRuNKator, CoolMax_86, TryAga1n, AtilkaShooter, CyberGod, BiteMoon, d745150, mr_yoda2, IranR, Nau, AlxVD, needmic, Diabolic, hlmadip, BAHEK, CKAP, Norinke, Znoy, YoY, Medsft, oxiusova, ww00, awoland, Isaev, rukop84, Rio, Hugo Chaves, papavlo, r_e, ac86, ys72 |
|
Создано: 18 июня 2019 23:59 · Личное сообщение · #2 подскажите, пожалуйста, как из скрипта отличить байт, который неопределен в области памяти (ИДА его отображает ?? и пишет .byte 0xFF;(array 1) ) от реального байта, значение которого фактически имеет значение 0xFF ? Code:
функция isUnknown(GetFlags(ea)) не помогает, т.к. в обоих случаях false. Также и функция Byte(ea) в обоих случаях возвращает 0xFF |
|
Создано: 19 июня 2019 00:09 · Личное сообщение · #3 PhilXe У контроллеров примитивная архитектура и у всех одинакова. Это некоторая область в младших адресах с кучей говна и палок, называется SFR". Тоесть регистры отображены в память и что бы с этим кривым говном работать нужно изучить тонны матчасти. Когда шьётся такой контроллер разраб не касается этих извратов, к примеру для примитивных PIC есть даже компилер басика, не смотря на то, что там переменных несколько десятков. При декомпиляции вы думаете что ида это готовое решение, облом. Это комерц софт который во всём говяный, вас обманули. ----- vx |
|
Создано: 19 июня 2019 00:48 · Личное сообщение · #4 PhilXe idc.is_loaded(ea) difexacaw На всякий случай - там речь о флаге initialized области памяти. Что тебе подумалось хз даже. ----- 2 оттенка серого | Сообщение посчитали полезным: PhilXe |
|
Создано: 19 июня 2019 01:20 · Личное сообщение · #5 f13nd пишет: is_loaded(ea) в очередной раз преклоняюсь перед вашим опытом и знаниями -- сработало отлично, можно двигаться в разборе прошивки дальше | Сообщение посчитали полезным: yashechka |
|
Создано: 20 июня 2019 00:37 · Личное сообщение · #6 |
|
Создано: 20 июня 2019 05:53 · Личное сообщение · #7 PhilXe пишет: idc-функция поиска последовательности байтов (все idc-функции описаны в idc/idc.idc) idc.find_binary(0,SEARCH_DOWN,"FF FF FF") ----- 2 оттенка серого | Сообщение посчитали полезным: PhilXe |
|
Создано: 21 июня 2019 15:12 · Поправил: PhilXe · Личное сообщение · #8 f13nd пишет: все idc-функции описаны в idc/idc.idc да, но точнее будет сказать, что все они перечислены, но описаны понятным для применения образом далеко не все, поэтому я сначала пытаюсь там посмотреть, потом пытаюсь почитать во встроенной справке ИДА, потом на сайте ИДА, потом поискать в Интернете примеры использования в разных idc-скриптах пользователей, но, к сожалению, не все возможные комбинации удается отыскать, соответственно, пишу в эту тему, в которой Вы любезно помогаете ценными подсказками, что говорит о вашей отзывчивости и хорошем знании программирования ИДА, за что Вам ОГРОМНОЕ спасиБо Сейчас, например, пытаюсь разобраться почему не во всех случаях появляется распознавание библиотечных функций компилятора по файлу сигнатур (предполагаю, что оказывается влияние паразитных фиктивных точек входа с ложными чанками), но пока не буду напрягать никого вопросами, может сам разберусь и с этой особенностью, как удалось вычислить поведение ИДА с конфигом 8051 и созданием специфичных сегментов RAM и FSR/SFR, а также изменением их адресации на правильную... |
|
Создано: 21 июня 2019 15:27 · Личное сообщение · #9 PhilXe пишет: поэтому я сначала пытаюсь там посмотреть, потом пытаюсь почитать во встроенной справке ИДА Вообще-то, если внимательно посмотреть, то встроенная справка - это просто куски из файла idc.idc. А для того, чтоб что-то из этой кучи начать применять, приходится всячески экспериментировать (особенно, если начинаешь возиться с какой-нибудь новой для тебя темой (с процедурами, которые до этого не использовал). Описаний толковых нет нигде. Особенно интересно, когда получаешь код (пример) от Ильфака и он никак не вписывается в описание, данное в idc.idc!!! |
|
Создано: 21 июня 2019 16:20 · Личное сообщение · #10 DrVB_5_6 пишет: встроенная справка - это просто куски из файла idc.idc именно куски, т.к. некоторые функции не упоминаются вовсе и я по началу входил в ступор при разборе чужих скриптов видя в них "несуществующие" функции... DrVB_5_6 пишет: когда получаешь код (пример) от Ильфака и он никак не вписывается в описание, данное в idc.idc!!! да, тоже натыкался на нерабочие примеры кода и мне новичку в ИДА было непонятно -- то ли я что-то не так делаю, то ли пример нерабочий... хорошо, что добрые люди подсказывают иногда |
|
Создано: 21 июня 2019 16:30 · Личное сообщение · #11 PhilXe пишет: созданием специфичных сегментов RAM и FSR/SFR, а также изменением их адресации на правильную... Наверное с такими наполеоновскими планами надо было изначально выбрать платформу ghidra, там возможностей побольше и в целом внутреннее устройство посолидней выглядит. Особенно учитывая то, что 8051 лучедекомпилер не грозит, в гидре какой-никакой был бы. Правда апи посложней. ----- 2 оттенка серого | Сообщение посчитали полезным: PhilXe |
|
Создано: 21 июня 2019 17:15 · Личное сообщение · #12 f13nd пишет: с такими наполеоновскими планами планы самые простейшие сделать некоторую автоматизацию шаблонов компилятора, чтобы в голове было "проще" получить исходник, в котором разобраться, что в чистом дизассемблерном тексте несколько сложнее и трудоемче f13nd пишет: надо было изначально выбрать платформу ghidra, там возможностей побольше и в целом внутреннее устройство посолидней выглядит. знать бы о ней, но Вы упомянули и поищу материалы по ней -- а Вы уже использовали для реальных задач? интресен опыт с 8051 и stm32 f13nd пишет: Особенно учитывая то, что 8051 лучедекомпилер не грозит, в гидре какой-никакой был бы. Правда апи посложней что такое "лучедекомпилер"? |
|
Создано: 21 июня 2019 17:26 · Личное сообщение · #13 PhilXe пишет: а Вы уже использовали для реальных задач? Примерно с марта-апреля, когда она вышла, идой больше не пользуюсь. Почти все что нужно уже сам дописал и использую только гидру. Даже отсутствие поддержки нужных архитектур не остановило, там с разработкой собственных процессорных модулей все хорошо. В иде вообще по архитектурам, не входящим в 4 основных, много чего происходит но мало меняется. А если самому что-то дорабатывать, гидра имхо лучший выбор. PhilXe пишет: что такое "лучедекомпилер"? Декомпилеры hex-rays, встраиваемые в иду. ----- 2 оттенка серого |
|
Создано: 21 июня 2019 17:27 · Личное сообщение · #14 |
|
Создано: 21 июня 2019 17:40 · Личное сообщение · #15 f13nd пишет: идой больше не пользуюсь. Почти все что нужно уже сам дописал и использую только гидру. Даже отсутствие поддержки нужных архитектур не остановило, там с разработкой собственных процессорных модулей все хорошо. А если самому что-то дорабатывать, гидра имхо лучший выбор а без доработки "из коробки" 8051 не хуже чем ИДА переваривает? есть декомпилятор в Си-подобный псевдокод? DrVB_5_6 пишет: код-то рабочий, коль его сам Ильфак или Скочинский дают, только использование функций в нём не совпадает с описанием этих функций в idc.idc а имеющийся в папке ИДЫ 8051bits.idc работает неправильно, поэтому пришлось его переписать для правильной работы |
|
Создано: 21 июня 2019 17:53 · Личное сообщение · #16 |
|
Создано: 21 июня 2019 18:29 · Поправил: PhilXe · Личное сообщение · #17 |
|
Создано: 21 июня 2019 18:40 · Личное сообщение · #18 |
|
Создано: 21 июня 2019 19:37 · Личное сообщение · #19 |
|
Создано: 21 июня 2019 20:19 · Личное сообщение · #20 |
|
Создано: 21 июня 2019 22:35 · Поправил: PhilXe · Личное сообщение · #21 |
|
Создано: 21 июня 2019 23:38 · Личное сообщение · #22 PhilXe пишет: выделить из нее нужную подстроку? Запихать все уже написанные функции в питоноскрипт как idaapi.CompileLine(r""" <idc> """), вызывать их idc.eval_idc("idc_function();") В справочнике сказано, что возвращать значение функции eval_idc может. А idc это урезанный везде где только можно язык, где даже массивов нету. В питоне с обработкой строк полный порядок. ----- 2 оттенка серого |
|
Создано: 22 июня 2019 00:10 · Поправил: DenCoder · Личное сообщение · #23 f13nd пишет: А idc это урезанный везде где только можно язык, где даже массивов нету Да массивы-то есть, работа только с ними через функции: Code:
Но питон всё-таки лучше, да и idc вроде как отмирает, не? Добавлено спустя 12 минут PhilXe пишет: как получить содержимое всей текстовой строки, которую находит функция find_text и потом выделить из нее нужную подстроку? В idc манипулировать строковыми функами strstr(), substr(), ... https://www.hex-rays.com/products/ida/support/idadoc/183.shtml .. 191.shtml А вообще заведите женщину и не мучайтесь ----- IZ.RU | Сообщение посчитали полезным: f13nd |
|
Создано: 22 июня 2019 01:02 · Личное сообщение · #24 |
|
Создано: 23 июня 2019 17:13 · Личное сообщение · #25 f13nd пишет: У idc всего одно преимущество - питон не надо ставить а разве тот, который ИДА7.0 устанавливает не годится и нужно ставить дополнительно другой? еще нужна подсказка для улучшения распознавания лоадером кода 8051: по-умолчанию ИДА вклюяает автоанализ, что приводит к глупым результатам, поэтому в конфиге приходится его отключать путем изменения на ENABLE_ANALYSIS = NO, но в этом режиме не происходит обработка сигнатур из приготовленного sig-файла -- как бы сделать так, чтобы изначально автоанализ был выключен и мой загрузчик все начальные приготовления сделал без вмешательства "распознавателя" ИДЫ, а потом из скрипта в нужный момент включить автоанализ чтобы обработались сигнатуры библиотечных функций из sig-файла? |
|
Создано: 23 июня 2019 20:08 · Поправил: f13nd · Личное сообщение · #26 |
|
Создано: 24 июня 2019 00:03 · Поправил: PhilXe · Личное сообщение · #27 PhilXe пишет: как бы сделать так, чтобы изначально автоанализ был выключен и мой загрузчик все начальные приготовления сделал без вмешательства "распознавателя" ИДЫ, а потом из скрипта в нужный момент включить автоанализ чтобы обработались сигнатуры библиотечных функций из sig-файла? так и не нашел способ из скрипта сделать ENABLE_ANALYSIS = NO, чтобы потом в нужный момент сделать ENABLE_ANALYSIS = YES, но удалось обойти это иным образом путем изначального задания отключенного состояния в загрузчике функцией set_flag(INF_AF, AF_CODE, 0) и set_flag(INF_AF, AF_DOCODE, 0), а потом в нужный момент после завершения подготовительных обработок включил обратно функцией set_flag(INF_AF, AF_CODE, 1) Правда, я не совсем понял, что делает set_flag(INF_AF, AF_DOCODE, 1)? |
|
Создано: 27 июня 2019 21:58 · Личное сообщение · #28 Ну, что сказать, друзья. Мы - победили. На текущий момент - курс переведен. Почему на текущий? Потому что в конце 67 части написано, что увидимся в 68. Сейчас, я скорее, ставлю запятую, а не точку. Пришло время подвести итоги, всего этого. Приятного чтения. | Сообщение посчитали полезным: Nihil enim, subword, Vintersorg, mak, SReg, CyberGod, parfetka, ksol, HandMill |
|
Создано: 28 июня 2019 22:08 · Личное сообщение · #29 |
|
Создано: 28 июня 2019 22:57 · Личное сообщение · #30 |
|
Создано: 29 июня 2019 09:14 · Личное сообщение · #31 |
<< 1 ... 9 . 10 . 11 . 12 . 13 . >> |
eXeL@B —› Вопросы новичков —› Введение в реверсинг с нуля, используя IDA PRO |