Безопасность в Дельфи

         

Проект "АнтиКрэковые Мучения"


Дополнение к проекту АКМ
Раздел "Анти крэковые мучения"
Шифрование кода. Часть I
Шифрование кода. Часть II
Дмитрий Логинов ,
дата публикации 31.05.00
Приветствую "читателей" АКМ! Извиняюсь за скоропостижный выпуск, но думаю, несмотря на краткость, он будет полезен. В чем причина спешки? В моей лени и переоценке способности объяснять. Накликивая второй выпуск АКМ, я был абсолютно уверен, что все интересующиеся запросто поймут мои "рекомендации" по спрятыванию зашифрованной информации в ехе-шник. Но был не прав. Мой внутренний голос, очень похожий на соседа справа, столь же язвительно сообщил мне, что видимо есть еще кодеры в русских селениях непостигшие откровения. Нужно снимать лапти и идти в народ (С) Л.Толстой. Был такой знатный программер. Писал очень большие листинги. Но, видимо, очень не любил чистить обувь. Вобщем, я решил выслать NEXT REVISION проекта АКМ. Произошли следующие изменения. В проекте BIN2ASM изменился 1 байт. В модуле MainUnit.pas в строке 80: БЫЛО: Write( TxtFile, ' DW '+IntToStr(Buf^[i]) ); СТАЛО: Write( TxtFile, ' DB '+IntToStr(Buf^[i]) ); Совсем старый стал, забыл зачем я все это пишу. Нам изначально нужен массив байт. Так уж TStream устроен. Короче, умные могут поправить сами, а желающие могут скачать новую версию целиком ( Я знаю, что вы сделаете! ;)))) ). Поехали дальше. Сам проект АКМ претерпел несколько важных изменений. Первое, появился некий файл SecUnit.cfm.asm. Интуиция подсказывает мне, что это результат перемолки файла SecUnit.cfm в блоке BIN2ASM. Второе, Я специально закатал в комментарии старые строки, в образовательных, так сказать, целях. Добавлен класс TCryptHandle = class(TStream), который, в отличии от TCryptFile, является прямым наследником TStream и братаном THandleStream. Думаю, не стоит пускаться в философские рассуждения по структуре этого класса. По крайней мере, мой внутрений голос (коллега справа) ничего не говорит. Он вообще сайчас занят влюбленным рассматриванием Пятого Буилдера. Медитирует, так сказать, на Object Inspector. Не будем его трогать. Я уверен, здесь собрались профессионалы, а не двоешники сбежавшие с последнего звонка.
"двоешники" пишется через "ч" ! Кто-то изучал Делфя на уроках русского. (Сосед-с-права) Вернемся к нашим BEGIN-ам. Так же добавлена уже знакомая вам процедура TryToCall, которая содержит в себе теже цифири, что обитают внутрях SecUnit.cfm.asm. Хочу обратить ваше внимание на такую важную занозу в TCryptHandle, которая несколько портит универсальность этого "класса". Это константа 2235, Которая мельком появляется в конструкторе и методе Seek. Сие дикое сочетание двух неудов, одного уда и одной взятки за хорошее поведение означает не что иное как размер файла SecUnit.cfm. Так теперь о том, как все это юзать. В строке 313 главного модуля можно заметить пример на эту тему. Stream := TCryptHandle.Create(@TryToCall); Ничего выдающегося. И последнее, в модуле CryptUnit.pas поменялась единственная процедурка, выдающая себя за связистку Кэт (симпатичная такая). Там изменилось приведение к типу в цикле FOR. Я вынужден был убить адресный префикс, а то злостный компилятор строго грозил пальцем (прямо как дядюшка Элджер рассказывал). Итак, качайте и наслаждайтесь. 8-)

Дмитрий Логинов

Скачать проект :
Bin2asm2.zip
(3 K)
Akm-2.zip (12 K)




Содержание  Назад  Вперед