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

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 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.




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

Создано: 29 октября 2010 11:16
· Личное сообщение · #2

freeExec пишет:
А как интерпритировать вот такие заумные функции выдаваемые ИДА ?

"options" - "demangled names" - "names"

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




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

Создано: 29 октября 2010 18:34
· Личное сообщение · #3

Да это под Linux дебаг. Софтина создает форк, и все сама выходит. Как мне автоматом перейти в потомка не знаю (. Также как можно выполнить шаг назад ?




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

Создано: 29 октября 2010 19:04
· Личное сообщение · #4

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




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

Создано: 01 ноября 2010 02:31
· Личное сообщение · #5

Как иду заставить генерить pushfd а не pushf?

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




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 01 ноября 2010 14:10
· Личное сообщение · #6

Пропатчить ;)




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

Создано: 01 ноября 2010 14:45
· Личное сообщение · #7

А легально никак что ли? Это же либо явный баг, либо я просто настройками пользоваться не умею. Когда выбираю другой проц, пень 4 например она закрывается говорит неверный проц.

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




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 01 ноября 2010 15:11 · Поправил: cppasm
· Личное сообщение · #8

PE_Kill пишет:
Это же либо явный баг, либо я просто настройками пользоваться не умею.

А в чём баг?
У большинства ассемблеров pushf (также как iret и т.д.) - соответствует текущей разрядности, а для указания конкретной разрядности независимо от текущего режима есть pushfw/pushfd.
Так что это не баг.




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

Создано: 01 ноября 2010 16:31
· Личное сообщение · #9

PE_Kill пишет:
Как иду заставить генерить pushfd а не pushf?

Опкоды у них одинаковые, значит разницы для дизассемблера они не представляют. А для чего вам нужна мнемоника pushfd, используйте pushf.

-----
Everything is relative...





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

Создано: 01 ноября 2010 16:38
· Личное сообщение · #10

Ok, тогда как masm32 сказать, что pushf это 32 битный оператор?

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




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 01 ноября 2010 17:22 · Поправил: cppasm
· Личное сообщение · #11

Мда, MASM тут отличился.
PUSHFW не знает вообще, PUSHF всегда 16-битный.
И как ни странно то же самое с PUSHA, IRET и другими.
Единственный вариант который я вижу, это в IDA скриптом исправить все PUSHF на PUSHFD, а PUSHFW на PUSHF при помощи manual instruction.

Вообще в IDA ж написано "Target assembler: Generic for Intel 80x86".
Совместимости с MASM никто не обещал




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 01 ноября 2010 19:30
· Личное сообщение · #12

PE_Kill
используй JWasm

-----
EnJoy!




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

Создано: 02 ноября 2010 21:16 · Поправил: V0ldemAr
· Личное сообщение · #13

cppasm пишет:
Мда, MASM тут отличился.PUSHFW не знает вообще, PUSHF всегда 16-битный.И как ни странно то же самое с PUSHA, IRET и другими.


Откуда вы взяли PUSHFW? такой мнемоники несуществует. Курим маны интела и видим:


Походу баг иды и для наглядности влепили W.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 02 ноября 2010 21:42 · Поправил: cppasm
· Личное сообщение · #14

V0ldemAr пишет:
Откуда вы взяли PUSHFW? такой мнемоники несуществует. Курим маны интела и видим

MASM/TASM/WASM
Продолжать?

А ещё в манах SALC к примеру нету, так что - её тоже не существует?
Как нет и AT&T синтаксиса - так что, все ассемблеры с AT&T неправильные?
В манах опкоды описываются, мнемоники это чисто для справки.



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

Создано: 02 ноября 2010 21:58 · Поправил: V0ldemAr
· Личное сообщение · #15

cppasm пишет:
MASM/TASM/WASMПродолжать?


cppasm пишет:
Мда, MASM тут отличился.PUSHFW не знает вообще, PUSHF всегда 16-битный.


Противоречите самому себе? PUSHFW никогда небыло в МАСМе ...

error A2008: : PUSHFW

SALC недокументирована ее МАСМ тоже незнает как и другие F1 / icebp например


...

Решил покопатся в ИДЕ и погуглить немного и вывод таковой что PUSHFW был всегда в ТАСМе в МАСМе эго небыло как видно с картинки в ИДЕ есть только Generic и TASM так что тот Generic думаю основан на ТАСМе. Сам когда-то начинал учить ассемблер с ТАСМа так думаю и с IDA было от тогда и осталась такая имплементация только инструкции придавались ...






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

Создано: 02 ноября 2010 22:22
· Личное сообщение · #16

Выходит, что это действительно баг IDA, т.к. при огромном превосходстве 32 битных операторов она должна ИМХО генерить pushfd а не pushf.

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





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 14 ноября 2010 18:10
· Личное сообщение · #17

Кто-нибудь работает с Borland C++ в иде? Ищу скрипт для RTTI борландской си плюс, есть на опенрсе , но там он с ошибкой , туда особо не лез , времени мало .. вероятно дело в том что там он для 4.9 иды ..

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




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

Создано: 19 ноября 2010 09:28
· Личное сообщение · #18

Подскажите пожалуйста, где можно найти FLIRT signatures for Visual C++ 2010 ?



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

Создано: 19 ноября 2010 13:53 · Поправил: sendersu
· Личное сообщение · #19

idiMAN
попросите у того у кого есть IDA 5.7
из ченджлога

+ added FLIRT signatures for Visual C++ 2010 and C++Builder 2010

во время написания сего поста появилась идея - а что если в версии идадемо5.7 есть такое?
качнул www.hex-rays.com/idapro/idadowndemo.htm
поставил, глянул сигнатурки yfrog.com/c8idademo57sigsp
сравнил с 55 yfrog.com/72idademo57sig2p
интересно, таки да, есть! (если только ето не урезанная а полная версия сигнатур)




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

Создано: 19 ноября 2010 16:07
· Личное сообщение · #20

sendersu пишет:
(если только ето не урезанная а полная версия сигнатур)

Не урезанные - файлики полные.

-----
Everything is relative...




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

Создано: 19 ноября 2010 16:22
· Личное сообщение · #21

sendersu, Vamit Спасибо, так и сделал, помогло...



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

Создано: 20 ноября 2010 00:01
· Личное сообщение · #22

А у кого есть последний (6.0) FLAIR ? Очень нужен pmacho.exe из этого комплекта ...




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

Создано: 20 ноября 2010 09:48
· Личное сообщение · #23

А ты сайт вообще смотрел? Последний FLAIR-5.7. И он уже был релизнут.



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

Создано: 21 ноября 2010 13:15 · Поправил: awoland
· Личное сообщение · #24

Действительно в разделе downloads от 6.0 присутсвует только SDK (что странно). Однако в разделе idapro/60/index.html:
...
KERNEL
------
...
+ FLIRT: added parser for Mach-O object files (pmacho)
...

Может быть для 6.0 FLAIR теперь идёт в составе SDK ?



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

Создано: 01 декабря 2010 20:16 · Поправил: r_e
· Личное сообщение · #25

Как в IDC узнать видимый адрес для ea?
Например для
Code:
  1. code:10001000                 mov     ds:dword_x, 0FFFFFFFFh

и ea = 10001002 возвратило 10001000.

jump + ScreenEA не гламурно.

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





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

Создано: 02 декабря 2010 10:58
· Личное сообщение · #26

Нет, FLAIR не идёт в составе СДК, 5.7 последний.



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

Создано: 07 декабря 2010 14:15 · Поправил: awoland
· Личное сообщение · #27

Помогите поправить стек ф-ии ...
Вот листинг:
Code:
  1. .text:FFFF0C6F 000 55                                      push    ebp
  2. .text:FFFF0C70 004 8B EC                                   mov     ebp, esp
  3. .text:FFFF0C72 004 83 EC 44                                sub     esp, 44h        ; Integer Subtraction
  4. .text:FFFF0C75 048 8D 45 BC                                lea     eax, [ebp-44h]  ; Load Effective Address
  5. .text:FFFF0C78 048 50                                      push    eax             ; void *
  6. .text:FFFF0C79 04C 8D 45 FC                                lea     eax, [ebp-4]    ; Load Effective Address
  7. .text:FFFF0C7C 04C 50                                      push    eax             ;
  8. .text:FFFF0C7D 050 FF B6 04 01 00 00                       push    dword ptr [esi+104h] ;
  9. .text:FFFF0C83 054 C6 46 59 00                             mov     byte ptr [esi+59h], 0
  10. .text:FFFF0C87 054 FF 76 24                                push    dword ptr [esi+24h] ; void *
  11. .text:FFFF0C8A 058 C7 45 FC 40 00 00 00                    mov     dword ptr [ebp-4], 40h 
  12. .text:FFFF0C91 058 FF 56 20                                call    dword ptr [esi+20h] ; Indirect Call Near Procedure


Параметры передаются и возвращаются через регистры. В стеке регистры не сохраняются.
Функция объявлена как _usercall:
int __usercall sub<eax>(struct1 *a3<ebx>, struct2 *a2<edi>, struct3 *a1<esi>);
Интересует строка 03: ".text:FFFF0C72 004 83 EC 44 [u]sub esp, 44h"
Как я понял присутсвует Frame Pointer Delta (FPD) ? Как его расчитать, чтобы у IDA не рвало крышу ?




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

Создано: 07 декабря 2010 14:37 · Поправил: Vamit
· Личное сообщение · #28

awoland пишет:
Как его расчитать, чтобы у IDA не рвало крышу ?

Ctrl+P на начале функции всегда это место проходит правильно. Не вижу срыва крыши.

Если же срыв стека идет при автоанализе, то можно сделать ундефайн всей функции и снова Ctrl+F5, в старых ИДа иногда помогало

-----
Everything is relative...




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

Создано: 07 декабря 2010 14:53
· Личное сообщение · #29

Vamit пишет:
Ctrl+P на начале функции всегда это место проходит правильно. Не вижу срыва крыши.


Если бы всё работало правильно, я не задавал бы этот вопрос и не объявлял бы функцию как _usercall.
Код сгенерен GCC в формат PE-executable. А как известно, IDA до сих пор не может правильно разобрать передачу параметров через регистры в GCC коде.
В хелпе IDA про FPD вообще невнятно написано:

"Sometimes, EBP points to the middle of the stack frame. FPD (frame pointer delta) is used to handle such situations. FPD is the value substracted from the EBP before accessing variables. An example:
Code:
  1.            push    ebp
  2.            lea     ebp, [esp-78h]
  3.            sub     esp, 588h
  4.            push    ebx
  5.            push    esi
  6.            lea     eax, [ebp+74h]


In our example, the saved registers area is empty (since EBP has been immediately initialized before saving EBX and ESI). The difference between the 'typical BP' and 'real BP' is 0x78 and this is the value of FPD.
After specifying FPD=0x78 the last instruction of the example becomes

lea eax, [ebp+78h+var_4]

where var_4 = -4 "
Откуда взялся FPD=0x78 и как расчитывался если "sub esp, 588h" ?
Вот о чём я спрашивал.




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

Создано: 07 декабря 2010 14:59 · Поправил: Vamit
· Личное сообщение · #30

awoland пишет:
Откуда взялся FPD=0x78 и как расчитывался если "sub esp, 588h" ?
Вот о чём я спрашивал.

Теперь более понятно. Но кто тебе мешает вручную задать на первой инструкции функции нужное смещение стеку, а не подгонять стек с помощью конвенции вызова? Alt+K тебе в помощь...

PS: Наверняка на функции стоит BP based frame, но это верно только в этом случае
.text:00448F67 push ebp
.text:00448F68 mov ebp, esp
у тебя esp-0х78 отсюда и смещение, если же внутри функции доступ к локальным переменным смешанный через esp и ebp, то поможет только Alt+K в нужных местах или убери галку с BP based frame и отюстируй стек вручную.

-----
Everything is relative...




Ранг: 26.1 (посетитель), 10thx
Активность: 0.01=0.01
Статус: Участник

Создано: 16 декабря 2010 13:07 · Поправил: kp0m
· Личное сообщение · #31

Code:
  1. 1:  B       loc_3E009FC
  2. 2:  ; ---------------------------------------------------------------------- -----
  3. 3:  loc_3E009E2 


Утро доброе!
Как убрать комментарий в строке 2, ида его создает автоматически и соотвессно в графическом представлении функция уже не имеет целостного вида.


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати