Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-78512
FREEMAX
2002-10-14 01:49
2002.10.24
Очень нада, помогите


3-78207
saxon
2002-10-04 12:20
2002.10.24
D3->D6 (TDBCtrlGrid + TDBLookupComboBox)


6-78556
Net
2002-08-21 07:52
2002.10.24
Оставить сообщение в гостевой книге на Народе


1-78527
PVOzerski
2002-10-14 11:03
2002.10.24
Формат архивов bz2?


1-78338
Новенький в Делфи
2002-10-14 03:55
2002.10.24
Загрузить файл в память и работать там с ним





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский