Посл.ответ |
Сообщение |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 11:45 · Личное сообщение · #1
Я совсем новичек и опыта практический нет,
пытаюсь взломать программу, нашел функцию которая проверяет правильность серийного номера ( IDA),
сейчас я хочу поставить брэкпоинт на эту функцию в SoftIce
, но я незнаю по какому адресу эта функция будет SoftIce'е.
Помогите пожалуйста!
P.S. Я конечно понимаю что наверника в форуме гдето есть ответ на мой вопрос, но к сожилению я так и не смог найти !
| Сообщение посчитали полезным: |
|
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 12:10 · Личное сообщение · #2
Vald12345 пишет:
я незнаю по какому адресу эта функция будет SoftIce'е.
По такому же
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 12:50 · Личное сообщение · #3
Я проверял. IDA показала адрес для процедуры :00423FDA
SoftIce показывает что программа работает 0072******.
Может быть я просто что-то не так делаю или не понимаю что-то!?
| Сообщение посчитали полезным: |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 05 января 2005 13:06 · Личное сообщение · #4
набери addr и потом addr пид твоей проги. Ты не переходишь в её адресное пространство.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 13:15 · Личное сообщение · #5
Я попробывал не срабатывает,
я пробывал ставить БП на функции API все нармально срабатывает но адреса показывает другие !
Как мне добраться именно доэтой функции?
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 13:17 · Личное сообщение · #6
Vald12345
Все так, как сказал Bit-hack, потом ставь свой бряк на адрес.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 13:32 · Личное сообщение · #7
Я все так и зделал , не срабатывает!
Пид моей программы 0370
дальше addr 0370 я вижу что активна в данный момент моя прграмма ( в строке состояния в айсе имя моей прораммы)
потом пишу bpm 00423fda . Программа отрабатывается до конца, но айс не всплывает!
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 13:36 · Личное сообщение · #8
ну сделай u 423fda и посмотри код проги по этому адресу.
| Сообщение посчитали полезным: |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 05 января 2005 13:44 · Личное сообщение · #9
Vald12345 пишет:
bpm 00423fda
А ты знаешь, что такое bpm? Мож тебе надо bpx или bpm XXXXXXXX x?
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 13:45 · Личное сообщение · #10
Да ты прав там совсем не то что нужно, я совсем ничего не понимаю я ставлю БП как описал чуть выше но когда даю команд показать активные БП я получаю совсем другой адрес:
Я ставлю bpm 00423FDA, а получаю #0001:0001C1CC4.
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 14:00 · Поправил: Ara · Личное сообщение · #11
Vald12345 пишет:
Я ставлю bpm 00423FDA, а получаю #0001:0001C1CC4.
bpm XXXXXXXX - это бряк на чтение\запись в память по адресу ХХХХХХХХ
bpx YYYYYYYY - бряк на адрес команды
Тебе нужен bpx
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 14:03 · Личное сообщение · #12
Да все правильно я уже разобрался, если не трудно только обьсни пожалуйста как мне получить в каком сигменте моя программа работает?
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 14:17 · Личное сообщение · #13
Vald12345
Там же написан сегемент кода.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 14:28 · Личное сообщение · #14
Да когда я поподаю в айс по БП да я вижу сегмент.
Аможно его узнать до того как БП сработает?
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 17:05 · Личное сообщение · #15
А зачем тебе его узнавать? Кстати, в защищенном режиме х86 понятие сегмента отсутствует! У каждой программы 4Гб памяти, а в ней и секции кода и данных и т.д. Ты можешь узнать селектор, но он тебе практически ничего не даст. Если хочешь установить БП до загрузки программы, воспользуйся loader32 от сайса, но он далеко не всегда работает (у меня так и не завелся). Или PE Tools (Tools->Break & Enter а дальше читай что скажет), это я сам только недавно узнал (спасибо SouL[NHG team] за статью и TheOne[ND] за ответ в форуме). Вылетит айс в точке входа в программу, а там делай, что хочешь. А вообще, если хочешь получше разобраться, почитай что-нибудь. Например на wasm.ru есть хорошие статьи Broken Sword про защищиенный режим. На практике, я думаю, не очень помогут. Но написано классно, и хоть поймешь что к чему.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 17:08 · Поправил: Acid Raine · Личное сообщение · #16
Чуть не забыл:
Ara пишет:
bpm XXXXXXXX - это бряк на чтение\запись в память по адресу ХХХХХХХХ
bpx YYYYYYYY - бряк на адрес команды
Насколько я знаю bpm - это аппаратный БП (отладочные регистры), я bpx - программный (int 3). По идее, на выполнение должны срабатывать и тот и тот.
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 05 января 2005 17:12 · Личное сообщение · #17
Acid Raine пишет:
По идее
Дык возьми и проверь =)
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 05 января 2005 18:26 · Личное сообщение · #18
Ara пишет:
Дык возьми и проверь =)
Дык взял и проверил!
bpm XXXXXXXX или bpm XXXXXXXX RW - при выполнении не работают, а bpm XXXXXXXX X (это буква, eXecute) - вылетает как миленький.
И об этом уже писал выше Bit-hack, только не я не обратил внимания.
| Сообщение посчитали полезным: |
Ранг: 199.6 (ветеран), 12thx Активность: 0.1↘0 Статус: Участник www.uinc.ru
|
Создано: 05 января 2005 19:27 · Поправил: DrGolova · Личное сообщение · #19
Acid Raine пишет:
Кстати, в защищенном режиме х86 понятие сегмента отсутствует! У каждой программы 4Гб памяти, а в ней и секции кода и данных и т.д.
Да ну? И ты видимо считаешь что сегмент fs совпадает c cs? Почему тогда я не получаю AV когда пишу в его нулевой адрес? =) Если часть сегментов совпадают и имеют максимальный лимит, это еще не означает что оно отсутствуют.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 06 января 2005 10:34 · Личное сообщение · #20
Ну ладно, это я загнул немного .
Я просто имел в виду, что в защищенном режиме это понятие сильно отличается от реального, к тому же на практике для исследования программ очень часто сегменты вообще не имеют значения.
fs и cs не совпадают конечно. fs-при загрузке указывает на TIB, а cs - на сегмент кода. Но ведь практически всегда cs ds es ss равны в том смысле, что имеют одинаковую базу и лимит.
Таким образом для практики сегменты практически занчения не имеют. Хотя конечно надо смотреть, это ведь не догма.
| Сообщение посчитали полезным: |