![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать начальный и последний адрес программы в памяти ? [D7, WinXP]
San1712 © (2008-02-03 21:57:00)Надо узнать где начинается и заканчивается программа загруженная в память. Программа работает со своим кодом.
Johnmen (2008-02-04 09:10:00) [1]
> oxffff © (04.02.08 08:51) [17]
> oxffff © (04.02.08 08:51) [18]
> oxffff © (04.02.08 08:51) [19]
Настаиваешь? :)
oxffff (2008-02-04 08:51:00) [2]Удалено модератором
oxffff (2008-02-04 08:51:00) [3]Удалено модератором
oxffff (2008-02-04 08:51:00) [4]To San1712
А почему бы не работать с образом который на диске находится?
Шифруй на здоровье используя готовые инструменты.
Сергей М. (2008-02-04 08:25:00) [5]
> San1712 (03.02.08 23:29) [9]
> задача зашифровать часть программы находящейся памяти и
> скопировать из оперативки на диск всю программу
И что потом делать будешь с этой "копией оперативки на диске" ?
palva (2008-02-03 23:56:00) [6]
> San1712 (03.02.08 23:45) [12]
> Хэндля это не тот адрес с которого начинается программа
> в памяти ?
Тебе уже задали вопрос, "что такое адрес с которого программа начинается в памяти" и где она заканчивается. Объяснить сможешь?
San1712 (2008-02-03 23:47:00) [7]Anatoly Podgoretsky © (03.02.08 23:36) [11]
> В оперативной
Тогда тебя успокою, программы работающие в кольце 3, с оперативной памятью не работают. А драйверами ты не работаешь.
Итого узнавать нечего!
Ответ
А какже фунция VirtualProtect ?
San1712 (2008-02-03 23:46:00) [8]А какже фунция VirtualProtect ?
San1712 (2008-02-03 23:45:00) [9]Хэндля это не тот адрес с которого начинается программа в памяти ?
Anatoly Podgoretsky (2008-02-03 23:36:00) [10]
> В оперативной
Тогда тебя успокою, программы работающие в кольце 3, с оперативной памятью не работают. А драйверами ты не работаешь.
Итого узнавать нечего!
San1712 (2008-02-03 23:35:00) [11]Loginov Dmitry © (03.02.08 23:00) [7]
> А как к переменной hInstance получить доступ ?
попробуй с помощью Delphi
Ответ
У меня возник вопрос что такое хэндл ?
San1712 (2008-02-03 23:29:00) [12]>palva © (03.02.08 22:56) [5]
А программа во время работы может изменять свое расположение в памяти. Или даже вовсе отсутствовать в памяти и находиться в дисковом кэше. Или я что-то не понимаю в вашем вопросе. Тогда объясните, что значит программа начинается с такого-то места. Если я выделил в программе память под строку, эту память нужно учитывать? А память занятая глобальными переменными, выделенная под стэк и т. д. тоже относится к памяти программы?
У меня задача зашифровать часть программы находящейся памяти и скопировать из оперативки на диск всю программу.
palva (2008-02-03 23:01:00) [13]> А как к переменной hInstance получить доступ ?
Если у вас есть такая переменная, то по имени, естественно.
Loginov Dmitry (2008-02-03 23:00:00) [14]> А как к переменной hInstance получить доступ ?
попробуй с помощью Delphi
San1712 (2008-02-03 22:59:00) [15]А как к переменной hInstance получить доступ ?
palva (2008-02-03 22:56:00) [16]А программа во время работы может изменять свое расположение в памяти. Или даже вовсе отсутствовать в памяти и находиться в дисковом кэше. Или я что-то не понимаю в вашем вопросе. Тогда объясните, что значит программа начинается с такого-то места. Если я выделил в программе память под строку, эту память нужно учитывать? А память занятая глобальными переменными, выделенная под стэк и т. д. тоже относится к памяти программы?
Игорь Шевченко (2008-02-03 22:49:00) [17]San1712 (03.02.08 22:44) [2]
В оперативной программа сейчас есть, а через тик таймера ее нету. А через два тика она по другому адресу. И что ?
Loginov Dmitry (2008-02-03 22:45:00) [18]Адрес, по которому модуль загружен в память, хранится в переменной hInstance. Где заканчивается - не знаю. Если ничем не шифровать, то наверно hInstance + FileSize() (приблизительно, конечно)
San1712 (2008-02-03 22:44:00) [19]В оперативной
Anatoly Podgoretsky (2008-02-03 22:02:00) [20]> San1712 (03.02.2008 21:57:00) [0]
В какой памяти?яяя