Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать начальный и последний адрес программы в памяти ? [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]

В какой памяти?яяя


Наверх

Титульная страница Поиск, карта сайта Написать письмо