Помогите, гугл меня забанил, читать книги я разучился Задача такая: если "строка" равна искомой_строке - выполнить код Если считать хеш "строки" и сравнивать его с хешем искомой_строки по одному алгоритму, потом если хеши совпали, генерить из "строки" ключ по другому алгоритму и расшифровывать этим ключем код, реально ли спалить до выполнения условия что это была за "строка" и что делает код?
GoldFinch учись заново, а помимо гугла есть и другие поисковики. слишком муторно для анализатора. хотя анализатор может идти другим путём: запись в исполняемые страницы по - любому акция подозрительная.
я хочу чтобы тот кто будет копать мой код не узнал что и когда этот код делает до того как код это чтото сделает.
GoldFinch ну, уж тут всё зависит от того, как твой код ковырять буют: если кодокопатель сразу начнёт искать вызовы функи записи в процесс и установки страниц на исполнение, то они их обнаружат. а после бряк на вызов и смотреть что исполняется до бряка. а ещё лучше могут код подфиксить и в кастроварианте запустить, как ни крути, а запись в исполняемые страницы весьма специфичная штука и для обычных прог она ненужна.
"запись в исполняемые страницы" производится любым упаковщиком, если на проге написать что она запакована, палева 0 идея в том что если условие не выполняется кодокопатель сможет увидеть только то что прога чтото проверяет, вернее он увидит что прога например ищет наличие какой-то записи в реестре, или файла на диске, или проверяет дату, но пока условие не выполнится, что именно прога ищет он узнать не должен, и какой код при этом выполнится он знать не должен.
GoldFinch только заметь, распаковщик работает в самом начале и отследить его вызовы на запись сравнительно просто.
Шифровать код на самом деле необязательно: Было: Код (Text): a = 1; b = 2; c = a + b; if (c == 4) { c++; } Стало: Код (Text): if (key > 30) a = key - 99; if (key/25 == 4 || a == b) { b = key - 98 c = a + b; } if (key < 0 && c == a) { c = b; } if (key < 200 && c == key - 96) { c += key - 99; } Не зная значения ключа key=100, реверсировать этот код бесполезно. На практике можно использовать несколько ключей, добавлять "неработающие" условные переходы, шифровать ключом адреса переменных и переходов и т.п. - на что фантазии хватит
GoldFinch На подобе такого используют некоторые крипторы, например тот что использует 0x05EB04EB,0x0189 для обозначения покриптованного блока. В случае остуствия ключа код не расшифруецо, даже если знаешь алгоритм шифрования.