Сейчас на форуме: -Sanchez- (+6 невидимых) |
eXeL@B —› Основной форум —› Использование IDA Pro |
<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 . 51 . >> |
Посл.ответ | Сообщение |
|
Создано: 08 августа 2008 18:53 · Личное сообщение · #1 Здесь предлагаю обмениваться опытом использования, настройки этой тулзы. Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? ) ----- My love is very cool girl. |
|
Создано: 05 апреля 2016 23:11 · Поправил: DenCoder · Личное сообщение · #2 Apokrif idc: 1) File->idc script 2) 3) 4) Добавлено спустя 11 минут Что-то вроде Code:
----- IZ.RU | Сообщение посчитали полезным: Apokrif |
|
Создано: 06 апреля 2016 15:26 · Поправил: fermopili · Личное сообщение · #3 При перемещении курсора по по тексту на экране IDA автоматически подсвечивает желтым цветом текущую подстроку символов под курсором, которую она считает как какое-либо имя. Программно я могу выставить курсор в необходимую позицию строки на нужную мне подстроку, однако данная подстрока не выделяется цветом. Если же после этого сместить курсор вправо или влево (ручками) - подстрока будет выделена желтым цветом. Всвязи с этим два вопроса : 1 - как программно выделить цветом подстроку под курсором 2 - как поменять программно цвет выделения |
|
Создано: 06 апреля 2016 18:27 · Поправил: Apokrif · Личное сообщение · #4 DenCoder пишет: Jump(DbgDword(GetRegValue("ebp") - 8)) Нормально! А можно как-то shortcut-ы настроить (из этого же самого скипта?), что бы автоматом отрабатывать: Alt-2 -> Jump(DbgDword(GetRegValue("ebp") - 2)) Alt-4 -> Jump(DbgDword(GetRegValue("ebp") - 4)) И т.д.? В смысле, выполнить скрипт один раз, чтобы он остался в памяти до закрытия Иды? Или это нужно как-то по-другому делать? Вижу команды AddHotkey/DelHotkey, но нет pushActiveWindow, focusHexDump, popActiveWindow... |
|
Создано: 14 июня 2016 22:28 · Личное сообщение · #5 Пытаюсь написать свой IDA processor module. Readme.txt из SDK рекомендует следующий подход: бери уже существующие примеры и меняй под себя то, что нужно менять. "Naturally, it is easier to copy and to modify example files than to write your own files from the scratch." А хотелось бы взять уже существующий модуль (*.w32 или *.w64) и пройтись через него под debuggеr'om, чтобы увидеть, что там происходит в "живом исполнении". Тот же Readme.txt про debugging пишет следующее: "Debugging: You can use the following debug print functions: deb() - display a line in the messages window if -z command line switch is specified. You may use debug one of: IDA_DEBUG_IDP, IDA_DEBUG_LDR, IDA_DEBUG_PLUGIN msg() - display a line in the messages window warning() - display a dialog box with the message To stop in the debugger when the module is loaded, you may use the BPT macro construct in the module initialization code." Но я как-то не соображу, как именно начинать debugging session, что куда загружать и что нажимать, ведь ida kernel принимает в работе модуля самое активное участие. Буду признателен за любые детали и подробные шаг за шагом инструкции! ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 14 июня 2016 23:04 · Личное сообщение · #6 plutos берешь существующий, добавляешь туда дебуг функции и подменяешь оригинальный модуль пытаешься работать со своим, все дебуг выводы будут сыпатьися или в консоль или как там указано в лог файл | Сообщение посчитали полезным: plutos |
|
Создано: 14 июня 2016 23:10 · Поправил: plutos · Личное сообщение · #7 reversecode пишет: подменяешь оригинальный модуль пытаешься работать со своим, хочу уточнить: "свой" в данном случае означает тот, куда мы только что добавили дебуг функции? и второй вопрос: А как насчет stepping, tracing, breakpoints? Kак именно использовать BPT macro construct in the module initialization code? ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 14 июня 2016 23:15 · Личное сообщение · #8 1) да 2) ида отлаживать ида ?) ну тоже прикольно, но одна ида врядли запустит отладку своего же модуля, я даже не представляю как это будет выглядеть или про какие степинг трейсинг бп идет речь ? а под той фразой мне кажется подразумевалось что использование BPT заставит сгенерить инт3 и вызов внешнего дебугера если он следит за ида как за программой сама себя ида вряд ли будет отлаживать Добавлено спустя 8 минут pro.h Code:
| Сообщение посчитали полезным: plutos |
|
Создано: 14 июня 2016 23:44 · Личное сообщение · #9 reversecode пишет: или про какие степинг трейсинг бп идет речь ? Что я пытаюсь выразить, может неудачно: Ida processor module написан на "С". Это вроде как dll: Ida kernel делает инициализацию определенных полей, вызывает определенные функции и т.д. Нельзя ли как-нибудь эмулировать это внешнее воздействие и дебажить модуль как обычную dll в той же ollydbg? Toгда можно самому ставить bp, step и т.д. Но это так, общие идеи. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 15 июня 2016 09:07 · Личное сообщение · #10 |
|
Создано: 25 июня 2016 13:12 · Личное сообщение · #11 А нет ли в ида плагинов для распознавания фунок JNI ? К примеру хочется в нативной либе *.so найти вызовы функции: Code:
Можете подсказать как это через иду делать или может онлайн сервисы какие по распознаванию JNI в коде ? |
|
Создано: 25 июня 2016 23:30 · Личное сообщение · #12 |
|
Создано: 27 июня 2016 03:12 · Поправил: mixer632 · Личное сообщение · #13 |
|
Создано: 27 июня 2016 04:51 · Личное сообщение · #14 mixer632 пишет: как на Genimotion завести android_server чтобы работал Для этого нужен ARM Translation, его можно добавить с помощью Для 4.4.4 и выше не работает, почему обсуждалось там же и у Если найдёте способ - свистните! Добавлено спустя 5 минут mixer632 пишет: К примеру хочется в нативной либе *.so найти вызовы функции: jint RegisterNatives(JNIEnv *env, jclass clazz, const JNINativeMethod *methods, jint nMethods); Можете подсказать как это через иду делать или может онлайн сервисы какие по распознаванию JNI в коде ? reversecode пишет: стандартных? они ж вроде виртуальные не? тогда там все просто, ищем указатель jnienv и настраиваем на метроды mixer632 имел ввиду, найти вызовы функции анализе, без запуска... |
|
Создано: 27 июня 2016 13:36 · Поправил: mixer632 · Личное сообщение · #15 Apokrif пишет: Для этого нужен ARM Translation, его можно добавить с помощью libhoudini Да вот скачал с 4пда libhoudini.zip и закинул его, перетянув мышкой в эмулятор, он установился, попросил перезагрузку, сделал. Тест делаю на андроид 4.2.2 Sony Xperia Z, версия genimotion 2.6.0 Но с серваком все равно обламывает: Code:
|
|
Создано: 27 июня 2016 14:21 · Личное сообщение · #16 ну так дело ясное нужна новая иды в поставках которой есть разные сервера для отладки android_server android_server_nonpie android_server64 android_x86_server Добавлено спустя 5 минут Apokrif пишет: mixer632 имел ввиду, найти вызовы функции анализе, без запуска... я щас вообще не понял о чем это вы | Сообщение посчитали полезным: mixer632 |
|
Создано: 30 июня 2016 08:50 · Поправил: Apokrif · Личное сообщение · #17 reversecode пишет: Apokrif пишет: mixer632 имел ввиду, найти вызовы функции при анализе, без запуска... я щас вообще не понял о чем это вы Простой пример: RegisterNatives() / jnioffset 860 RegisterNatives можно вызвать как Code:
Code:
1-й вызов можно найти по "860" А как искать другие варианты? Небольшая проблема в том, что перед вызовом есть проверки, которые у нас не проходят и RegisterNatives() никогда не вызывается. Т.е. ставить бряку на RegisterNatives, чтобы по стеку посмотреть, откуда она вызывается бесполезно. Соответственно, вопрос: "как найти вызовы функции при анализе, без запуска"... Вы пишите, что это можно сделать (несложно?): reversecode пишет: стандартных? они ж вроде виртуальные не? тогда там все просто, ищем указатель jnienv и настраиваем на метроды Можно уточнить, как именно? |
|
Создано: 30 июня 2016 09:24 · Поправил: reversecode · Личное сообщение · #18 Apokrif пишет: call *(dword *)v0 + 860 чего это у вас там 860 ? если правильно настроена структура, то должно быть call v0->vtbl->RegisterNatives() Apokrif пишет: Соответственно, вопрос: "как найти вызовы функции при анализе, без запуска"... при анализе без запуска нужно это все ручками разбирать Apokrif пишет: Можно уточнить, как именно? я думал вы о быстром соответствии офсета и метода, тогда проблем как бы нет?! |
|
Создано: 30 июня 2016 14:00 · Личное сообщение · #19 Apokrif пишет: А как искать другие варианты? Предлагаю поставить бряки на все вызовы формата (*(int (__fastcall **)(int, int, char **, signed int))(*(_DWORD *)v4 + X))(x1,x2,x3,x4); где X -вычисляемые 860 - смещение registernatives(), потом ее сигнатура (int, int, char **, signed int). Кстати это уникально или могут быть вариации в ида ? Добавлено спустя 10 часов 8 минут А как в ида сделать, чтобы динамические сегменты памяти, которые либа после аттача создает, чтобы их сдампить и они были вместе со статическими, которые до старта в либе. Хочу после отключения от либы ручками их проанализировать. Проблема в том, что когда отключаюсь от либы, то все эти debugxxx сегменты не доступны. Есть ли возможность их добавить к статическим для последующего анализа их ? Добавлено спустя 10 часов 10 минут Apokrif пишет: А как искать другие варианты? Тут оказалось все проще, нужно было в libvdm.so просто зайти, так как туда все jni вызовы идут и поймать бряком там, поэтому шифрование смещения 860 так легко обходить можно в динамике. |
|
Создано: 01 июля 2016 06:27 · Личное сообщение · #20 reversecode пишет: call *(dword *)v0 + 860 чего это у вас там 860 ? если правильно настроена структура, то должно быть call v0->vtbl->RegisterNatives() Да, но "незашифрованный вариант вызова" нас не интересует. reversecode пишет: при анализе без запуска нужно это все ручками разбирать я думал вы о быстром соответствии офсета и метода, тогда проблем как бы нет?! Тоже самое - это тривиальные варианты, с ними и проблем-то никогда не было. Всё только вручную, непосильным трудом... mixer632 пишет: Тут оказалось все проще, нужно было в libvdm.so просто зайти, так как туда все jni вызовы идут и поймать бряком там, поэтому шифрование смещения 860 так легко обходить можно в динамике. Правильно, а как бы вы искали "в динамике", если бы были проверки перед запуском нужной функции? |
|
Создано: 01 июля 2016 12:59 · Поправил: theCollision · Личное сообщение · #21 Как в IDA дебажить so файлы из apk-файлов от Android приложений, находясь на Windows 8.1 ent 64? У меня есть apk-файл, в котом есть lib\armebi\super_puper.so файл. Для этого файла Hiew показывает такое: Code:
Сейчас на руках IDA Pro 6.8 что еще нужно доустановить, чтобы можно было дебажить работая на Windows? ----- My love is very cool girl. |
|
Создано: 01 июля 2016 13:43 · Личное сообщение · #22 |
|
Создано: 01 июля 2016 14:30 · Поправил: reversecode · Личное сообщение · #23 |
|
Создано: 01 июля 2016 18:14 · Личное сообщение · #24 |
|
Создано: 01 июля 2016 21:14 · Личное сообщение · #25 |
|
Создано: 01 июля 2016 22:05 · Личное сообщение · #26 plutos зарегистрироваться?)) eXeL@B —› Основной форум —› Взлом прог под Android Взял простейший код отсюда http://www.hexblog.com/?p=809 Добавлено спустя 1 минуту https://www.hex-rays.com/products/ida/support/tutorials/debugging_dalvik.pdf и в гугле много ответов Добавлено спустя 5 минут https://github.com/rednaga/native-shim хз что толку от того что загрузить можно | Сообщение посчитали полезным: plutos |
|
Создано: 01 июля 2016 23:33 · Личное сообщение · #27 А как в ида можно ли дампить динамические сегменты, которые появляются в процессе отладки либы ? Их изначально нет в статике, а хочется их сохранить вместе, чтобы далее анализировать в статике. И еще интересует какие бы плагины в иду поставить для удобной модификации кода arm в процессе отладки, чтобы как в олудебаг можно было бы редактировать команды. |
|
Создано: 02 июля 2016 10:22 · Личное сообщение · #28 mixer632 пишет: А как в ида можно ли дампить динамические сегменты, которые появляются в процессе отладки либы Как минимум есть вариант через вкладку Hex View. Копируете нужный Вам кусок, вставляете в WinHex, сохраняете. idc-команд, делающих это, не нашёл... mixer632 пишет: И еще интересует какие бы плагины в иду поставить для удобной модификации кода arm в процессе отладки Там ж есть по дефолту. Edit->Patch Program->Change Bytes... Опкоды, конечно, нужно знать. Ну это так, как вариант, если не найдёте ничего путного. Хотя должно быть... Заодно и для себя нашёл, надо будет попробовать ----- IZ.RU |
|
Создано: 02 июля 2016 10:48 · Поправил: reversecode · Личное сообщение · #29 |
|
Создано: 02 июля 2016 11:16 · Личное сообщение · #30 |
|
Создано: 02 июля 2016 19:01 · Поправил: Apokrif · Личное сообщение · #31 DenCoder пишет: Как минимум есть вариант через вкладку Hex View. Копируете нужный Вам кусок, вставляете в WinHex, сохраняете. idc-команд, делающих это, не нашёл... Я описывал как reversecode пишет: ида умеет переносить (експортировать) выделенные участки в хекс виев куда угодно, и в файл тоже Это да, но я так и не понял, как при этом relocs править. Поэтому и пришлось прогу писать... |
<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 . 51 . >> |
eXeL@B —› Основной форум —› Использование IDA Pro |
Эта тема закрыта. Ответы больше не принимаются. |