Сейчас на форуме: Rio, vsv1, site-pro (+7 невидимых)

 eXeL@B —› Софт, инструменты —› Вопрос по IDA
. 1 . 2 . 3 . >>
Посл.ответ Сообщение


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 17 сентября 2011 21:40 · Поправил: PE_Kill
· Личное сообщение · #1

Был же топик где спрашивали всё по IDA, что то найти его не могу, может прилепить в этом подфоруме?

Вопрос такой. В делфи есть такое понятие как локальная процедура. Эта процедура описывается в разделе var и имеет доступ ко всем переменным родительской процедуры. Для доступа к переменным генерируется такой код:
Code:
  1. push ebp
  2. call NestedProc
  3. pop ecx


Проблема в том, что IDA не понимает, что NestedProc через ebp работает со стеком основной процедуры. Как это поправить? Вот пример:
Code:
  1. procedure TestProc;
  2. var
  3.   Param1, Param2: Cardinal;
  4.   procedure NestedProc;
  5.   begin
  6.     Param2 := Param2 + Param1;
  7.   end;
  8. begin
  9.   Param1 := $1234;
  10.   Param2 := $4321;
  11.   NestedProc;
  12. end;


Вот IDA разобрала основную процедуру:
Code:
  1. .text:0040B058 TestProc        proc near               ; CODE XREF: .itext:0040C194p
  2. .text:0040B058
  3. .text:0040B058 Param2          = dword ptr -8
  4. .text:0040B058 Param1          = dword ptr -4
  5. .text:0040B058
  6. .text:0040B058                 push    ebp
  7. .text:0040B059                 mov     ebp, esp
  8. .text:0040B05B                 add     esp, 0FFFFFFF8h
  9. .text:0040B05E                 mov     [ebp+Param1], 1234h
  10. .text:0040B065                 mov     [ebp+Param2], 4321h
  11. .text:0040B06C                 push    ebp
  12. .text:0040B06D                 call    NestedProc
  13. .text:0040B072                 pop     ecx


А вот так она видит процедуру NestedProc:
Code:
  1. .text:0040B044 NestedProc      proc near               ; CODE XREF: TestProc+15p
  2. .text:0040B044
  3. .text:0040B044 arg_0           = dword ptr  8
  4. .text:0040B044
  5. .text:0040B044                 push    ebp
  6. .text:0040B045                 mov     ebp, esp
  7. .text:0040B047                 mov     eax, [ebp+arg_0]
  8. .text:0040B04A                 mov     eax, [eax-4]
  9. .text:0040B04D                 mov     edx, [ebp+arg_0]
  10. .text:0040B050                 add     [edx-8], eax
  11. .text:0040B053                 pop     ebp
  12. .text:0040B054                 retn
  13. .text:0040B054 NestedProc      endp


-----
Yann Tiersen best and do not fuck





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

Создано: 17 сентября 2011 21:59
· Личное сообщение · #2

http://exelab.ru/f/action=vthread&forum=1&topic=12507
эта что ль

Alt+K пробуй на процедуре стек выставить
если не поможет хз
у IDA проблемы с пониманием стека всегда




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 17 сентября 2011 22:10 · Поправил: PE_Kill
· Личное сообщение · #3

Да не, мне нужно, чтобы процедуру NestedProc она видела как то так:
Code:
  1. .text:0040B044 NestedProc      proc near               ; CODE XREF: TestProc+15p
  2. .text:0040B044
  3. .text:0040B044 ParamsBlock           = dword ptr  8
  4. .text:0040B044
  5. .text:0040B044                 push    ebp
  6. .text:0040B045                 mov     ebp, esp
  7. .text:0040B047                 mov     eax, [ebp+ParamsBlock]
  8. .text:0040B04A                 mov     eax, [eax-Param1]
  9. .text:0040B04D                 mov     edx, [ebp+ParamsBlock]
  10. .text:0040B050                 add     [edx-Param2], eax
  11. .text:0040B053                 pop     ebp
  12. .text:0040B054                 retn
  13. .text:0040B054 NestedProc      endp


-----
Yann Tiersen best and do not fuck




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 17 сентября 2011 22:25
· Личное сообщение · #4

Могу предложить создать структуру повторяющую стековый фрейм от TestProc, тогда в NestedProc можно будет применить ее на ebp и будет понятно где какая переменная. А вообще ида такие вещи решать не умеет, да и хак это со стороны делфи...

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 17 сентября 2011 23:02 · Поправил: PE_Kill
· Личное сообщение · #5

Hexxx пишет:
Могу предложить создать структуру повторяющую стековый фрейм от TestProc

Это пришло мне в голову сразу. Только геморой это. Основных процедур 15, вложенных около 50, общим весом на ~1000 строк. Геморойно руками всё править и структуры создавать. Ну да ладно, если иначе нельзя то буду делать так, ибо делать надо

ADD:
А нельзя как то автоматом создать структуру из стекового фрейма?

-----
Yann Tiersen best and do not fuck




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 18 сентября 2011 12:39
· Личное сообщение · #6

ну для иды вообще-то стековый фрейм и есть структура. Ее просто надо скопировать в "пользовательские структуры"

-----
Реверсивная инженерия - написание кода идентичного натуральному


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

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

Создано: 20 сентября 2011 13:22
· Личное сообщение · #7

Как в IDA сбросить настройки отладчика для базы, чтоб она заново запросила совпадают ли .dll базы с dll процесса?

-----
старый пень




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 20 сентября 2011 19:22
· Личное сообщение · #8

"windows" - "reset hidden message" не катит?

-----
Реверсивная инженерия - написание кода идентичного натуральному


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


Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 24 сентября 2011 05:49
· Личное сообщение · #9

Адово Подерживаю! Сталкивался с таким не один раз. Бесит крепко. Предлагаю собрать десяток разных чистых (лицензионно) "сэмплов" и отправить Ильфаку. Могу попробовать продавить через офицальный саппорт, как легальный пользователь, но скорее всего ответ будет стандартный : "postponed due to lack of requests from users".



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 24 сентября 2011 11:20
· Личное сообщение · #10

DrGolova пишет:
"postponed due to lack of requests from users".

LOL к гадалке не ходи

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 20 октября 2011 01:00 · Поправил: sats
· Личное сообщение · #11

кто нибудь имеет опыт работы с так называемым SDK hex-rays ? необходимо осуществить анализ откуда формируется аргумент для определенной функции в статическом анализе( желательно в псевдо с), может наработки по скриптам есть у кого?! а также интересно как осуществить корректное подключение http://www.hex-rays.com/contests/2011/MalflarePluginContest.tar.bz2 плагина ?!



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

Создано: 20 октября 2011 16:57
· Личное сообщение · #12

Какие в IDAStealth должны быть настройки под Themida?

-----
старый пень





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

Создано: 23 октября 2011 03:26
· Личное сообщение · #13

sats пишет:
необходимо осуществить анализ откуда формируется аргумент для определенной функции в статическом анализе( желательно в псевдо с), может наработки по скриптам есть у кого?!

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



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 23 октября 2011 12:32
· Личное сообщение · #14

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




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

Создано: 23 октября 2011 16:06
· Личное сообщение · #15

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



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 23 октября 2011 18:50
· Личное сообщение · #16

так интересна возможность получения данных о изменении аргумента функции именно с использованием HR т.е. представлении изменений в виде языка высокого уровня




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

Создано: 23 октября 2011 18:57
· Личное сообщение · #17

не уверен что есть такой функционал... во всяком случая среди SDK HR такого не припомню
попробуй отлаживая код в HR, наводить курсором мауса на переменные
если хинт будет всплывать показывая значение
значит теоретически можно будет с IDA дергать значения через api sdk
если хинтов небудет, и не будет вообще никакого функционала о узнавании значения переменных в процесса отладки с HR, значит нельзя

да и зачем именно такое извращение? я так понимаю ты логгер какойто хитрый ищешь



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 23 октября 2011 19:00
· Личное сообщение · #18

ну вроде того. ограничение в том, что динамики в отладки не будет - интересует именно стационарный анализ



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

Создано: 26 октября 2011 14:57
· Личное сообщение · #19

Как сделать чтобы Ida pro 6.1 стала понимать русские строки в программах?
(взята с рутрекера)



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 27 октября 2011 12:37
· Личное сообщение · #20

переключить таблицу символов в ida.cfg

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 27 октября 2011 19:46
· Личное сообщение · #21

Добрый вечер!! резко встала необходимость в удаленной отладке одного девайса - который крутиться под LINUX 2.4 - закатал туда IDA_SERVER, но при попытке запустить приложения выдает ошибки типа libstdc++.so.6 ELF file OS ABI invalid. установил библиотеку - но толку ноль. возможно ошибка в том что ядро LINUX слишком старое?! но пересобрать возможности нет. Кто может проконсультировать по данному вопросу?! о тонкостях настройки IDA ?!




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

Создано: 27 октября 2011 19:53 · Поправил: reversecode
· Личное сообщение · #22

http://exelab.ru/f/action=vthread&forum=1&topic=12507&page=19#4
http://www.tigacorp.net/videos/TiGa-vid2.htm

ida server если что можно и под конкретный линкус самому пересобрать
gcc правда на тот девай нужно будет подгрузить, если FS хватит



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 27 октября 2011 20:00 · Поправил: SaNX
· Личное сообщение · #23

А есть у кого свежий сервер под андроид?

-----
SaNX




Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 27 октября 2011 20:04
· Личное сообщение · #24

ida server если что можно и под конкретный линкус самому пересобрать - вот видимо в этом основная проблема и будет. потому как до того как запустить server еще нужно будет дойти! и еще вопрос возможно ли будет удаленно подцепить через IDA файлы kernel object (расширение ko) которые уже выполняются?!




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

Создано: 27 октября 2011 20:10
· Личное сообщение · #25

затягиваешь на свой тот линукс gcc+ida sdk
и перекомпиляешь
компилятор сам нужную текущую в системе libc подцепит

SaNX пишет:
А есть у кого свежий сервер под андроид?

раз все молчат, ты не так спрашиваешь))
проси что бы тебе в личку выслали diff от sdk той что на паблике и той что последняя
а сам применишь и пересоберешь под себя



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 27 октября 2011 20:17
· Личное сообщение · #26

reversecode пишет:
затягиваешь на свой тот линукс gcc+ida sdk
и перекомпиляешь

хм мне кажеться с SDK как бы проблем не было!? у тебя подобный опыт уже был?!



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 27 октября 2011 20:25
· Личное сообщение · #27

reversecode пишет:
пересоберешь под себя

это врядле, сорцов-то нет

-----
SaNX





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

Создано: 27 октября 2011 20:29 · Поправил: reversecode
· Личное сообщение · #28

sats пишет:
хм мне кажеться с SDK как бы проблем не было!? у тебя подобный опыт уже был?!

какие проблемы?
нет не было, я ничего не отлаживаю и не компиляю

SaNX пишет:
это врядле, сорцов-то нет

стяни IDA SDK 6.1
или ты про какие сорсы? андроида?



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 27 октября 2011 22:18
· Личное сообщение · #29

ну да, там android_server уже скомпиленный идет.

-----
SaNX





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

Создано: 27 октября 2011 22:29
· Личное сообщение · #30

все сервера компилятся от сюда, idasdk61\plugins\debugger\
макросами переключаются под что, линукс андроид виндовс итд


. 1 . 2 . 3 . >>
 eXeL@B —› Софт, инструменты —› Вопрос по IDA
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати