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

Вниз

Как проверить CRC своего же екзешника?   Найти похожие ветки 

 
leonidus ©   (2006-04-04 23:12) [0]

Люди помогите пожалуйста. Необходимо из программы проверить CRC своегоже экзешника. В инете нашел массу примеров расчета CRC  поэтому с этим проблем нет, но как поместить рассчитанную сумму в тело экзешника что бы при этом эта самая сумма не изменилась? Мне это нужно для того, что бы проверять не взломали ли мою программу. Где-то прочел что можно записать сумму в РЕ область файла и при подсчете ее не считать, но как это сделать ума не приложу.  Заранее большое спасибо за ответы.


 
balepa ©   (2006-04-05 08:44) [1]

Microsoft Portable Executable and Common Object File Format Specification
http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pecoff.doc
968 KB
Может поможет.

З.Ы.Сам не качал, не читал.


 
balepa ©   (2006-04-05 08:47) [2]

Вот еще ссылка (англ.):
http://www.nikse.dk/petxt.html


 
Kerk ©   (2006-04-05 14:41) [3]


> как поместить рассчитанную сумму в тело экзешника что бы
> при этом эта самая сумма не изменилась?

Забивать на время расчета место, где хранишь сумму, нулями.

> Где-то прочел что можно записать сумму в РЕ область файла
> и при подсчете ее не считать, но как это сделать ума не
> приложу.

В PE заголовке есть поле checksum, которое никто не использует. Можешь туда записать. Вариантов куча на самом деле.


 
Игорь Шевченко ©   (2006-04-05 14:42) [4]


> которое никто не использует


Это тебе, мягко говоря, кажется. Его использует загрузчик


 
Kerk ©   (2006-04-05 18:16) [5]

Игорь Шевченко ©   (05.04.06 14:42) [4]
Это тебе, мягко говоря, кажется. Его использует загрузчик


Именно поэтому это поле равно нулю практически у всех ехе?


 
Игорь Шевченко ©   (2006-04-05 18:26) [6]

Kerk ©   (05.04.06 18:16) [5]


> Именно поэтому это поле равно нулю практически у всех ехе?


А ты про какой Checksum говоришь ? :) Их два...


 
n0name   (2006-04-05 18:39) [7]


> А ты про какой Checksum говоришь ? :) Их два...

И загрузчик их игнорит оба(Win).


 
Игорь Шевченко ©   (2006-04-05 23:39) [8]

n0name   (05.04.06 18:39) [7]


> И загрузчик их игнорит оба(Win).


Ну да. А вызов LdrVerifyImageMatchesChecksum придумали для того, чтобы процессор чем-нибудь занять - все равно ему нечего делать.


 
n0name   (2006-04-06 11:49) [9]


> Ну да. А вызов LdrVerifyImageMatchesChecksum придумали для
> того, чтобы процессор чем-нибудь занять - все равно ему
> нечего делать.

Гм. Поправь если я не прав.
AFAIK LdrVerifyImageMatchesChecksum используется ImgHelp.dll, но никак не загрузчиком.


 
Игорь Шевченко ©   (2006-04-06 11:56) [10]

n0name   (06.04.06 11:49) [9]

Это зависит от версии Windows. В Vista, например, используется загрузчиком



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

Форум: "WinAPI";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-1149059111
n-neo
2006-05-31 11:05
2006.07.16
Работа с большими числами


6-1141732535
AllBrain
2006-03-07 14:55
2006.07.16
Помогите The memory could not be "read".


2-1151152802
b.o.n.d.007
2006-06-24 16:40
2006.07.16
Я не могу понять, почему Делфи не считает куски формулы?


4-1144417458
Yuri Btr
2006-04-07 17:44
2006.07.16
RichEdit v2+


15-1150443942
Prohodil Mimo
2006-06-16 11:45
2006.07.16
Есть ли программы, тестирующие диск на чтение?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский