Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Как программистом задается адрес хранения данных потока (Thread) |
Посл.ответ | Сообщение |
|
Создано: 06 марта 2017 19:06 · Личное сообщение · #1 Вопрос к специалистам в области программирования... Столкнулся с одной проблемой. Суть ее такова. Программа упакована протектором Obsidium. При ее загрузке в отладчик (OllyDbg) создается поток, который хранит свои данные по определенному адресу. После распаковки программы, и загрузке распакованной программы в отладчик, создается поток, который хранит свои данные уже по другому адресу (смещение в 800 байтов). Все это было бы ничего, но, при запуске распакованной программы, она записывает данные в область хранения данных потока, и, естественно, их повреждает. В результате чего программа заваливается. Причем адреса хранения данных потока в упакованной и распакованной программах - постоянные, и не меняются от многократной перезагрузки программы. Отсюда вопрос - как можно указать нужный адрес хранения данных потока в распакованной программе, который должен совпадать с адресом хранения данных потока в упакованной программе? | Сообщение посчитали полезным: baduba |
|
Создано: 06 марта 2017 20:02 · Личное сообщение · #2 vnekrilov пишет: она записывает данные в область хранения данных потока, и, естественно, их повреждает. хукаем диспатчер, меняем атрибуты страницы запрет на запись, и ловим через свой обработчик егор. По контексту смотрим откуда пишут, потом разбираемся с указателем, как формируется, откуда берут, а может он ваще статичен. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: baduba |
|
Создано: 06 марта 2017 20:04 · Личное сообщение · #3 |
|
Создано: 07 марта 2017 10:57 · Личное сообщение · #4 vnekrilov Нужно знать как реализуется тлс. Изначально локальная область памяти есть всегда, это структуры, связанные с потоком, я например использую вершину стека для адресации тлс. > Причем адреса хранения данных потока в упакованной и распакованной программах - постоянные Не могут они быть постоянные, если только это не смещение(RVA) в модуле. Сам же модуль может релоцироваться, если конечно имеет релоки и не откючен ASLR. ----- vx |
eXeL@B —› Основной форум —› Как программистом задается адрес хранения данных потока (Thread) |
Эта тема закрыта. Ответы больше не принимаются. |