 |
Переименование параметров метода
|
Переименование параметров метода
Переименование параметров метода включает в себя преобразовании имен параметров функции. Для этого применяются следующие методы:
- Преобразование имен методов, переменных и т.д. в бессмысленный набор символов
Например: параметр ..(string license_key), после обфускации будет иметь имя ..(string a).
- Переименование в цифры
Например, параметр - ..(string license_key), преобразуется к виду ...(string 0). К тому же, в связи с уменьшением длины имен параметров, размер самой сборки значительно сокращается. Кроме того, данный метод хорош еще тем, что одно и то же имя, может быть использовано для именования класса и методов класса (например, отличающихся только типом возвращаемого значения). Это позволяет блокировать работу некоторых дизассемблеров, таких как ildasm, например.
- Преобразование имен методов, переменных и т.д. в набор неотображаемых символов
Суть метода в замене имен на нечитаемые символы, например символы японского языка. Хотя .Net и работает с кодировкой UTF8, не все декомпиляторы адекватно обрабатывают ее символы. Некоторые заменяют имена с такими символами на более понятные, некоторые проставляют вместо непонятных символов их код, некоторые просто отказываются работать с данными символами.
- Использование комбинированного метода
Этот вид символьной обфускации использует вперемешку несколько методов переименования по случайному алгоритму.
Настройка параметров переименования параметров метода
Внешний вид вкладки Параметры метода (с пометками)
Опции:
Исключение при переименования - из исходного кода
Задавать исключения можно так же непосредственно в исходном коде (C#, VB и т.д.).
Для этого нужно использовать атрибут System.Reflection.Obfuscation
Например:
//
// Исключить из переименования параметры метода 'Function2'
//
public class Class1
{
public void Function1(stirng message) { }
[System.Reflection.Obfuscation(Exclude = true,
ApplyToMembers = true,
Feature = "MethodParams")]
protected void Function2(string license_key ) {}
internal void Function3(int number) { }
}
|
|
|
|
15.11.2008
|
|
 |
|