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

 eXeL@B —› Вопросы новичков —› Взлом через покрытие
Посл.ответ Сообщение

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

Создано: 12 января 2010 15:41 · Поправил: Adminka
· Личное сообщение · #1

Добрый день. Скажите, пожалуйста, какие есть аналоги OllySnake и подобных вещей для просмотра и сравнения покрытия 16-битных программ?



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

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

Крис не работает на этом форуме консультантом для "newbie".
Другим, наверное, просто непонятен вопрос. Я, например, не знаю, что такое "покрытие".




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

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

я тоже

-----
Лучше быть одиноким, но свободным © $me




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

Создано: 12 января 2010 20:02
· Личное сообщение · #4

Крис в книжке "Искусство дизассемблирования" приводил пример взлома через покрытие с использованием OllyDbg и сказал, что не знает подобных инструментов для исследования программ, к которым нет исходных кодов. По гуглу тоже ничего.

Программа может выполянть какие-то действия в случае неправильно введённых данных, но эти действия при правильных данных выполнены не будут. Действия суть инструкции в коде. Если сравнить инструкции, выполненные в первом и втором случаях, можно найти отличия и условия, при которых выполняется тот или иной блок кода. Это и есть взлом через покрытие.




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

Создано: 12 января 2010 20:04
· Личное сообщение · #5

Видимо, про снятие трассы и поиск ветвления. Я под 16 бит трассеров вообще не знаю. Сомневаюсь, что они были. Ищи альтернативные варианты лучше.



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

Создано: 12 января 2010 20:25 · Поправил: Adminka
· Личное сообщение · #6

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



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

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

Adminka пишет:
Добрый день. Скажите, пожалуйста, какие есть аналоги OllySnake и подобных вещей для просмотра и сравнения покрытия 16-битных программ?

Если имеются в виду ДОС-программы, то эмуляторы QEMU и bochs делают трассу. Ну правда она абсолютно не гибкая, но можно же парсер написать.



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

Создано: 14 января 2010 19:31 · Поправил: Adminka
· Личное сообщение · #8

tundra37
Спасибо, буду иметь в виду, если понадобится сделать что-то подобное в ДОСе, но это программа для Windows.




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

Создано: 14 января 2010 21:35
· Личное сообщение · #9

16-битная под винду? Меня одолевают сомнения. Сдаётся мне, не туда вообще смотришь.



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

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

Archer пишет:
16-битная под винду? Меня одолевают сомнения

Почему? Для win3.1 может быть и 16-битная. NE-формат. Есть у меня такая.



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

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

Archer
16-битная программа может быть под Win3.x и Win9x, причём из ДОСа она может не запускаться, говоря "this program requires Windows". IDA применяет сигнатуры для Turbo Pascal 6.0/7.0, так что вроде всё логично и обоснованно.

SVLab
Не знаю уж, какой там формат, описание NE формата у меня крайне скупое, из него ничего узнать нельзя, но количество сегментов около 100 штук впечатляет. В ДОС-программах и PE-файлах такое не встречается.




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

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

Да нет, я не спорю, что в принципе невозможно. Но софт ниже, чем под НТ, нынче сомнения вызывает.
В принципе на вышеназванных эмуляторах можно и винду запустить, вот только что за хреновина выйдет с трассой-непонятно. Впрочем, других вариантов вряд ли предвидется. Бросай эту затею лучше и ищи другие варианты.



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

Создано: 14 января 2010 23:40 · Поправил: Adminka
· Личное сообщение · #13

Суть в чём. Меня попросили помочь одной фирме с прогой, которая при вводе даты позже определённой не позволяла ничего делать, кроме как ввести "правильную" дату и сохранить документ с ней. То, что прога старая, не важно, эта фирма работает с ней уже лет 6, все данные в ней и не было бы этого косяка, если бы не 2010.
Честно говоря, в новинку мне это всё было, вслепую тыкаться в дизассемблере по дальним переходам вида call far[di+0C] во всех этих ста сегментах, без перекрёстных ссылок на функции, хорошо хоть строка с ругательством при вводе "неправильной" даты лежала прямо в exe-шнике открытым текстом, и ссылка на неё нашлась, в SIce достаточно было поменять пару условных переходов и всё заработало.
Остался только баг такой, что если ввести дату позже 2009 года, то selection лочится намертво в этом edit'е и дату сначала приходится вводить с 2009 годом, и в самом конце редактирования документа исправлять на 2010. Некритично, работать можно, но неприятно. На новый софт вряд ли перейдут, так что из принципа хочется потыкаться дальше. И раз функции вызываются таким вот образом, то в дизассемблере найти условный переход вряд ли получится. Пока у меня есть только вариант поставить breakpoint где-нибудь "повыше" захода в функцию показа "неправильного" сообщения (функции lock'а и message'а связаны, и то, и это происходит при "левой" информации) и под SIce'ом отследить, что выполняется при правильных и неправильных данных.
Сейчас ещё 2 проекта висят, так что возможно ничего не выйдет, раз всё "как бы работает". Если понадобится помощь, попрошу, если будет сделано - напишу. Единственное ещё: весь архив весит 330Мб, там куча сохранённых документов, но мне как лицу доверенному можно Я правда не знаю, какие файлы необходимы, а какие нет, но если припрёт, посмотрю и выложу здесь то, что нужно.
Извините за длинный пост, 16-bit - это вроде моветон, но вот иногда надо, может, кому интересно, для чего.



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

Создано: 16 января 2010 23:27 · Поправил: Adminka
· Личное сообщение · #14

Отлично! Теперь ничего не лочится и всё работает! Если кому интересно, как, то см. предыдущий пост. Идея поставить breakpoint "повыше" захода в функцию показа "неправильного" сообщения оказалась не так плоха, к тому же SoftIce распознал некоторые функции в окрестности того места ("USER!SetFocus", в частности), так что всё сделано без трассы.
Всем спасибо за помощь.


 eXeL@B —› Вопросы новичков —› Взлом через покрытие
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати