Сейчас на форуме: tyns777, cppasm, dutyfree (+7 невидимых)

 eXeL@B —› Вопросы новичков —› userpurge в IDA
Посл.ответ Сообщение

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

Создано: 04 августа 2017 15:40
· Личное сообщение · #1

Привет

Изучаю код скомпиленный VC++ 6.0 в IDA.

Функция (f1) определяется декомпилятором как userpurge (хотя судя по частично доступному исходному коду такого там быть не должно).

После этого функция (f2) где есть вызов f1 тоже становится userpurge в декомпиляторе (хотя до этого детектилась другая calling convention). Появляются новые входные параметры типа a1<eax> и т.п.

Это

1) Так и должно быть?
2) Баг?
3) Неправильно настроенный декомпилятор?



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 04 августа 2017 17:33
· Личное сообщение · #2

По дизасму все должно быть видно, в чем проблема?
Ида, конечно, бывает "проглатывает" запутанный код, также мб антиотладка, самомодификация, да что угодно. Показывайте сабж, или смотрите дизасм.



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

Создано: 05 августа 2017 17:45
· Личное сообщение · #3

codevx пишет:
Это1) Так и должно быть?2) Баг?3) Неправильно настроенный декомпилятор?



1) проверить какой компилятор определила ИДА
если не тот - посавить руками - Options -> Compiler
2) сигнатуру (in/out args + types + название функции) можно менять руками - клавиша Y на названии функции



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

Создано: 07 августа 2017 12:10
· Личное сообщение · #4

Увы, тоже часто приходится сталкиваться с этим. И как лечить не нашел.

Хексрею пох на выставленный компилятор и нотацию вызовов. Все равно лепит эти usercall/userpurge. И лепит не только для одной функции которую не смог переварить, а еще и для всех вызывающих ее вверх по цепочке.

По Y менять тип можно, но когда это не одна, а уже десяток-другой таких функций это надоедает



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

Создано: 07 августа 2017 13:27
· Личное сообщение · #5

Veliant пишет: И как лечить не нашел.

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




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

Создано: 07 августа 2017 16:30
· Личное сообщение · #6

1) так и должно быть
и это никак не исправить



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

Создано: 08 августа 2017 14:24
· Личное сообщение · #7

Спасибо, видимо можно закрывать.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 08 августа 2017 14:54
· Личное сообщение · #8

Автор сам может закрыть свою тему, кнопка "Закрыть тему" находится внизу страницы, под кнопкой "Отправить сообщение".


 eXeL@B —› Вопросы новичков —› userpurge в IDA
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати