Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Как посчитать контрольную сумму моей программы?   Найти похожие ветки 

 
kofman ©   (2002-10-12 14:11) [0]

Т.е. проект запускается, и сам себя считает. Я думал, может просто побайтно считывать экзешник, а потом каждый символ переводить в цифровой эквивалент и их суммировать? Может есть более оригинальные мысли? В принципе надо проверять только часть кода. Заранее спасибо.


 
Song ©   (2002-10-12 15:01) [1]

Каждый может считать контрольную сумму чем-то своим. Как Вы думаете, делается в большинстве случаев.


 
Kettle of delphi   (2002-10-12 15:04) [2]

Мои соображения:

0. Определяешь маркеры, ограничивающие нужный участок кода.
1. В готовом .exe ищешь этот код.
2. Считаешь найденный код методом crc32.
3. Результат заносишь в константу внутри программы.
4. Пишешь код, который, во-первых, считает контрольную сумму кода, найденного в пунктах 0-1, (т.е. части твоего .exe), а во-вторых, сравнивает полученный результат с константой, созданной в пункте 3.
5. Заново компилируешь код программы.
----------------------------------------------------

При выполнении пункта 5 возможно (но не обязательно), компилятор изменит код, ограниченный маркерами пункта 0. Поэтому, надо либо специально настраивать компилятор либо внести критичный к изменениям код в отдельную внешнюю библиотеку (dll).


 
kofman ©   (2002-10-12 15:13) [3]

>Kettle of delphi А как в готовом экзешнике найти код скачем отвечающий за нажатие на Button1. И потом если я в программу жестко пропишу контрольную сумму, ее же там, если я правильно понял при определенном навыке, изменить - как два байта переслат. Как тут поступить?


 
Vit@ly   (2002-10-12 16:56) [4]

Посчитать конторольную сумму любого проекта не представляет никакой сложности с помощью другой программы. Однако посчитать эту сумму запущенным проектом IMHO не представляется возможным, поскольку Wind-ы не позволяют открывать (вернее читать информацию) из запущенных программ. Если кто-то знает как это возможно сделать, подскажите. Буду очень благодарен


 
Song ©   (2002-10-12 17:27) [5]

Скопируй файл куда угодно и открывай из того места.


 
Vit@ly   (2002-10-12 17:51) [6]

Это необходимо производить не с копией, а с активной программой в прцессе ее работы


 
kofman ©   (2002-10-12 19:00) [7]

Я тогда вообще не вижу смысла в проверке контрольной сыммы программы если из самой программы эту сумму проверить нельзя. А как же узнать что в твоей проге кто-то поковырялся?


 
Pumpkin   (2002-10-12 23:50) [8]

Открыть себя на чтение можешь?
Научи программу подсчитать CRC32 без последних 4 байт и сравнивай с тем что лежит в последних 4 байтах (эталонный правильный CRC32). После компиляции подсчитай CRC32 своего exe другой программой и прилепи полученное к exe.
Можешь засунуть эталонный CRC32 и в середину (в виде константы, ресурса), тогда программа должна уметь обходить это место.


 
kofman ©   (2002-10-13 12:39) [9]

Спасибо за помощь.



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-78265
sdram
2002-10-02 17:03
2002.10.24
как задать ключевое поле DataSet -у ?


1-78337
NewChainik
2002-10-14 13:35
2002.10.24
Как обратиться к переменной, если ее имя задано текстовой строкой


4-78737
Eugene
2002-09-12 23:29
2002.10.24
QueryServiceConfig - как правыильно её использовать ?


4-78742
Xemax
2002-09-08 20:57
2002.10.24
Почему не удаляется файл?


3-78228
NewI
2002-10-02 04:55
2002.10.24
Делаю SQL запрос. Данные отображаются в DBGrid. Вопрос в