![]() |
создание MIDletPascal obfuscator
Вложений: 1
Обусификаторы - программы для запутывания кода путем изменения названий переменных и подпрогамм, применяются в основном в java, т.к. байт-код можно перевести в исходный код. Другое назначение обусификаторов - уменьшение размеров программы, т.к. имена локальных переменных в константном пуле класса не имеют значение для выполнения программы.
Особенность настоящих обусификаторов - отслеживание переменных и методов из других классов и их неприкосновенность. Расскажу как собрать простой обусификатор который разбирает только файл исходного кода, и измененяет все имена кроме указанных в списке неприкосновенных. Алгоритм таков: сканируя текстовый файл с исходным кодом, получаем все слова состоящие из букв, сравниваем со списком статических имен (зарезервированные слова языка программирования/стандартные подпрограммы/добавленные имена) и если полученное слово отсутствует, то ищем его в массиве имен, (если нет, то добавить в массив) и возвращаем числовую позицию в массиве. в выходной файл выводим исходный текст с замененными словами.. ___ программа готова, вот список неизменяемых слов, предлагайте свои варианты.. |
Ответ: создание MIDletPascal obfuscator
То есть имеется ввиду обфускация на уровне исходного кода, а не байт-кода?
|
Re: создание MIDletPascal obfuscator
Ваще, на скок я знаю (по некоторым обфускаторам) там идет простое приведение имен функций и переменных к однотипным названиям, вроде
l1ll1, ll1ll, l111l и т д, а после этого сжатия и криптования с встраиванием в конец кода функции раскриптовки и распаковки... |
Ответ: создание MIDletPascal obfuscator
да, на уровне исходного кода, причем данный алгоритм будет применим к любому языку, только создавать таблицы неизменных слов. можно конечно делать разбор исходного кода, выявлять имена переменных и подпрограмм, но тогда обусификатор будет соизмерим с компилятором. А так мы просто меняем имя на индекс в таблице и в начале добавляем букву.
Можно сделать еще лучше: брать названия из другой таблицы, с осмысленными именами из фильмов и т.п., но это уже издевательство |
Ответ: создание MIDletPascal obfuscator
Вот максимально упрощенный алгоритм с малым числом зарезервированных слов для обычного pascal'я. Написан в TurboPascal7.1 / Delphi. (исходный текст пропущен через обусификатор)
Код:
{__obus.pas__ programming by arT (c). e-mail: [email protected]} |
Ответ: создание MIDletPascal obfuscator
Попахивает черезжопным мазохизмом...
|
Ответ: создание MIDletPascal obfuscator
Цитата:
Не проще ли забить слова в файл, потом загрузить в массив/список и просто сравнивать слова с лементами списка в цикле? |
Ответ: создание MIDletPascal obfuscator
именно так у сделана рабочая версия данной программы, а здесь как говорил - упрощенная чтоб передать суть. Tadeus-ты прав в отношении тех, кому попадутся модифицированные исходники,.. пишем их в нормальном виде, а перед публикацией или компиляцией путаем
|
Часовой пояс GMT +4, время: 11:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot