![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| caliphornia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
Как в программе на С++ получить адрес начала этой программы в памяти, то место где располагается первая инструкция кода программы
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Но это адрес мэйн. До него еще выполняется стартап из CRT. Если хотите получить адрес вообще первой инструкции, то нужно парсить PE заголовок екзешника. там есть поле точка входа, или entry point по-русски только зачем вам это надо? |
|||
|
||||
| caliphornia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
а в приложениях Cbuilder какую функцию использовать?
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
#include <imagehlp.h>
и там вообше то все описано -------------------- |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
caliphornia,
Тебе следует понять что ты хочешь получить? 1) если адрес main() , то как уже выше писали 2) Если же EntryPoint, т.е. стартового кода, который настраивает с++ программу(rtti, heap, вызов main() и др.), то :
|
|||
|
||||
| caliphornia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
задача стоит в том чтобы проверять исполняемый код на целостность(контрольная сумма), а для этого надо вначале получить этот самый код.
|
|||
|
||||
| YDean |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
Адрес начала программы совпадает со значением hInstance.
Обычно, равен 0x400000 для exe. |
|||
|
||||
| Artemon |
|
|||
|
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
caliphornia, подозреваю что пытаетесь сделать какую-то защиту от взлома для программы, если так, то ваша задумка провальна уже на этом этапе
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
не проше ли сделать CRC всего ехешника а?
-------------------- |
|||
|
||||
| caliphornia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
вообще зачем вы это написали???я же не просил высказать свое мнение по этому поводу, вопрос был четко поставлен, и я ожидал ответы по существу вопроса, мы же не в курилке находимся, что бы обсуждать что провалено а что нет...Если есть что добавить буду благодарен, а такие сообщения писать не надо , только время тратить. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
caliphornia, я когда-то у Криса Касперского читал, что-то типа того.
щас поищу.. вот вроде бы нашел: http://www.xakep.ru/magazine/xs/057/080/3.asp |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Если ты намерен проверять образ, загруженный в память, то не забудь о такой мелочи, как фиксапы или базовые поправки. Это когда модуль загружается не по стандартному адресу, что почти всегда бывает с DLL. Фиксапы существенно меняют код, так что контрольная сумма меняется. Тут нужно либо учитывать поправки, что весьма геморройно. Или загружать по фиксированному адресу, что надежно только для exe. А если проверять образ на диске, то проще посчитать CRC прямо по файлу, как уже было сказано. Но если это для защиты, то способ так себе, от первоклассников. -------------------- ... |
|||
|
||||
| caliphornia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
огромное всем спасибо за помощь, теперь разобрался)))
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |