vbstreets конференция - Виж темата - криптиране Търсейки файл

Здравейте на всички!
Представлява един пример изпълнение на прост EXE файл криптиране на базата на лицензен файл. Когато неправилно лиценз файл EXE няма да се изпълнява и показва съобщение за неправилно лиценза, повечето от кода е криптирана, в противен случай EXE се декриптира и кода си работи.
Как става това?
На първо място, за да може да се разчете необходимостта EXE да разчете кода не е шифрована. За да направите това, кодът използва функцията за маркер: BEGIN_OF_NON_ENCRYPTABLE_REGION и END_OF_NON_ENCRYPTABLE_REGION. Код между тях ще бъде девствена.
На второ място, за да кодира файла, който трябва да го изпълним с опция криптата: [лиценз файл]. например:


В този случай, процедура SED стартира EXE. Във всеки който не е празен може да се използва като файл на лиценза. Ако файлът вече е криптирана - ще възникне грешка. За да се определи дали даден файл е криптиран с помощта на полето VBHeader.pProjectInfo-> dwNull не се използва в компилиран файл и ние може да съхранява всяка информация там. Продължавам да има контролна сума, където най-високото битово криптиране определя факта.
Като цяло криптиране процедура определя границите на изпълнимия код и го XOR'it с лицензен файл, който действа като кръгла буфер. След проверката на сумата на първоначалните данни се съхраняват в горната кутия файл EXE. Encrypted файл се запазва като [ModuleName] __ шифрована. [Разширение] в същата директория като на оригиналния файл не се променя.
Сега, ако стартирате файла програма първо проверява лицензния файл (тя трябва да се нарича license.lic и се намират в директорията на EXE) и ако тя се опитва да го декодира, докато изчисляване на контролната сума. Ако след пълно декодиране на сумата е същата - файлът е бил успешно разшифрован и стартирайте основен код, в противен случай съобщение за грешка.
Ето един пример на код за шифроване на:

Прикачени файлове CryptExe.zip (101.06 KB) Тегления: 33

Кой е на линия

Потребители разглеждащи този форум: Няма регистрирани потребители и 1 гост