Читаю 16 главу дошел до этого момента . В итоге olly должен был переместится сюда Но когда я у себя нажимаю снова RUN заместо этого у меня появляется MessageBox Вроде все делаю шаг за шагом по статье что не так не пойму OllyDbg v1.10 плагинов кроме CmdBar нет подскажите новичку что не так плиз
Olly довольно неуверенно ставит BPM, а на данные может вообще их не поставить - каждый раз нужно проверять в менюшке (вроде Debug->Hardware breakpoints) что он реально выставлен. Возможно также может сменицца адрес буфера при следующем запуске (маловероятно). Переходите на SoftIce или другие серьезные отладчики
Mentor Я пользую только SoftIce, но некоторые хвалят WinDbg, и еще есть какой-то новый, китайский... Syser? В любом случае нужен такой который дает полный контроль над системой и позволяет работать на равных с драйвером который не хочет чтобы с ним работали. А Olly - это как начинать программировать на СИ не зная ASM.
PSR1257 какое отношение имеют эти два языка. можно вполне серьезно знать си но не знать асм. Достаточно просто определиться с конструкциями, которые твой компилятор Си компилирует в более эффективный код, а эффективность куска кода можно проверить и не зная ассемблера.
max7C4 Не буду ожесточенно спорить - у каждого свое мнение. Просто изложу свою точку зрения. Изначально СИ был разработан чтобы уйти от ограничений ассемблера - платформо-независимость и только во-вторую очередь - абстрагирование кода от низкоуровневых операций и более строгой типизации. Если нужен чисто высокоуровневый язык - это Паскаль и другие. Так что когда вы делаете memcpy и переименовываете указатели как хотите вы должны иметь четкое представление о памяти. Когда вы делаете << или >> вы должны понимать что на моторолле это может привести к совершенно другому результату и поэтому дефайните это. Если вы не чуствуете этого (не знаете асма) вы рискуете совершить ошибки, которые на СИ сделать гораздо проще. Если же вы пишете только такой код который максимально абстрактен (скажем, алгосы или ДБ), то спрашивается - а зачем вам си? Тут недавно в HEAP была тема про ДБ и СИ, вместо того чтобы вынести логику в SQL/хранимые процедуры чел придумывает какие-то структуры ... на СИ... Зачем? Так же и с Olly. Если вы не знаете что такое DRx, зачем вы их используете в Olly? Поставил BPM а потом удивляемся - где мой брейк? Где-где, может защита выполнила доступ к памяти внутри обработчика SEH - и все. Я бы рекомендовал сначала написать свою простую прогу которая сама ставит обработчк int 1 и настраивает DR7, а только потом уже работать с этими функциями в отладчиках.
max7C4 Оно и видно по фаерам, сидит толпа студентов и вылизывает код друг друга. А там эффективность превыше всего, так как это защита. Весь подобный софт говорит об обратном.
Уважаемые гуру плиз прекратите мерится ПиПиСьКаМи в моей темке а лучше что-нибудь дельное посоветуйте касаемо моего сабжа =)
gsx3000, По теме: я бы попробовал отследить перемещения результата GetDlgItemTextA() (хотя GetWindowText() или даже перехват WM_GETTEXT выглядит предпочтительнее). С аппаратными точками останова (пресловутые DRx) OllyDbg работает довольно чётко, хотя и с точками останова на обращение к страницам пока особых проблем не было. Этим методом за пару минут сделал себе серийный 17705 в этом CrackMe (CrueHead №1). Во многом, конечно, форумчане правы: понимание механизмов, осуществляющих ту или иную функцию, помогает их верному использованию и уверенной диагностике возникающих проблем. Единственное моё возражение состоит в том, что инструменты для того и нужны, чтобы не задумываться, как они достигают цели (или мажут мимо неё).
gsx3000 OK, придумайте себе простой пример на доступ к памяти и поймайте это обращение в Olly через BPM. Не обязательно защита, что-нить совсем простое. Работает? Доступ на ДАННЫЕ, не код. Идем далее. И посмотрите действительно ли Olly установил нужный брейкпойнт? Никто не мешает проверить что он работает прямо сразу. Допустим установлен на память 403050h. Тут же ассемблируем (убивая какие-то инструкции): mov eax,403050h nop mov ebx,[eax] nop nop Далее устанавливаем EIP на mov eax,403050h (CTRL+*) и F9. Должно быть все - и останов, и сообщение о "hardware breakpoint". Если нету ... думаем.