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

Вниз

CRC   Найти похожие ветки 

 
ИванИванычч   (2005-01-31 14:52) [0]

Такой вопрос: как можно подсчитать crc процедуры!! и в момент выполнения программы проверить этот самый crc?


 
TUser ©   (2005-01-31 14:55) [1]

На алголисте есть алгоритм


 
Poirot ©   (2005-01-31 15:03) [2]

а на rsdn есть статьи как считать CRC дял проги, но вот для процедуры - это сложнее.. нать узнать точку входа в процедуру для начала:)


 
ИванИванычч   (2005-01-31 15:05) [3]

Там сейчас поискал, ничего толком не нашел.
Модет сможете подсказать как можно вычислить CRC конкретной процедуры, а не всего ЕХЕшника? Да + каким образом проверять CRC во время работы самой программы


 
ИванИванычч   (2005-01-31 15:07) [4]

Точка входа- определить не проблема


 
Digitman ©   (2005-01-31 15:11) [5]


> ИванИванычч


супер-пупер защиту от взлома пишешь ?


 
TUser ©   (2005-01-31 15:13) [6]

Точка входа есть @ИмяПроцедуры


 
ИванИванычч   (2005-01-31 15:16) [7]

> супер-пупер защиту от взлома пишешь ?
Да нет, нужно для однйо программы сделать такую вещь :)


 
Digitman ©   (2005-01-31 15:17) [8]


> ИванИванычч   (31.01.05 15:16) [7]


нет ну а резон-то какой ?
ну, предположим, подсчитал ты CRC - дальше-то что с полученным значением делать намерен ?


 
BiN ©   (2005-01-31 15:18) [9]

ИванИванычч   (31.01.05 15:07) [4]

Точка входа- определить не проблема


Конечно не проблема, а вот ты попробуй точку, а точнее, точки  выхода определить... Дизассемблер свой еще не пробовал писать?


 
jack128 ©   (2005-01-31 15:25) [10]

function SameFunc: Integer;
begin
...
end;

procedure Dummy;
begin
end;

...
 SameFuncSize := Integer(@Dummy) - Integer(@SameProc);
Теперь у тя есть указатель на область памяти (@SameFunc) и её размер(SameFuncSize) алгоритм расчета СRС уже говрили где искать..


 
ИванИванычч   (2005-01-31 15:27) [11]

> jack128 ©  (31.01.05 15:25) [10]
Огромнейшее спасибо за помощь


 
Digitman ©   (2005-01-31 15:30) [12]


> ИванИванычч   (31.01.05 15:27) [11]


только не вздумай сравнивать полученную в ран-тайм CRC c той что была расчитана для соответствующего процедуре фрагмента исп.файла

при позизионно-зависимом коде процедуры ты наверняка не получишь совпадения


 
k@rt ©   (2005-01-31 17:51) [13]

А что такое CRC? =)


 
default ©   (2005-01-31 18:01) [14]

k@rt ©   (31.01.05 17:51) [13]
хеш-функция


 
GuAV ©   (2005-01-31 19:13) [15]

Digitman ©   (31.01.05 15:30) [12]
при позизионно-зависимом коде процедуры ты наверняка не получишь совпадения


Если программа - ехе файл со стандартным ImageBase то совпадение наверняка получится, т.к. код ехе не перемещается, более того у многих ехе отсутсвует секция .reloc что не сказывается на их работоспособность.


 
Defunct ©   (2005-01-31 19:47) [16]

ИванИванычч   (31.01.05 14:52)  

16-ти разрядный CRC расчитывается циклически по полиному:
х16+х12+х5+1

1. Расчитайте CRC кода и выведите его на экран.
2. Запомните его в программе как константу.
3. Расчитывайте CRC в процессе работы программы и сравнивайте с сохраненной константой.

сделайте цикл:
SaveCRC/CalculatedCRC : Word

{$R-}
for i := 1 to SavedCRC - CalculatedCRC do
 asm
   Push Eax
 end;

подвесит программу намертво при несовпадении CRC.



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
6-1101735729
Knight
2004-11-29 16:42
2005.02.13
Что такое со стримом?


1-1106939009
serg128
2005-01-28 22:03
2005.02.13
Как определить день недели по дате?


4-1103981421
moor38
2004-12-25 16:30
2005.02.13
WinNT как "подвесить"


3-1105455009
denis24
2005-01-11 17:50
2005.02.13
создание пустой временной таблицы со структурой основной таблицы


1-1106700113
-=GaLaN=-
2005-01-26 03:41
2005.02.13
Показ формы без перехвата фокуса