Сейчас на форуме: _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› Ошибка дизассемблера или защита?
Посл.ответ Сообщение

Ранг: 52.1 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 08 ноября 2005 20:11
· Личное сообщение · #1

Народ привет!
Столкнулся с следующей проблемой: в отладчике вместе с идой показывает по одному и тому же адресу один и тот же код, в кратце выглядит так:

.text:0806BD16 loc_806BD16: ; CODE XREF: sub_806BCFD+56j
.text:0806BD16 cmp [ebp+var_4], 0FEh ; '¦'
.text:0806BD1D jle short loc_806BD21
.text:0806BD1F jmp short loc_806BD55

Адреса совподают, все вроде как нормально. Ставлю бряк на адрес 0806BD1D. После останова трессерую. Прога скочит по джампу jle - идет цикл на N оборотов. Затем ставлю бряк на 0806BD1F, и О чудо! Отладчик останавливает на адресе 0806BE1F! Какого хрена не понятно, так как на этом адресе ничего не стоит. По адресу 0806BE1F следующий код:
.text:0806BE1F mov al, [eax]
.text:0806BE21 mov [edx], al
.text:0806BE23 inc dword_8078B44
.text:0806BE29 mov eax, [ebp+var_4]
.text:0806BE2C add eax, offset byte_84EECA0
.text:0806BE31 cmp byte ptr [eax], 0
.text:0806BE34 jnz short loc_806BE3B
.text:0806BE36 jmp loc_806BD56

тоже самое и в отладчике, но при трассировке следующей команды прога почему то перескакивает на адрес 07F28E30, проходит несколько инструкций, а затем выдает сообщение Segmentation Faulteax (SDL Parachute Deployed) Program terminated normally (Exit status: 0x00F5), перескакивает на адрес 005DF7E7 и вообще ведет себя ужасно неприлично... С чем это может быть связано? Это защита или глюк отладчика? Или что это? Может кто сталкивался с похожим неприличным поведением прог?
И еще важная вещь. Перед этим прога работает с аппаратным контроллером. Вроде проверку на его присутствие отключил. Затем по коду открывается файл большой на 200 метров с подозрительным названием secure.dat, проверяется его размер и если все нормально прога идет дальше. И вот именно на том моменте который я описал происходит сбой.
HELP!

Отладчик ALD, Дизассемблер IDA 4.8, операционка Linux ASP 10, 2.6.9. ядро



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 09 ноября 2005 11:15
· Личное сообщение · #2

а когда останавливается на 0806BE1F в eax случаем не 0 ?



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 09 ноября 2005 11:47
· Личное сообщение · #3

ufobject
Да там SEH и скорее всего, ты его не обрабатываешь

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 52.1 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 10 ноября 2005 16:04 · Поправил: ufobject
· Личное сообщение · #4

ssx
Нет. К сожалению там 0x4097644С, но после выполнения инструкции mov al, byte [eax] (так ее видит отладчик) в eax оказывается 0x0000000B, а ECX вовсе обнуляется (хотя инструкцию назад он был 0xFFFFFFFF.

nice
А как мне определить он это или не он? Как я должен его обработать? Можно гдето про это почитать подробно, именно про отладку? Короче, че вообще делать-то?


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


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