Page 1 of 1

Важный код

Posted: Mon Apr 15, 2019 9:25 am
by postgres
Привет

Какие примеры важного кода вы посоветуете? Для дополнительной проверки.

Re: Важный код

Posted: Thu Apr 18, 2019 4:56 am
by Admin
Для дополнительной проверки чего?

P.S. Важный код - это обычно некий алгоритм, который вы хотите защитить от анализа и взлома. Например функция проверки серийного номера и анализ его результата.

Re: Важный код

Posted: Thu Apr 18, 2019 3:51 pm
by postgres
Допустим сделали Loader для запуска защищенного приложения.
Как избежать этого?

Re: Важный код

Posted: Fri Apr 26, 2019 2:16 pm
by postgres
Ответа не будет?

Re: Важный код

Posted: Sat Apr 27, 2019 9:38 am
by Admin
Смотря что делает этот лоадер. Если он патчит сегмент кода, то VMProtectIsValidImageCRC сможет это опредлелить.

Re: Важный код

Posted: Sun Apr 28, 2019 4:41 am
by postgres
Во-первых просто напросто патчит значение строки, как быть?

Re: Важный код

Posted: Sun Apr 28, 2019 6:13 am
by Admin
Сама строка то где находится?

Re: Важный код

Posted: Sun Apr 28, 2019 2:21 pm
by postgres
В пределах маркеров.

Re: Важный код

Posted: Mon Apr 29, 2019 3:18 pm
by Admin
В пределах маркеров обычно находится код, а строка - это массив данных.

Re: Важный код

Posted: Fri May 03, 2019 10:10 pm
by postgres
факто на лицо, лоадер легко сделали. говорят помогает getter/setter. так ли это?

Re: Важный код

Posted: Sat May 04, 2019 4:47 am
by Admin
Основная функция VMprotect - это виртуализация критичного кода. Если вы хотите максимально усложнить жизнь хакерам, то вам нужно сделать так, чтобы максимум работы важного кода происходило внутри виртуальной машины. Вот вам пишут "говорят помогает getter/setter.", насколько я понимаю программа написана на Delphi?

Code: Select all

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)

Re: Важный код

Posted: Sun May 05, 2019 6:56 am
by postgres
XOR на каждый символ и дешифровка? на с++ сниппет можете скинуть?

программа написана на с++