Сейчас на форуме: -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. Прошлый топик ![]() |
|
Создано: 06 марта 2019 04:23 · Поправил: plutos · Личное сообщение · #2 reversecode пишет: ида рвет ее Может не все так плохо, как кажется. Rolf Rolles: ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 10 марта 2019 08:18 · Поправил: f13nd · Личное сообщение · #3 Просто как забавный факт. Решил сопоставить три разных дизассемблера tricore, чтобы сравнить качество без секундомера (количество неправильно раскодируемых форматов инструкций). Получилось вот так: radare2: 37/815 (тупо не поддерживает набор инструкций 1.6, по тому, что поддерживает, вообще ни единой явной проблемы) trace32: 3/815 (в одной инструкции аргументы в неверном порядке и в двух константа взята со знаком, она беззнаковая по мануалу) ida pro: 176/815 (технически это два бага, неверное раскодирование адреса в fcalla и 175 форматов где поле n ида считает 1-битным, мануал с этим не согласен категорически) Вольные интерпретации к багам не относил (типа '[+a0]4' вместо канонического '[+a0]' при пре-инкременте), но радар и ида этим грешат. Вот вам и менеджмент качества. ----- 2 оттенка серого ![]() |
|
Создано: 11 марта 2019 16:01 · Личное сообщение · #4 Вопрос по IDC script и .NET как получить адрес static поля? пример: Code:
так вот как например получить адрес "ja2::p"? дабл клик на "ja2::p" и заходим, все нормально... Code:
Так вот собственно как получить адрес "seg000:3E041" из "ja2::p"? get_name_ea(BADADDR, "ja2::p") возвращает -1 get_name_ea("ja2", "p") так что-то возвращает, но совсем не туда. ??? ![]() |
|
Создано: 11 марта 2019 17:27 · Поправил: reversecode · Личное сообщение · #5 |
|
Создано: 11 марта 2019 17:37 · Личное сообщение · #6 |
|
Создано: 11 марта 2019 18:02 · Поправил: UniSoft · Личное сообщение · #7 reversecode a = get_name_ea(BADADDR, "ja2::p"); msg("ea: %a\n", a); результат: "ea: 0:FFFFFFFF" a = get_name(0x3E041, 0); // как и get_name("seg000:3E041", 0); msg("name: %a\n", a); результат: "name: seg000:0000" DenCoder тоже самое, что и с BADADDR - "ea: 0:FFFFFFFF" #define get_name_ea_simple(name) get_name_ea(BADADDR, name) ![]() |
|
Создано: 11 марта 2019 18:05 · Личное сообщение · #8 |
|
Создано: 11 марта 2019 18:36 · Личное сообщение · #9 |
|
Создано: 11 марта 2019 18:49 · Личное сообщение · #10 |
|
Создано: 11 марта 2019 19:00 · Поправил: UniSoft · Личное сообщение · #11 reversecode да пробовал уже, long get_operand_value(long ea, long n); обламывается, так как там тип не стандартный long get_operand_type(long ea, long n); возвращает 10 (o_idpspec2) поэтому используя auto instr = decode_insn(long ea); можно получить значение через instr.Op0.value, получаем собственно то, что и в байткоде, т.е. 0x0400063D, вот только как из этого получить адрес, пока не разобрался. походу надо разбираться как там вся метаинфа в этом .NET хранится... Все, нашел как решить... через long get_first_dref_from(long from); ![]() |
|
Создано: 11 марта 2019 22:28 · Личное сообщение · #12 |
|
Создано: 11 марта 2019 23:48 · Личное сообщение · #13 |
|
Создано: 12 марта 2019 09:28 · Личное сообщение · #14 UniSoft пишет: да ладно, стоя на инструкции которая обращается к тому полю Скорей всего это связано с тем, что дотнетовые адреса с файловыми смещениями не очень кореллируют. Поэтому надо брать неправильно работающий 'get_name_ea("ja2", "p")' и придумывать как находить для него поправку. ----- 2 оттенка серого ![]() |
|
Создано: 12 марта 2019 13:04 · Поправил: reversecode · Личное сообщение · #15 |
|
Создано: 12 марта 2019 13:35 · Личное сообщение · #16 Да все сводится к парсу PE формата и разбирательству где dnspy берет RVA ----- 2 оттенка серого ![]() |
|
Создано: 22 марта 2019 08:02 · Поправил: plutos · Личное сообщение · #17 The plugin was developed to match symbols for an open source library in a very large binary, usually a firmware file. For those who deal daily with firmware files, it’s a waste of time to have to repeatedly reverse net-snmp; there is a clear need for a tool to identify the used open sources, and automatically match their symbols in IDA ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 05 апреля 2019 17:28 · Личное сообщение · #18 Нужна помощь с настройкой удалённой отладки IDA ( Version 7.0.170914 Windows x64 )+ windbg (10.0.17134.1) Я знаю что тема уже заезженна и в нете много об это писали, может кто то подскажет в чём моя проблема За основу брал эту статью - https://research.checkpoint.com/scriptable-remote-debugging-windbg-ida-pro/ т.e. на одной виртуалке запускаю dbgsrv ( "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbgsrv.exe" -t tcp:port=5064) на второй настраиваю IDA (выбираю windbg и настраиваю Connection string как "tcp:port=5064,server=169.254.210.241") Пишет "The file can't be loaded by the debugger plugin. Please verify that the parameters are valid." Вывод консоли: Windbg: using debugging tools from '<PATH>' Connecting in user mode with 'tcp:port=5064,server=169.254.210.241' Connect failed: Сервер в настоящее время отключен. При этом другая версия windbg по этим параметрам подключения (tcp:port=5064,server=169.254.210.241) подключается Сам файл на целевую виртуалку копируется. Локальная отладка с данным debugging tools рабатает. ![]() |
|
Создано: 12 апреля 2019 22:03 · Личное сообщение · #19 в скрипте python посредством SetMemberName и SetType меняю имя и тип стековых переменных некой функции. в дизассемблере и в закладке "stack variables" все меняется успешно, но вот в псевдокоде почему-то не меняется ничего, если псевдокод был хотя бы один раз сгенерирован до выполнения скрипта (в текущей рабочей сессии IDA для этой функи). после скрипта, ни F5, ни idaapi.decompile() не обновляют данных об измененных переменных в уже созданном псевдокоде. но если сначала скрипт выполнить, а потом вызвать hex-rays, то в псевдокоде отображаются новые имена и типы локальных переменных. собственно вопрос, как после скрипта заставить hex-rays сделать "реанализ" функи и подтянуть новые объявления стековых переменных? ![]() (ida 6.8 / idapython 1.7.0) ![]() |
|
Создано: 13 апреля 2019 13:04 · Личное сообщение · #20 vilimax Возможно, протокол в сборке WinDbg 10.0.17134.1 не стыкуется с протоколом в ида 7.0. Какой билд виндбг у тебя работает? Кроме того, у иды есть свои отладочные сервера. Копируешь из папки иды\dbgsrv на гостевую ось win32_remote.exe или win64_remotex64.exe, запускаешь, из иды подсоединяешься. ----- IZ.RU ![]() |
|
Создано: 17 апреля 2019 19:25 · Поправил: DenCoder · Личное сообщение · #21 Использую для отладки Remote Windows Debugger x64. IDA 6.8. Пытаюсь выполнить питон-скрипт на бряке Code:
и ида зависает. WFNE_SUSP - по совету, найденному в инете, по всему значит, что выполнение остановлено. 1 - 1 секунда ожидания. Зависает даже при WFNE_ANY. И никаких сообщений. Почему? В инете ничего не нашёл по данной проблеме Добавлено спустя 15 часов 11 минут Оказалось, зависает именно сама ида, не дебаггер. То ли ошибка в протоколе "удалённой" отладки, то ли в какой-то банальной ошибке... Ведь смысл самой по себе идовской функции GetDebuggerEvent() аналогичен функции WaitForDebugEvent(), которая НЕ зависает. И по найденным страницам в интернете, в ранних версиях до 6.8 отлично работала... Ида 6.8 также вообще крашится, если неправильно пользоваться скриптом (вызывать/не вызывать ненужные/нужные функции невовремя/вовремя). Назревает мысль, что все программы уязвимы, поскольку люди уязвимы... 7.0 в таком случае вообще далека от совершенства... ----- IZ.RU ![]() |
|
Создано: 18 апреля 2019 21:10 · Личное сообщение · #22 |
|
Создано: 18 апреля 2019 21:27 · Личное сообщение · #23 |
|
Создано: 18 апреля 2019 21:37 · Личное сообщение · #24 Но поддержка питона отличная. Где ещё питон есть? Добавлено спустя 8 минут Года 4 назад писал свой дебаггер... Но у него были свои цели и задачи, пытался вообще-то реализовать дебаг под дотнет без дотнета. (Это реально, было доведено до точки, где дебаггером хукался jit-компилятор). Всё было хорошо, пока не увели меня в другую сторону... Неужели обстановка в мире инструментов настолько плачевна, что придётся всё же писать свой дебаггер? Добавлено спустя 11 минут f13nd пишет: Ида как отладчик не очень популярна. Зато сколько статей по ней и сколько книг! Некоторые даже в диссертациях "настойчиво" упоминают иду... И у них работает такое, что у меня почему-то нет ![]() Добавлено спустя 12 минут Ключ, может, плохой? ) ----- IZ.RU ![]() |
|
Создано: 18 апреля 2019 21:52 · Личное сообщение · #25 |
|
Создано: 18 апреля 2019 22:57 · Личное сообщение · #26 |
|
Создано: 18 апреля 2019 23:12 · Личное сообщение · #27 DenCoder пишет: ага... я сбился со счёта, какое апи уже изучаю. У иды в принципе траблы с синхронизацией при отладке (была где-то тема про изменение значений в стеке скриптом), она при запуске в режиме отладчика традиционно подтупливает и бог знает сколько там еще сюрпризов. Не сказать что ексодия идеал, но по крайней мере отладчик это ее основное назначение. Если бы х64 ольга таки однажды вышла, ничего перебирать бы не пришлось никому. ----- 2 оттенка серого ![]() |
|
Создано: 24 апреля 2019 21:50 · Поправил: hash87szf · Личное сообщение · #28 DenCoder GetDebuggerEvent(WFNE_SUSP, 1) GetDebuggerEvent(WFNE_SUSP, -1) long GetDebuggerEvent(long wait_evt, long timeout) Waits for a debugger event (as specified by wait_evt ) to take place within the specified number of seconds (–1 waits forever). Returns an event type code that indicates the type of event that was received. Specify wait_evt using a combination of one or more WFNE_xxx (WFNE stands for Wait For Next Event) flags. Possible return values are documented in the IDA help file. ![]() |
|
Создано: 24 апреля 2019 22:12 · Личное сообщение · #29 |
|
Создано: 24 апреля 2019 22:28 · Личное сообщение · #30 |
|
Создано: 25 апреля 2019 22:52 · Личное сообщение · #31 Initial ----- Give me a HANDLE and I will move the Earth. ![]() |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 21 . 22 . >> |
![]() |
eXeL@B —› Основной форум —› Использование IDA Pro (part 2) |