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

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 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.





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

Создано: 22 июля 2015 11:57
· Личное сообщение · #2

есть так себе плагин с контеста
hexrays_tools by Milan Bohacek, Charles University in Prague --> Link <--
на видео и в описании этого нет, но есть в примерах в архиве с отрицательными смещениями



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

Создано: 22 июля 2015 12:19
· Личное сообщение · #3

reversecode
А, чтобы сделать совместимым hexrays_tools с последней слитой версией ida только sdk "читать"? Или еще где-нибудь есть полезная информация?




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

Создано: 22 июля 2015 12:32 · Поправил: reversecode
· Личное сообщение · #4

там соурсы есть, только пересобирать
если что то еще найдете с отрицательными смещениями скажите, мне тоже интересно

Добавлено спустя 3 минуты
кстати есть еще CONTAINING_RECORD для hexrays
--> Link <--
--> Link <--
--> Link <--
--> Link <--
но оно не для всех случаев, и в сложных выкрутиться им нельзя



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

Создано: 25 июля 2015 23:25
· Личное сообщение · #5

Может кто знает, а может кому пригодится. Нашел описание, как использовать этот CONTAINING_RECORD для негативных смещений структур. В результате и в IDA и в Hex Rays отображает структуры корректно (а всего на всего надо было выбрать кусок кода и нажать T да чуток настроить в более полном диалоге)
--> Link <--




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

Создано: 25 июля 2015 23:47
· Личное сообщение · #6

оно работает только когда в структуре надо сдвинуть одно поле
для виндовых драйверо реверсеров именно подходит
а когда это наследование вирутальных классов где целые блоки сразу и + и - смещение от this(ecx)
оно не помогает



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 03 августа 2015 22:43
· Личное сообщение · #7

Если кто-нибудь ловил такой варнинг в отладчике:

Could not find the elf interpreter name,
shared object events will not be reported

подскажите что с ним делать?

-----
все багрепорты - в личные сообщения





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

Создано: 03 августа 2015 22:59
· Личное сообщение · #8

файл сам по себе запускается?
динамически слинкованых либ нет?
а что с этим поделаешь?



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 03 августа 2015 23:06
· Личное сообщение · #9

К отладке подхожу через аттач(есть на то причины). Файл запускается и выполняется нормально, поверх телепается упаковщик. Как заставить ИДА проименовать весь импорт в таком случае? Или хотя бы что б стоя на определённых функциях получать имя импортируемой функции.

-----
все багрепорты - в личные сообщения





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

Создано: 03 августа 2015 23:13 · Поправил: reversecode
· Личное сообщение · #10

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



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 03 августа 2015 23:26
· Личное сообщение · #11

Приаттачился после дешифровки, такая же петрушка. По идее если ИДА парсит изменённый код, она должна и внешние вызовы подхватывать, а раз не подхватила - значит что-то ей нужно.

-----
все багрепорты - в личные сообщения





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

Создано: 03 августа 2015 23:40
· Личное сообщение · #12

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 14 августа 2015 19:12 · Поправил: plutos
· Личное сообщение · #13

На hex-rays.com нашел статью "Debugging Windows kernel under VMWare using IDA's GDB debugger"
В ней, в частности, говорится:
"Preparing VM for debugging
Let's assume that you already have a VM with Windows (32-bit) installed. Before starting the debugging, you can copy the kernel for symbol retrieval later.
Copy ntoskrnl.exe or ntkrnlpa.exe (depending on the VM configuration) from Windows/sytem32."

Я такую связку (VMWare + IDA's GDB debugger) никогда не пробовал, но звучит интересно.
Помогите ответить на три вопроса:
Откуда и куда нужно копировать kernel?
Как определить какой именно файл нужно копировать: ntoskrnl.exe или ntkrnlpa.exe?
Зачем это делать? Ведь мы для символов используем .pdb files, загружаемые автоматически с Microsoft symbol server.

-----
Give me a HANDLE and I will move the Earth.





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

Создано: 14 августа 2015 20:14 · Поправил: reversecode
· Личное сообщение · #14

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

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

Ранг: 45.7 (посетитель), 40thx
Активность: 0.030
Статус: Участник

Создано: 16 августа 2015 01:50
· Личное сообщение · #15

Ida sdk and utilites 6.8
http://forum.exetools.com/showthread.php?p=101104#post101104



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

Создано: 16 августа 2015 11:21 · Поправил: VerGunSky
· Личное сообщение · #16

igorca
С паролем из утекшего письма с офф сайта можно скачать всё

www login: idauser
www password: vef03fescQCWyt02aoV

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


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

Создано: 17 августа 2015 16:59
· Личное сообщение · #17

Можно как-нибудь настроить иду 6.5+ так, чтобы при переходе на большое кол-во объектов(массив объектов структур или переменных), полученных из dwarf, она не зависала на полдня?

-----
IZ.RU





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

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

это где это как это ?




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

Создано: 17 августа 2015 17:29 · Поправил: DenCoder
· Личное сообщение · #19

Скопировать кусок огромных массивов проблемно. Их свыше 5 тыс, и даже когда рядом встаёшь на массив поменьше, 200 объектов, зависает. Смотришь в диспетчер задач - загружает одно ядро, выделяется память по 500 кб в секунду. Через несколько минут отвисает. Но на какой-то раз доходит даже до такого:


Такое и у 6.5, и у 6.6.

-----
IZ.RU





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

Создано: 17 августа 2015 20:26
· Личное сообщение · #20

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 17 августа 2015 23:59 · Поправил: plutos
· Личное сообщение · #21

В продолжение своего вопроса (номер 13 выше):
Нахожу указатель на KPCR structure (fs:0x0000), чтобы потом через offset 0x034 перейти на FS:0x34 (KPCR!KdVersionBlock), а оттуда найти base of ntoskrnl.exe. Но по этому адресу (KPCR!KdVersionBlock) - null.
Нашел кое-что по этому вопросу:
"Interestingly, the structure we reference at FS:0x34 (KPCR!KdVersionBlock) is not guaranteed to exist in multiprocessor systems if you are not executing on the first processor"
Пробовал на нескольких multiprocessor systems, результат один и тот же. На VMWare стоит Win2k (2195), но я так понимаю, что от OS это не зависит.
Вот, на всякий случай winDbg output, хотя на IDА е тоже самое, тот же null по этому адресу.
kd> !kpcr
No export kpcr found
kd> dt nt!_KPcr ffdff000
+0x000 NtTib : _NT_TIB
+0x01c SelfPcr : 0xffdff000 _KPCR
+0x020 Prcb : 0xffdff120 _KPRCB
+0x024 Irql : 0 ''
+0x028 IRR : 0
+0x02c IrrActive : 0
+0x030 IDR : 0xffffffff
+0x034 Reserved2 : 0
+0x038 IDT : 0x80036400 _KIDTENTRY

Сам адрес можно найти, используя вот такой код:

Code:
  1.  // Multi Processors (MP)
  2.     // To ensure that it's running on a specific processor.
  3.     //
  4.     KeSetSystemAffinityThread(1);
  5.     _asm {
  6.        mov eax, fs:[0x1C]  // SelfPCR
  7.        mov eax, [eax + 0x34] // KdVersionBlock
  8.        mov KdVersionBlock, eax
  9.    }
  10.     //
  11.     // Go back to default affinity.
  12.     //
  13.     KeRevertToUserAffinityThread();

Но для этого мне сперва нужно этот код run on VM Ware host, записать адрес, а потом вернутся обратно в IDA. Можно ли обойти такое неудобство?

-----
Give me a HANDLE and I will move the Earth.





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

Создано: 19 августа 2015 10:25 · Поправил: DenCoder
· Личное сообщение · #22

reversecode пишет:
проверки баг не баг

Это была проверка 6.5, 6.6 без дек.обновления. Проверил обновление - с ним работает шустрее, но в описанном плане такой же зависон(хотя может отличается - немного другие принципы зависания Ильфак заложил/улучшил их ). Немного поизучал проблему снятием снэпшотов с загруженного треда - QtGui4.dll, не вошедшая в дек.обновления, все тормоза в ней сосредоточены.

Добавлено
Кол-во строк в Output window типа "адрес: too many lines" не удалось подсчитать - при копипасте ида маякнула "Out of memory" и вылетела.

plutos пишет в посте №13:
Как определить какой именно файл нужно копировать: ntoskrnl.exe или ntkrnlpa.exe?

По crc можно узнать. crcOf(LoadedNt) = crcOf(searchedNt)

plutos пишет в посте №21:
а оттуда найти base of ntoskrnl.exe

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

Интересно, что есть ещё реверсеры, которые доверяют gdb внутри иды. Ведь будь он нормальным там, то консолька не хуже виндбг, должна выдать всю необходимую инфу.
В теории есть исходники, вроде как есть IDA SDK, и есть урезанный gdb_user.plw...

Добавлено в общем для справки
Причины, по которым требуется собрать нормальный ида-плагин GDB для его нормальной работы:
1. Поиск исходников, в которых есть строчка "Warning: ignoring unknown GDB feature %s", ничего не дал. Но она присутствует в $IDA_PATH$/plugins/gdb_user.plw. Следует из этого, что собирали gdb для иды не из opensource. Своё! Плевать они хотели на opensource, есть же описание протокола. Но авторА иды не учитывают, что он достаточно часто меняется!

2. Заметим, что у ида-плагина GDB в списке GDB features для ARM следующие:
Code:
  1. org.gnu.gdb.arm.fpa
  2. org.gnu.gdb.arm.vfp
  3. org.gnu.gdb.arm.m-profile
  4. org.gnu.gdb.arm.core

Армы Cortex-A7 и выше архитектуры ARMv7A давно содержат в себе фичу org.gnu.gdb.arm.neon (с точки зрения нормального gdb). Но когда был выпущен первый A7, и когда плагины для ida6.6? Ида в 2014, может и так. A7? Его Architecture Reference Manual?
Code:
  1. 05 April 2007 A Non-Confidential New edition for ARMv7-and ARMv7-R architecture profiles.
  2. Document number changed from ARM DDI 0100 to ARM DDI 0406 and contents restructured.
  3. 29 April 2008 B Non-Confidential Addition of the VFP Half-precision and Multiprocessing Extensions, and many clarifications and enhancements.
  4. 23 November 2011 C (C.a) Non-Confidential Addition of the Virtualization Extensions, Large Physical Address Extension, Generic Timer Extension, and other 
  5. additions. Many other clarifications and enhancements.
  6. 24 July 2012 C.b Non-Confidential Errata release for issue C.a.
  7. 20 May 2014 C.c Non-Confidential Second errata release for issue C.a.

Я сомневаюсь, что в редакции даже 2012 года было дополнено именно по расширению NEON для ARM. Смотреть надо, но 2011 год - вполне возможный, когда начали появляться арм-компиляторы с неоновской фичей. Умолчу о догадках, что там в hex-rays происходит, но печалька, что не успевают.

3. В плагине gdb для иды всё, что есть в консоли - каких-то жалких 3 команды для всех архитектур. Это весь функционал? У gdb управление именно отладочным функционалом гораздо шире! Никакие idc-скрипты и питоны его не заменят! Хотя возможно питоновский скрипт отсылки/приёма пакетов может служить каким-то костылём, но сомневаюсь...

P.S. Возможно по GDB для IDA надо вынести в отдельную тему. Ведь ида остаётся во многом незаменимым пока дизассемблером, а отладка с помощью её плагинов, не переключаясь на другие дебаггеры - полезная фича, снижает утомляемость в процессе реверса.

-----
IZ.RU


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

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

Создано: 26 августа 2015 21:03
· Личное сообщение · #23

Есть вот такой код на питоне в одном Ида плагине, он работает на Иде 6.8+ или даже 6.7. На 6.6 не работает.

https://github.com/ynvb/DIE/blob/abda79c96719d28d9465e17547874b2796d49ec3/DIE/Lib/IDATypeWrapers.py

self.funcInfo = idaapi.func_type_data_t()
...
argNum = len(self.funcInfo)

Видимо, почемуто стандартный len(object) успешно возврает кол.во аргументов в новых Идах.
Хотя в доках
https://www.hex-rays.com/products/ida/support/idapython_docs/idaapi.func_type_data_t-class.html
ничего подобного нет.

Есть
https://www.hex-rays.com/products/ida/support/idapython_docs/idaapi.tinfo_t-class.html
int get_nargs(self)

Обясните почему len() работает? И можно ли его успешно заменит хотя бы в IDATypeWrapers.py, def getArguments(self)?



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

Создано: 26 августа 2015 21:32
· Личное сообщение · #24

Возможно нубский вопрос. Делаю анализ файла, распознаются стандартные либы, функции и т.д. Но когда файл загружается в отладчик(делаю аттач к процессу) всё это дело слетает. Как перенести проанализированную Идой инфу в адресное пространство процесса?



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

Создано: 26 августа 2015 22:00
· Личное сообщение · #25

Добавю что -1 это ошибка. Как это с этим разобраться? СДК есть.




Ранг: 20.4 (новичок), 8thx
Активность: 0.030
Статус: Участник

Создано: 26 августа 2015 22:03
· Личное сообщение · #26

cracker888
Отладчик IDA? Какая версия иды?



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

Создано: 26 августа 2015 22:22
· Личное сообщение · #27

hello пишет:
Отладчик IDA? Какая версия иды?

Отладчик IDA. Версия значения думаю не имеет. Это универсальная проблема. Но у меня версия 6.1



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

Создано: 26 августа 2015 23:25
· Личное сообщение · #28

Ок. Понял как кол.во аргументов найти. Как и из каждого арга тинфо-т сделать. Дальше надо
argType = self.funcInfo.at(argIndex).type
argLoc = self.funcInfo.at(argIndex).argloc
argName = self.funcInfo.at(argIndex).name

Не подскажет кто, как вот это заполнить.
https://www.hex-rays.com/products/ida/support/sdkdoc/structfuncarg__t.html

Тут
https://www.hex-rays.com/products/ida/support/sdkdoc/classtinfo__t.html
есть
bool tinfo_t::get_type_name ( qstring * name ) const
но он питоновский стринг = "" за qstring* берёт.

Добавлено спустя 1 минуту
cracker888 пишет:
Но когда файл загружается в отладчик(делаю аттач к процессу) всё это дело слетает.

Можно ведь и после атача анализировать, не?

Добавлено спустя 2 часа 51 минуту
После ty = ti.get_nth_arg(index), type вроде работает.
Теперь funcarg_t, argloc и nameе. Как к ним добраться...

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

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

Создано: 29 августа 2015 16:57
· Личное сообщение · #29

hash87szf пишет:
Можно ведь и после атача анализировать, не?

И правда, спасибо вам добрый человек



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

Создано: 29 августа 2015 20:57
· Личное сообщение · #30

Дело только в тмо, что ни снэпшот, ни сохранение дб, анализ не спасут, если закрыть Иду. Она дисасм забывает если открыть функу из распакованного кода например.



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

Создано: 01 сентября 2015 22:04
· Личное сообщение · #31

reversecode пишет:

--> Link <--
As for the new ida version nice to see they fixed most of the bugfixes.

for fun i patched the 6.8 ida.wll to work with idag.exe (6.6), since ida.wll holds the new functions.
I upgraded 6.6 exe to work with demo 6.8 and and all works like full ida thinking its a 6.8 version, so only bugfixes.

Известно ли что патчиться? Потому что я смотрю, а ник у чела тот же шо и dynamicIDAenchancement plugin..."пачил" по клоунски.


<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати