поле дата в ключе

Issues related to WebLM
Post Reply
Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

поле дата в ключе

Post by Sergiodb »

посдкажите
в кодировании есть такая строка при создании ключа

$rest = $p->bits / 8 - $content_size;
if ($rest < 0)
die("Content is too big to fit in key: ".$content_size.", maximal allowed is: ".($p->bits / 8));

в поле userdata записывается последвоательность байт

Code: Select all

Массив ( [0] => 16390 [1] => 32000 [2] => 16394 [3] => 32000 [4] => 16395 [5] => 32000 [6] => 16396 [7] => 32000 [8] => 16397 [9] => 32000 [10] => 16399 [11] => 32000 [12] => 17400 [13] => 32000 [14] => 17401 [15] => 32000 [16] => 17402 [17] => 32000 [18] => 17403 [19] => 32000 [20] => 17405 [21] => 32000 [22] => 17407 [23] => 32000 [24] => 17408 [25] => 32000 [26] => 17409 [27] => 32000 [28] => 17410 [29] => 32000 [30] => 17411 [31] => 32000 [32] => 17412 [33] => 32000 [34] => 17413 [35] => 32000 [36] => 17414 [37] => 32000 [38] => 17415 [39] => 32000 [40] => 17416 [41] => 32000 [42] => 17417 [43] => 32000 [44] => 17418 [45] => 32000 [46] => 17419 [47] => 32000 [48] => 17420 [49] => 32000 [50] => 17421 [51] => 32000 [52] => 17422 [53] => 32000 [54] => 17423 [55] => 32000 [56] => 17424 [57] => 32000 [58] => 17425 [59] => 32000 [60] => 17426 [61] => 32000 [62] => 17428 [63] => 32000 [64] => 17429 [65] => 32000 [66] => 17430 [67] => 32000 [68] => 17431 [69] => 32000 [70] => 17432 [71] => 32000 [72] => 17433 [73] => 32000 [74] => 17434 [75] => 32000 [76] => 17427 [77] => 32000 [78] => 17436 [79] => 32000 [80] => 17438 [81] => 32000 [82] => 17437 [83] => 32000 [84] => 17439 [85] => 32000 [86] => 17442 [87] => 32000 [88] => 17440 [89] => 32000 [90] => 17441 [91] => 32000
 массив byte
06000a000b000c000d000f00f800f900fa00fb00fd00ff0000000100020003000400050006000700080009000a000b000c000d000e000f001000110012001400150016001700180019001a0013001c001e001d001f00220020002100
вот пример преобразования кода (массив word -> массив byte)

Code: Select all

print_r($a);
				echo '<br>';
				$packed = 
						array_reduce($a, function($carry, $item) {
							return $carry .= pack('C*', $item);
						});
				echo bin2hex ($packed);
по идее объем не более 46 байт
но выдается сообщение: Content is too big to fit in key: 326, maximal allowed is: 256

при уменьшении размера массива - все работает нормально

в чем я ошибаюсь? уже всю голову сломал
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Post by Admin »

Вы являетесь зарегистрированным пользователем VMProtect?
Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Post by Sergiodb »

конечно

в личном сообщении указал данные
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Post by Admin »

Размер данных внутри лицензии (включая ваш массив) не может быть больше размера RSA ключа.
Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Post by Sergiodb »

возвращая к вопросу о размере userdata

передается массив 256 байт

но система упорно считает его размером в 768

вот в этой проверке

Code: Select all

$userdata = DecodeChars($data["data"]);
			$len = bin_strlen($userdata);
			if ($len > 255) 
				die("User data is too long: ".$len);
подскажите как же мне записать массив в 256 байт в поле если в weblm используется фукнции
function EncodeChars($str)
и
function DecodeChars($str)


передаю массив
02 00 01 00 00 04 7B 00 00 10 02 00 04 00 04 00 00 01 01 00 20 00 05 00 00 02 04 00 00 40 03 00 80 00 05 00 40 00 05 00 01 40 02 00 09 40 57 04 69 42 2B 00 FE 43 DF 00 5C 44 02 00 5D 44 02 00 5E 44 02 00 5F 44 06 00 60 44 05 00 61 44 02 00 63 44 56 01 64 44 02 00 65 44 05 00 66 44 05 00 67 44 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
это 256 байт
но система упорно считает что это 768
почему она считает пробелы и каждое число как отдельный символ? ведь это 256 байт - как и согласно описанию


подскажите как решить данную проблему
Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Post by Sergiodb »

я т.е. понимаю вопрос в том что запишется в базу

какая строка примером должна записаться
такая? или как то иначе она должна выглядеть?
{"hardwareid":"fromurl","data":"\x06\x40\x6F\x00\x0A\x40\x6F\x00\x0B\x40\x0B\x00\x0C\x40\x0B\x00\x0D\x40\x01\x00\x0F\x40\xDE\x00\x10\xC0\x40\x3E\x50\xC5\x80\x3E\x90\xF7\x80\x34\x30\x20\x0F\xD4\x30\x20\x0F\xF4\x34\xD0\x10\x04\x44\xD0\x10\x14\x42\x10\x00\x24\x42\x10\x00\x34\x4B\xC0\x10\x44\x40\x30\x00\x54\x40\x30\x00\x64\x4B\xC0\x10\x74\x42\xC0\x00\x84\x41\x60\x00\x94\x42\xB0\x20\xA4\x42\xB0\x20\xB4\x43\x70\x00\xC4\x43\x70\x00\xD4\x40\x50\x00\xE4\x40\x50\x00\xF4\x40\x50\x01\x04\x40\x60\x01\x14\x40\x60\x01\x24\x40\x60\x01\x44\x44\x20\x01\x54\x44\x20\x01\x64\x49\xA0\x21\x74\x49\xA0\x21\x84\x40\x70\x01\x94\x40\x70\x01\xA4\x44\xD0\x01\x34\x44\xD0\x01\xC4\x40\x90\x31\xE4\x40\x90\x31\xD4\x40\x40\x01\xF4\x40\x90\x32\x24\x40\x40\x02\x04\x47\x80\x32\x14\x40\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Post by Admin »

Если вы хотите передавать строку в HEX, то формат должен быть такой: \xYY, где YY - это код символа, и это все без пробелов.
Post Reply