Важный код

Issues related to VMProtect
Post Reply
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Важный код

Post by postgres »

Привет

Какие примеры важного кода вы посоветуете? Для дополнительной проверки.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Важный код

Post by Admin »

Для дополнительной проверки чего?

P.S. Важный код - это обычно некий алгоритм, который вы хотите защитить от анализа и взлома. Например функция проверки серийного номера и анализ его результата.
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

Допустим сделали Loader для запуска защищенного приложения.
Как избежать этого?
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

Ответа не будет?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Важный код

Post by Admin »

Смотря что делает этот лоадер. Если он патчит сегмент кода, то VMProtectIsValidImageCRC сможет это опредлелить.
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

Во-первых просто напросто патчит значение строки, как быть?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Важный код

Post by Admin »

Сама строка то где находится?
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

В пределах маркеров.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Важный код

Post by Admin »

В пределах маркеров обычно находится код, а строка - это массив данных.
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

факто на лицо, лоадер легко сделали. говорят помогает getter/setter. так ли это?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Важный код

Post 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)
postgres
Posts: 16
Joined: Tue Feb 03, 2015 4:09 am

Re: Важный код

Post by postgres »

XOR на каждый символ и дешифровка? на с++ сниппет можете скинуть?

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