![]() |
eXeL@B —› Вопросы новичков —› Как поставить бряк на dll? |
Посл.ответ | Сообщение |
|
Создано: 10 мая 2007 06:07 · Личное сообщение · #1 У меня есть программа, триал которой заключается в том, что она дает запусткаться только 30 раз. Через filemon я нашел dll, в которой после замены 4 байт программа продолжает вываливать окно, что это триал, но теперь дает запускаться сколько-то там милионов раз. Теперь мне хочется ее доломать красива, чтобы никакого окна она вообще не запускала. Проблема в том, что сам exe-шник практически не содержит кода. Как я понял, он стартует, загружает dll, и все функции по работе с программой идут через эту dll (это уже совсем другая dll). При завершении работы прога снова "выходит" в основной модуль и вызывает ExitProcess. Соответственно и окно с сообщение о триале вызывается из dll. Так вот, я не знаю, как мне поставить бряк на точке входа в dll. Это первое. А второе, я все-таки научился тормозить прогу на работе в dll (правда, очень коряво), вижу там MessageBox, другие участки кода, которые нужно исследовать на предмет лома. Ставлю на все это дело бряки, но после рестарта программы ничего не происходит, все установленные точки куда-то теряются, как будто я ничего и не ставил на бряк. А "торможу" прогу в dll я так: в olly запускаю анимацию без входа в call, и как только в отладчике в надписи окна вижу, что выполняется код моей dll, жму F12. Соответственно кучу команд отладчик уже отработал, попытка поставить на этот код бряки и рестарт дает проблему номер2, описанную выше... Может кто-то может дать ссылку на хорошую статью по отладке dll под мои задачи? - без разницы, под оли или айс. Олли я использую пока просто потому, что читаю книгу "Реверсинг и защита программ от взлома", где автор все делает на олли и довольно хорошо описывает этот отладчик. Вот дойду до Касперски, сяду за айс ![]() ![]() |
|
Создано: 10 мая 2007 06:44 · Личное сообщение · #2 |
|
Создано: 10 мая 2007 14:35 · Личное сообщение · #3 |
|
Создано: 10 мая 2007 18:02 · Личное сообщение · #4 |
|
Создано: 10 мая 2007 22:30 · Личное сообщение · #5 |
|
Создано: 11 мая 2007 06:38 · Личное сообщение · #6 |
|
Создано: 11 мая 2007 07:28 · Личное сообщение · #7 |
|
Создано: 11 мая 2007 16:34 · Личное сообщение · #8 |
|
Создано: 11 мая 2007 20:56 · Личное сообщение · #9 |
|
Создано: 11 мая 2007 22:22 · Личное сообщение · #10 asd пишет: А вообще я не про это говорил, а про зависимость от запуска фотошопов разных. Это конечно. По идее адреса в пространстве каждого процесса можно формировать любые (в допустимых пределах для user mode), так что зависимости VA между процессами быть не должно. А вот внутри процесса по непонятным для меня причинам dll в первый раз проецируется на ImageBase, а при следующей загрузке куда угодно, только не туда же. Уже писал об этом не один раз, так и не понял в чём фокус. Может быть, тупая дефрагментация VA или по какой-то причине загрузчику удобнее связывать VA с кешированной dll без учёта ImageBase. ----- Всем привет, я вернулся ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как поставить бряк на dll? |