Сейчас на форуме: -Sanchez- (+6 невидимых)

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 . 51 . >>
Посл.ответ Сообщение

Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2008 18:53
· Личное сообщение · #1

Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.

Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )

-----
My love is very cool girl.




Ранг: 12.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 21 февраля 2017 23:02 · Поправил: varenik
· Личное сообщение · #2

При копировании copy value переменной из watch view - копируется только 1024 символа, а остальное обрезается. Как сделать так, чтобы копировалось полностью?

И второй вопрос:

Вот код, который делает некую операцию и результат засовывает в переменную v0
Code:
  1. CODE:003FD95C invoke-static                   {v0, v1}, <ref b.e(ref, ref) b_e@LLL>
  2. CODE:003FD962 move-result-object              v0


Каким образом можно наблюдать за содержимым переменной v0 при работе с приложением? Интересует не текущее значение в watch view, а история всех значений которые записывались в эту переменную



Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 25 февраля 2017 18:43
· Личное сообщение · #3

А под иду нет плагинов для моторолы, а то hex-rays не декомпилит моторолы ассемблер.



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 26 февраля 2017 21:56 · Поправил: Apokrif
· Личное сообщение · #4

varenik пишет:
Каким образом можно наблюдать за содержимым переменной v0 при работе с приложением? Интересует не текущее значение в watch view, а история всех значений которые записывались в эту переменную

v0 это грубо говоря ax и история всех значений вряд ли будет полезна.
Вроде можно прикрутить код на точки останова, чтобы не останавливаться, а печатать переменную. Уже и не помню точно...



Ранг: 12.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 27 февраля 2017 00:07
· Личное сообщение · #5

Apokrif пишет:
v0 это грубо говоря ax и история всех значений вряд ли будет полезна.
Вроде можно прикрутить код на точки останова, чтобы не останавливаться, а печатать переменную. Уже и не помню точно...


это не двухбайтовый регистр в привычном виде. далвике насколько я понял вообще нет регистров.
v* это локальные переменные которые содержат java объекты.

Надеялся, что можно залогировать все, что проходит через эту переменную, т.к. останавливаться и вручную копировать каждый раз сильно напрягает




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 27 февраля 2017 12:21
· Личное сообщение · #6

varenik
Логировать значения можно так попробовать:
1) На точке останова ПКМ -> Edit breakpoint
2) В поле Condition ввести Message("%x\n", v0), 0

последнее значение говорит, продолжать дальше выполнение или нет. 0, который стоит, означает - продолжить, можно ввести 1 - будет останавливаться каждый раз и логировать значение, а можно заменить на (v0 == some_value)

Добавлено спустя -59 минут
Если по каким-то причинам нельзя использовать прямо v0, можно воспользоваться idc-функцией GetRegValue("v0")

Добавлено спустя 47 минут
Теория опроверглась. Существуют различия в представлении объектов отладки при нативной отладке и при отладке смали. Из idc не вытащить переменные. Можно ли это сделать из питона? И как? Какой-нибудь пример бы

-----
IZ.RU




Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 27 февраля 2017 22:34 · Поправил: Apokrif
· Личное сообщение · #7

varenik пишет:
это не двухбайтовый регистр в привычном виде. далвике насколько я понял вообще нет регистров.
v* это локальные переменные которые содержат java объекты.

Не совсем так, хотя в данном случае это не важно:
Smali registers
Stack based vs register based virtual machine architecture
Это все лучше в Андроидной теме обсуждать.



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 28 февраля 2017 01:12
· Личное сообщение · #8

мож кто подскажет - в проге все строки юникод,
ида по умолчанию делает их анси (нечитабельно, потом меняю руками ,
есть ли метода как ее обучить с начала анализа сразу на юинкод строки?
спс



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 28 февраля 2017 10:30
· Личное сообщение · #9

sendersu пишет:
мож кто подскажет - в проге все строки юникод

У меня тоже все юникод, но только примерно половина utf32 и остальное utf8 (практически анси), а utf16 нету.

sendersu пишет:
ида по умолчанию делает их анси (нечитабельно, потом меняю руками

Во, а как руками-то менять? Может питона можно научить?
А искать потом можно нормально?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 28 февраля 2017 12:37 · Поправил: DenCoder
· Личное сообщение · #10

Apokrif
По ссылкам ничего про отладку в иде и получение объектов

Apokrif пишет:
Во, а как руками-то менять?

Alt-A. Если нужно Utf-8, то кнопка Change Encoding

Добавлено спустя 3 часа 49 минут
Периодически просматривая список из 600 встроенных в иду idc-функций, как всегда сам спросил и сам ответил - для задачи получения значения регистра v0 и других под далвик-дебаггером есть DalvikGetLocal и другие )

-----
IZ.RU


| Сообщение посчитали полезным: varenik, Apokrif


Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 28 февраля 2017 20:19 · Поправил: =TS=
· Личное сообщение · #11

sendersu пишет:
есть ли метода как ее обучить с начала анализа сразу на юинкод строки?


Можешь попробовать выставить в меню: "Options" -> "General" -> "Strings" -> "String type"

Apokrif пишет:
А искать потом можно нормально?


Подобно содержимому "Strings window" из питона работать со стоками можно через класс-надстройку "Strings"

-----
DREAMS CALL US




Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 28 февраля 2017 23:17
· Личное сообщение · #12

=TS= пишет:
Можешь попробовать выставить в меню: "Options" -> "General" -> "Strings" -> "String type"

Ему хорошо, у него все строки в одной кодировке.
А если все UTF, но разные 8/16(LE-BE)/32?

=TS= пишет:
Подобно содержимому "Strings window" из питона работать со стоками можно через класс-надстройку "Strings"

Типа пройти по всем Strings, попытаться определить кодировку и поменять?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 01 марта 2017 18:46
· Личное сообщение · #13

У меня такой вопрос:
Может, кто-нибудь сравнивал работу скриптов на idc и на питоне? Скрипт на питоне выполняется быстрее, чем на idc?

-----
IZ.RU




Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 01 марта 2017 21:55
· Личное сообщение · #14

DenCoder пишет:
Может, кто-нибудь сравнивал работу скриптов на idc и на питоне? Скрипт на питоне выполняется быстрее, чем на idc?

Я не сравнивал. По идее, и то и другое просто вызывают IDA API выполнить что-то, так что должно быть одинаково.
Если конечно не делать какой-нибудь bubble-sort на них, без IDA.
Но питон гораздо удобнее, IMHO.



Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 02 марта 2017 12:22 · Поправил: DrVB_5_6
· Личное сообщение · #15

DenCoder пишет:
Скрипт на питоне выполняется быстрее, чем на idc?

смотря что будешь делать. Задачи-то разные бывают. У питона есть доступ к IDA SDK, нет необходимости дорисовывать плагины на с++. Есть возможность подключать/использовать внешние библиотеки, которые и самой Иде не снились.
На операциях с базой типа "Make..." - вряд ли ощутишь разницу.

Apokrif пишет:Если конечно не делать какой-нибудь bubble-sort на них

Ну вот попользовать SQLite на IDC замучаешься, на питоне - левой ногой...!



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 03 марта 2017 04:45
· Личное сообщение · #16

DenCoder пишет: Скрипт на питоне выполняется быстрее, чем на idc?

Скорость упирается в обновление UI, элементарные вещи будут работать примерно с одной скоростью, а в целом python быстрее и это не альтернатива IDC, а альтернатива C++ plugins api. Написал скрипт плагин, закинул его в плагины и работает так же, как любой другой плагин написанный на плюсах, узкие места решаются написанием этих самых мест на C\C++ или любом другом языке умеющем собирать dll. Оптимизация по скорости это отдельная и долгая тема, от пересборки самого python, до настройки кэширования, менеджера памяти или дерева ast, но для подобных задач подобное не требуется.



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 03 марта 2017 08:27 · Поправил: Apokrif
· Личное сообщение · #17

shellstorm пишет:
Скорость упирается в ...

Все хором взялись мерить скорость для разных вариантов... вместо того, чтобы уточнить у DenCoder, что именно он имел ввиду?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 03 марта 2017 13:23
· Личное сообщение · #18

DrVB_5_6 пишет:
На операциях с базой типа "Make..." - вряд ли ощутишь разницу.

В основном функции Rfirst(), Rnext(), RfirstB(), RnextB(), strstr(), substr(), GetArrayElement(), SetArrayString(), SetArrayLong(). При переходе на питон 3 последние можно заменить... Я почему спрашиваю - хочу узнать, стоит ли перекладывать код в 1к+ строк с idc на питон. Видимо, стоит попробовать

-----
IZ.RU




Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 03 марта 2017 13:48
· Личное сообщение · #19

DenCoder пишет:
При переходе на питон 3 последние можно заменить...

последние 5 !!!
DenCoder пишет:
Видимо, стоит попробовать

Только ради спортивного интереса. На скорость вряд ли повлияет!!!
Ну 1к+ - это совсем чуть-чуть. Можно тренироваться.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 03 марта 2017 14:55
· Личное сообщение · #20

Другой вопрос - почему в 6.8 не работают далвик-функции ?

-----
IZ.RU




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 03 марта 2017 20:58
· Личное сообщение · #21

DenCoder пишет: хочу узнать, стоит ли перекладывать код в 1к+ строк с idc на питон

Если данный код универсален и возможно использование в подобных задачах, однозначно стоит, завести свою собственную библиотеку вспомогательных функций, это избавит от постоянного написания тысяч строк, это выгодней в плане архитектурного решения с заделом на будущие, а если перевести ради того, чтобы перевести, нет, не стоит.



Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 08 марта 2017 19:40 · Поправил: parfetka
· Личное сообщение · #22

Хочу допилить этот плагин:
http://rmadair.github.io/windbg2ida/ (здесь же описание и устаревший исходник)
Требуется помощь в его допиливании
под иду 6.8. Имхо, он очень поможет в исследовании программ, которые требуют ввода ключа - сразу видно, какая ветка неактивна при вводе неправильных данных и где надо свернуть..
Описание: трейсим файл в wdg, записываем файл в лог и с помощью плагина красиво расскрашиваем трассу выполнения. В архиве по ссылке ниже "своя работа" - файл плагина немного перепилен, под апи иды6.8 (но продолжает ругаться на питон!), а также мой exe'шник и снятый лог трассы - просто открываете exe в иде, запускаете плагин и открываете mylog.txt.

http://www113.zippyshare.com/v/fhQe1BrN/file.html




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 08 марта 2017 19:52
· Личное сообщение · #23

так хочу допилить или допилили ?
если допилии свяжитесь с автором пусть пульнет изменения, а то нет на гитхабе свой форк создайте

Добавлено спустя -56 минут
--> Link <-- и пуляйте свои допиливания



Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 08 марта 2017 20:41
· Личное сообщение · #24

не допилил (что, не там тему создал?) - питон ругается! Возможно, профи посмотрят Этот rmadair на почту не отвечает - где-то находил его ящик. Похоже, этот плагин писался для версии <5.5, к которой как-то прикручивался питон, т.е. давно дело было.
п.с. вообще, очень не хватает мануалов по питоновким функциям иды и примеров..



Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 08 марта 2017 21:16 · Поправил: DrVB_5_6
· Личное сообщение · #25

parfetka пишет:
очень не хватает мануалов по питоновким функциям иды и примеров..

Какие там мануалы нужны? Хелпов онлайн с сайта Иды мало? В самих питоновских каталогах Иды есть вся информация. Питон-то скриптовый язык!!! + СДК самой Иды. И флаг в руки и вперёд с песней!!!



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 марта 2017 20:29
· Личное сообщение · #26

parfetka пишет: Требуется помощь в его допиливании

использовать отладочное ядро для покрытия - плохая идея. возьмите dbi или эмулятор, тем более уже есть плагины в разной степени работоспособности и как раз под эту версию IDA, и для решения такой же задачи.

| Сообщение посчитали полезным: parfetka

Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 10 марта 2017 10:45
· Личное сообщение · #27

shellstorm
ничего не понял, но спасибо. Видел плагины для показа трассы других трейсеров (это конечная цель, не обязательно использовать именно этот плагин и wdg), но на тот момент они заводились только под линуксом, либо не наглядно, как VERA pin trace...




Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 10 марта 2017 21:24 · Поправил: Boostyq
· Личное сообщение · #28

Всем привет,
Возможно ли получить текущую декомпилированную строку из псевдокода?
Нужно для IDAPython, IDA 6.8:
Для полного декомпила decompile(), но нужно как get_curline() только декомпилированную
Спасибо

Отменяется, кому нужно:
get_custom_viewer_curline(get_current_viewer(),False)
Только она декорирована, так что нужно парсить.

-----
В облачке многоточия




Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 10 марта 2017 23:11 · Поправил: parfetka
· Личное сообщение · #29

у меня всё заработало:
--> Link <--
исползовал плагин:
https://github.com/gaasedelen/lighthouse



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2017 15:44 · Поправил: morkovni
· Личное сообщение · #30

Подскажите пожалуйста, как отключить dll rebasing при использовании IDA?
Перерыл весь интернет, но эффективного решения так и не нашел:
отключение флага "DLL can move" не помогает, изменение ImageBase у dll не помогает, а при установке системной переменной IDA_NO_REBASE становится невозможным отлаживать программу, так как dll все равно перемещается, и лишь в IDA Debugger адреса остаются прежними, при этом теряется связь между debugger-ом и программой в памяти.

Может я неправильно выбираю метод отладки?:
в IDA загружаю файл dll, может можно избежать rebasing загружая файл exe и зафиксировав необходимый модуль каким-то образом?

PS: rebasing запускается каждый раз при начале отладки, и занимает много времени. Base address каждый раз новый




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 19 марта 2017 18:29
· Личное сообщение · #31

ида не причем, это виндовый ASLR


<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати