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

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 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.




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

Создано: 14 мая 2014 15:17
· Личное сообщение · #2

Помогло, но увеличил еще и NPAGESIZE. Стало NPAGESIZE = VPAGESIZE = 32768, иначе выдавало ошибку.
Осталось только ждать Спасибо.




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

Создано: 14 мая 2014 15:38
· Личное сообщение · #3

в ida.cfg все расписано, и формула как оно там чего увеличивает
NPAGESIZE я никогда не трогал, думаю смысла нет




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 14 мая 2014 15:41
· Личное сообщение · #4

Товарищи, не подскажете, где взять исходники и как собрать сервера для отладки, т.е. armlinux_server + linux_server?

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 14 мая 2014 15:43 · Поправил: reversecode
· Личное сообщение · #5

под арм никак не собирается, он в комплекте идет, под обычный x86 линукс в комплекте и соурсы из idasdk




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 14 мая 2014 15:57
· Личное сообщение · #6

reversecode
А реально ли перепилить под арм тот, что под обычный линукс?

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 14 мая 2014 16:02
· Личное сообщение · #7

зачем перепиливать? в комплекте иды 6.1 и той что раздают на борде уже есть armlinux_server




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 14 мая 2014 16:39
· Личное сообщение · #8

Та есть-то он есть, да только мне бы его хотелось собрать статически слинкованным. Динамически слинкованный хочет от меня библиотек. А их нет.

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 14 мая 2014 16:47 · Поправил: reversecode
· Личное сообщение · #9

доставляй либы той версии которой хочет сервер
новая ида тебе тоже не поможет, там все так же собрано

либо напиши ильфаку баг репорт))



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

Создано: 15 мая 2014 23:57
· Личное сообщение · #10

reversecode пишет:
в ida.cfg все расписано, и формула как оно там чего увеличивает
NPAGESIZE я никогда не трогал, думаю смысла нет


Выставил одна на 32к, второй на 16к, т.к. вылетали ошибки... потом пришлось сменить машину, ибо 8 гб ОЗУ не хватало, переехал на 32 Гб.... все еще идет анализ...




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

Создано: 22 мая 2014 09:08
· Личное сообщение · #11

--> Link <-- MIPS to C decompiler plugin for ida 6.5 or above



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

Создано: 06 июня 2014 07:45
· Личное сообщение · #12

как-то незамеченной прошла новость о выходе 6.6 с x64 декомпилем



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 06 июня 2014 09:45
· Личное сообщение · #13

dant3 пишет:
как-то незамеченной прошла новость о выходе 6.6 с x64 декомпилем

Думаю кому нада, тот заметил
Оффтоп

Дайте мне пирожок




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 22 июня 2014 03:22 · Поправил: daFix
· Личное сообщение · #14

Столкнулся с не понятной для меня проблемой, ни как не могу разобраться. Отлаживаю софт по удалёнке через linux_server. Прога становится на EP, делаю несколько шагов, дохожу до " __libc_start_main", F8 и код как-то съезжает на более высокие адреса. Тоесть, к примеру функция start:
Code:
  1. .text:0804FAF0 start           proc near
  2. .text:0804FAF0                 xor     ebp, ebp
  3. .text:0804FAF2                 pop     esi
  4. .text:0804FAF3                 mov     ecx, esp
  5. .text:0804FAF5                 and     esp, 0FFFFFFF0h
  6. .text:0804FAF8                 push    eax
  7. .text:0804FAF9                 push    esp
  8. .text:0804FAFA                 push    edx
  9. .text:0804FAFB                 push    offset sub_823DB70
  10. .text:0804FB00                 push    offset sub_823DB80
  11. .text:0804FB05                 push    ecx
  12. .text:0804FB06                 push    esi
  13. .text:0804FB07                 push    offset sub_80B3700
  14. .text:0804FB0C                 call    ___libc_start_main
  15. .text:0804FB11                 hlt
  16. .text:0804FB11 start           endp


А вот уже покароженный вариант:
Code:
  1. .text:0804FB20 xor     ebp, ebp
  2. .text:0804FB22 pop     esi
  3. .text:0804FB23 mov     ecx, esp
  4. .text:0804FB25 and     esp, 0FFFFFFF0h
  5. .text:0804FB28 push    eax
  6. .text:0804FB29 push    esp
  7. .text:0804FB2A push    edx
  8. .text:0804FB2B push    offset off_8254150
  9. .text:0804FB30 push    offset off_8254160
  10. .text:0804FB35 push    ecx
  11. .text:0804FB36 push    esi
  12. .text:0804FB37 push    offset loc_80B573E
  13. .text:0804FB3C call    loc_804EABC
  14. .text:0804FB41 hlt


Что за хрень?

-----
Research For Food





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

Создано: 22 июня 2014 03:47
· Личное сообщение · #15

если прога сама себя не модифицирует в секции .ctors
то значит баг, пиши ильфаку

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


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

Создано: 22 июня 2014 20:58 · Поправил: DenCoder
· Личное сообщение · #16

По-видимому, это 2 разных процесса (образы скомпилены одним компилятором, один процесс породил другой), только дочерний в контексте старого. Такие чудеса бывают на линуксе, сам был удивлён... Не помню точно, по-моему надо ловить SIGCHLD вследствие вызова одной из --> функций <--

-----
IZ.RU


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


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

Создано: 22 июня 2014 21:06
· Личное сообщение · #17

системно линукс такое не учудит иначе все завалится
ида в любом случае чет начудила

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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 23 июня 2014 00:23
· Личное сообщение · #18

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

reversecode пишет:
если до main еще не дошло

Как я понимаю, EP != main?

-----
Research For Food





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

Создано: 23 июня 2014 00:53
· Личное сообщение · #19

daFix пишет:
Как я понимаю, EP != main?

Так же, как и в Windows, до main() отрабатывает crt, инициализация переменных, вызов конструкторов классов, если прога на си

-----
IZ.RU





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

Создано: 23 июня 2014 00:57
· Личное сообщение · #20

Code:
  1. .text:08049930 _start          proc near
  2. .text:08049930                 xor     ebp, ebp
  3. .text:08049932                 pop     esi
  4. .text:08049933                 mov     ecx, esp
  5. .text:08049935                 and     esp, 0FFFFFFF0h
  6. .text:08049938                 push    eax
  7. .text:08049939                 push    esp
  8. .text:0804993A                 push    edx
  9. .text:0804993B                 push    offset __libc_csu_fini  <--- initialization of dtor
  10. .text:08049940                 push    offset __libc_csu_init  <--- initialization of ctor
  11. .text:08049945                 push    ecx
  12. .text:08049946                 push    esi
  13. .text:08049947                 push    offset main <--- main
  14. .text:0804994C                 call    ___libc_start_main
  15. .text:08049951                 hlt
  16. .text:08049951 _start          endp





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 23 июня 2014 01:21
· Личное сообщение · #21

reversecode
Функция инициализации деструкторов пустая, а в инициализации конструкторов код есть, но после выполнения колла код всё ещё не релоцированный

-----
Research For Food





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

Создано: 23 июня 2014 01:30 · Поправил: reversecode
· Личное сообщение · #22

код реалоцируется когда уже в main оказываешься?
а после выхода из конструкторов все еще не реалоцирован ?
странно конечно...

реалоцируется вообще весь бинарь?




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 23 июня 2014 04:43 · Поправил: daFix
· Личное сообщение · #23

Блин, парни, я тупил не много. Сейчас накопал один момент... Код из main -
Code:
  1. .text:080B3700 ; int __cdecl sub_80B3700(int, char **argv)
  2. .text:080B3700 sub_80B3700     proc near               ; DATA XREF: start+17o
  3. .text:080B3700
  4. .text:080B3700 argv            = dword ptr  0Ch
  5. .text:080B3700
  6. .text:080B3700                 push    ebp
  7. .text:080B3701                 mov     ebp, esp
  8. .text:080B3703                 and     esp, 0FFFFFFF0h
  9. .text:080B3706                 sub     esp, 20h
  10. .text:080B3709                 mov     dword ptr [esp+1Ch], 0
  11. .text:080B3711                 mov     dword_827BA70, 40h
  12. .text:080B371B                 mov     ds:dword_82BC26C, 0
  13. .text:080B3725                 mov     eax, offset unk_823F08F
  14. .text:080B372A                 mov     dword ptr [esp+8], 0
  15. .text:080B3732                 mov     dword ptr [esp+4], 15h
  16. .text:080B373A                 mov     [esp], eax
  17. .text:080B373D                 call    sub_80B9ADF
  18. .text:080B3742                 mov     edx, [ebp+argv]
  19. .text:080B3745                 mov     [esp+4], edx    ; argv
  20. .text:080B3749                 mov     [esp], eax      ; path
  21. .text:080B374C                 call    _execv
  22. .text:080B3751                 mov     eax, 0
  23. .text:080B3756                 leave
  24. .text:080B3757                 retn
  25. .text:080B3757 sub_80B3700     endp

Запускается ещё один бинарь, который лежит в подпапке и в параметре командной строки передаётся путь к текущему бинарю. Тоесть, наверное сразу срабатывает деструктор.
Но один момент - получается что я начинаю отлаживать уже новый бинарь, который загрузился в адресное пространство запускающего процесса при запуске через _execv?

Сейчас склоняюсь к тому что Ден был прав...
DenCoder пишет:
По-видимому, это 2 разных процесса (образы скомпилены одним компилятором, один процесс породил другой), только дочерний в контексте старого. Такие чудеса бывают на линуксе, сам был удивлён... Не помню точно, по-моему надо ловить SIGCHLD вследствие вызова одной из --> функций <--


-----
Research For Food





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

Создано: 23 июня 2014 09:55
· Личное сообщение · #24

daFix пишет:
Но один момент - получается что я начинаю отлаживать уже новый бинарь, который загрузился в адресное пространство запускающего процесса при запуске через _execv?

Да, есть в линуксе такое чудо. По выходу из такого "дочернего процесса" с тем же ид управление в "родитель" не передаётся, поскольку его образ фактически разрушен. (Привычные нам понятия здесь в кавычках, поскольку считаю, что здесь не совсем они верны)

-----
IZ.RU


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


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

Создано: 23 июня 2014 14:03 · Поправил: reversecode
· Личное сообщение · #25

что значит разрушен? execv может плодить процессы при этом родитель может делать свою работу
здесь или тонкость работы с идой, может опция какая "не бегать за потомками", или как то предупреждать об этом
либо глюк иды

да, пардон execv заменяет, это перед ним fork делают что бы все продолжало работать




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 23 июня 2014 15:10
· Личное сообщение · #26

DenCoder, reversecode работает! Спасибо, выручили

-----
Research For Food




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

Создано: 13 июля 2014 05:10
· Личное сообщение · #27

как продизасмить файл для процессора 80188/80186 16 bit? В списке поддерживаемых архитектур не вижу такого (даже для Pro версии). Если открывать файл для дефолтной x86 metapc, конечно же, показывает бред.




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

Создано: 13 июля 2014 16:14
· Личное сообщение · #28

а формат у этой программы какой? екзе? 16 ида дизасмить умеет
жертву приаттачте что ль




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

Создано: 14 июля 2014 22:51
· Личное сообщение · #29

litecoiner пишет:
как продизасмить файл для процессора 80188/80186 16 bit?


--> Link <--

-----
IZ.RU




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

Создано: 21 июля 2014 15:35 · Поправил: awlost
· Личное сообщение · #30

Уважаемые гуру скиптов и плагинов, подскажите вот что.

Когда у функции есть (указан) тип, т.е. задан в виде
Code:
  1. BOOL __cdecl Function(void *arg0, void *arg1, int arg2)

то автоанализ, встречая вызов такой функции, помечает ее аргументы на стеке в виде коментариев:
Code:
  1. .text:13028F7C                 jnz     short loc_13028F97
  2. .text:13028F7E                 push    0 ; arg2
  3. .text:13028F80                 push    0; arg1
  4. .text:13028F82                 push    esi; arg0
  5. .text:13028F83                 call    Function
  6. .text:13028F88                 test    eax, eax

Code:
  1. .text:1302001B                 push    400h ; arg2
  2. .text:13020020                 lea     ecx, [esp+614h]
  3. .text:13020027                 push    ecx ; arg1
  4. .text:13020028                 push    edi ; arg0
  5. .text:13020029                 call    Function


Вопрос вот в чем: можно ли в каком либо виде получить значения и/или тип аргументов (регистр, переменная стека, константа, етк)
стоя в данном случае на 13028F83

в idc вроде как нельзя, нет такого функционала, а вот в SDK мож есть, да не туда гляжу?
Можно конечно пробежать вверх с помощью Comment(PrevHead(..)), сравнивая прототип ф-ии и какой аргумент кладется, но как-то это некузяво и не надежно.
какая-нибудь структура, вида:
кол-во аругементов = 3.
Аргумент0 кладентся на стек по адресу 13028F82,
1 по адресу 13028F80
и тп

PS Можно даже не читать каменты, а анализировать изменение стека самостоятельно (что и когда кладется перед вызовом), но это уже какой-то трассировщик получится. А он ведь есть в самой иде, вопрос как до него добраться




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

Создано: 21 июля 2014 17:53
· Личное сообщение · #31

а смысл ?
ну вот есть что то на питоне
https://github.com/deresz/funcap
вообще разные всякие трейсеры есть в гугле, но я ими не пользуюсь
если корректно спросишь в гугле, он ответит


<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати