eXeL@B —› Основной форум —› Ошибка дизассемблера или защита? |
Посл.ответ | Сообщение |
|
Создано: 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. ядро |
|
Создано: 09 ноября 2005 11:15 · Личное сообщение · #2 |
|
Создано: 09 ноября 2005 11:47 · Личное сообщение · #3 |
|
Создано: 10 ноября 2005 16:04 · Поправил: ufobject · Личное сообщение · #4 ssx Нет. К сожалению там 0x4097644С, но после выполнения инструкции mov al, byte [eax] (так ее видит отладчик) в eax оказывается 0x0000000B, а ECX вовсе обнуляется (хотя инструкцию назад он был 0xFFFFFFFF. nice А как мне определить он это или не он? Как я должен его обработать? Можно гдето про это почитать подробно, именно про отладку? Короче, че вообще делать-то? |
eXeL@B —› Основной форум —› Ошибка дизассемблера или защита? |