eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 17 сентября 2011 21:40 · Поправил: PE_Kill New!
Цитата · Личное сообщение · #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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 17 сентября 2011 22:10 · Поправил: PE_Kill New!
Цитата · Личное сообщение · #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


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

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

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

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

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

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

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


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

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

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

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


Ранг: 578.8 (!)
Статус: Модератор

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

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


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

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

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

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



Ранг: 199.6 (ветеран)
Статус: Участник
www.uinc.ru

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

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


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

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

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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

Ранг: 578.8 (!)
Статус: Модератор

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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

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

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

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


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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

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

Ранг: 116.5 (ветеран)
Статус: Участник

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

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

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

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

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

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

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

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

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

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

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

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


Ранг: 1014.8 (!!!!)
Статус: Участник

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

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

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS