Сейчас на форуме: subword, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Chunk`и в IDA
Посл.ответ Сообщение

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

Создано: 23 января 2008 12:05
· Личное сообщение · #1

Привет всем, такая проблемка, ида при дизассме пишет:

Начало функции:
.text:0002AA69 _GetMcastNTEFromAddr@4 proc near ; CODE XREF: IPSetMCastAddr(x,x,x,x,x,x,x)+22
.text:0002AA69 ; GetIfIndexFromAddr(x,x)+FB34 ...
...
.text:0002AA69 ; FUNCTION CHUNK AT .text:000317CA SIZE 00000057 BYTES
.text:0002AA69 ; FUNCTION CHUNK AT .text:000374C0 SIZE 00000048 BYTES
...


;Далее идет код другой функции:
.text:0002ABE0 ; START OF FUNCTION CHUNK FOR _IPDispatchDeviceControl@8
...
.text:0002ABE0 ; END OF FUNCTION CHUNK FOR _IPDispatchDeviceControl@8


Далее наш чанк:
.text:000317CA ; START OF FUNCTION CHUNK FOR _GetMcastNTEFromAddr@4
...
.text:000317CA ; END OF FUNCTION CHUNK FOR _GetMcastNTEFromAddr@4

Подскажите плиз, как можно избавиться от чанков, т.е. склеить код?



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

Создано: 23 января 2008 14:20
· Личное сообщение · #2

никак.



Ранг: 32.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 23 января 2008 17:38
· Личное сообщение · #3

угу а как ты вообще это себе представляешь?



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 23 января 2008 17:56
· Личное сообщение · #4

gloomyraven пишет:
Подскажите плиз, как можно избавиться от чанков, т.е. склеить код?

избавится можно, отключив опцию (в самом начале при открытии файла, кернел специфик, disable function tails)
склеить - никак, будут разные куски кода.




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 23 января 2008 18:19
· Личное сообщение · #5

Иногда удается после автоанализа удалить функу и потом снова ее создать и чанки уходят.

-----
127.0.0.1, sweet 127.0.0.1




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

Создано: 23 января 2008 20:05
· Личное сообщение · #6


;Далее идет код другой функции:
.text:0002ABE0 ; START OF FUNCTION CHUNK FOR _IPDispatchDeviceControl@8
...
.text:0002ABE0 ; END OF FUNCTION CHUNK FOR _IPDispatchDeviceControl@8


Это скорее всего тоже код, относящийся к данной функции (_GetMcastNTEFromAddr@4). У меня получается только так: стать на начало чанка, затем Edit - Function - Delete - чанк удаляется, а основная функция остается, затем можно присоединить код бывшего чанка к основному телу функции (хоткей "E").



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

Создано: 24 января 2008 15:46
· Личное сообщение · #7

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

Спасибо, думаю метод RedAbishai подойдет, если получится




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 24 января 2008 22:34
· Личное сообщение · #8

Совет от infern0 - то что надо, волшебным образом чанки исчезают (копаю в основном arm/компилятор gcc, там чанков вроде как и нет, просто короткие функции)



Ранг: 32.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 25 января 2008 00:31
· Личное сообщение · #9

нада у микрософта спросить зачем эти чанки, кажется (перекрестился) что не только из чистой оптимизации, а зачем ещё хз




Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 25 января 2008 07:21
· Личное сообщение · #10

Вопрос на засыпку -- а как самому создать ручками чанк функции? Иногда бывает нужно...

-----
DREAMS CALL US



 eXeL@B —› Основной форум —› Chunk`и в IDA
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати