Привет
Какие примеры важного кода вы посоветуете? Для дополнительной проверки.
Привет
Какие примеры важного кода вы посоветуете? Для дополнительной проверки.
Для дополнительной проверки чего?
P.S. Важный код - это обычно некий алгоритм, который вы хотите защитить от анализа и взлома. Например функция проверки серийного номера и анализ его результата.
Допустим сделали Loader для запуска защищенного приложения.
Как избежать этого?
Ответа не будет?
Смотря что делает этот лоадер. Если он патчит сегмент кода, то VMProtectIsValidImageCRC сможет это опредлелить.
Во-первых просто напросто патчит значение строки, как быть?
Сама строка то где находится?
В пределах маркеров.
В пределах маркеров обычно находится код, а строка - это массив данных.
факто на лицо, лоадер легко сделали. говорят помогает getter/setter. так ли это?
Основная функция VMprotect - это виртуализация критичного кода. Если вы хотите максимально усложнить жизнь хакерам, то вам нужно сделать так, чтобы максимум работы важного кода происходило внутри виртуальной машины. Вот вам пишут “говорят помогает getter/setter.”, насколько я понимаю программа написана на Delphi?
TMyObject = class
private
procedure SetString (AValue: String);
function GetString: String;
public
property Value: String read SetString write GetString;
end;
...
var obj: TMyObject ;
begin
obj.Create;
obj.Value := 'SECRET STRING';
obj.Free;
end;
Если внутри SetString/GetString происходит важная работа с ‘SECRET STRING’, то их тоже нужно виртуализировать (включая все вложенные функции, вызываемые из них). Вообще защита данных (не кода) от подмены - это вообще отдельная тема. НА вашем месте я бы полностью отказался от передачи/хранения “секретных” в открытом виде. Используйте простейшие функции шифрования (простейших пример - XOR на каждый символ и дешифровка строки только при ее непорсредственном использовании например для Writeln)
XOR на каждый символ и дешифровка? на с++ сниппет можете скинуть?
программа написана на с++