| eXeL@B —› Вопросы новичков —› Взлом через покрытие | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 12 января 2010 15:41 · Поправил: Adminka  · Личное сообщение · #1  | 
| 
 | 
Создано: 12 января 2010 19:44  · Личное сообщение · #2  | 
| 
 | 
Создано: 12 января 2010 19:59  · Личное сообщение · #3  | 
| 
 | 
Создано: 12 января 2010 20:02  · Личное сообщение · #4 Крис в книжке "Искусство дизассемблирования" приводил пример взлома через покрытие с использованием OllyDbg и сказал, что не знает подобных инструментов для исследования программ, к которым нет исходных кодов. По гуглу тоже ничего. Программа может выполянть какие-то действия в случае неправильно введённых данных, но эти действия при правильных данных выполнены не будут. Действия суть инструкции в коде. Если сравнить инструкции, выполненные в первом и втором случаях, можно найти отличия и условия, при которых выполняется тот или иной блок кода. Это и есть взлом через покрытие. ![]()  | 
| 
 | 
Создано: 12 января 2010 20:04  · Личное сообщение · #5  | 
| 
 | 
Создано: 12 января 2010 20:25 · Поправил: Adminka  · Личное сообщение · #6  | 
| 
 | 
Создано: 14 января 2010 16:11  · Личное сообщение · #7  | 
| 
 | 
Создано: 14 января 2010 19:31 · Поправил: Adminka  · Личное сообщение · #8  | 
| 
 | 
Создано: 14 января 2010 21:35  · Личное сообщение · #9  | 
| 
 | 
Создано: 14 января 2010 22:15  · Личное сообщение · #10  | 
| 
 | 
Создано: 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-файлах такое не встречается. ![]()  | 
| 
 | 
Создано: 14 января 2010 23:30  · Личное сообщение · #12 Да нет, я не спорю, что в принципе невозможно. Но софт ниже, чем под НТ, нынче сомнения вызывает. В принципе на вышеназванных эмуляторах можно и винду запустить, вот только что за хреновина выйдет с трассой-непонятно. Впрочем, других вариантов вряд ли предвидется. Бросай эту затею лучше и ищи другие варианты. ![]()  | 
| 
 | 
Создано: 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 - это вроде моветон, но вот иногда надо, может, кому интересно, для чего. ![]()  | 
| 
 | 
Создано: 16 января 2010 23:27 · Поправил: Adminka  · Личное сообщение · #14 Отлично! Теперь ничего не лочится и всё работает! Если кому интересно, как, то см. предыдущий пост. Идея поставить breakpoint "повыше" захода в функцию показа "неправильного" сообщения оказалась не так плоха, к тому же SoftIce распознал некоторые функции в окрестности того места ("USER!SetFocus", в частности), так что всё сделано без трассы. Всем спасибо за помощь. ![]()  | 
| eXeL@B —› Вопросы новичков —› Взлом через покрытие | 
| Эта тема закрыта. Ответы больше не принимаются. | 








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