Что нового

Расшифровка значении языкового файла в браузере Opera

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Задача может из ряда “неопределённых”, но всё же хотелось бы попробовать её решить с вашей помощью, т.к в математике я особо не бум бум :whistle:.

Итак, имеем таблицу чисел:

Код:
157840 : 85449979
50006 : -180901747
50004 : -1661960928

Слева - исходные числа.
Справа - числа назначения.

Задача: “Добраться” до числе назначения, используя исходные числа. Т.у нужно выявить метод “превращения” этих чисел в их новое значение, найти так сказать алгоритм расшифровки :smile:.

P.S
Эти числа это кодовые значения в языковом файле (для браузера Opera), там до сих пор поддерживаются старые значения (наши “исходные числа”), но используются они не в явном виде, а в неком закодированном виде.

Есть подозрение что это как то связано с преобразованием «signed 32-bit integer» в «unsigned 32-bit integer», ну или наоборот.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

хм... вопрос больше наверное из области криптоанализа.
если разрабы не хотели, чтобы шифр был подобран, то врядли удасться сделать то, что ты говоришь. Но, если все же там какая-то простая схема, то можно построить регрессию.
а можно побольше данных? статистика дело такое, чем больше данных чем ближе истина :smile:


Добавлено:
Сообщение автоматически объединено:

если эти цифры что в шапке взяты не от балды, то скорее всего тут все таки шифр, учитывая, насколько ускакали значения при изменение аргумента всего лишь на 2 единицы (2 и 3 строки) - на порядок. в то время как изменение в три раза (1 и 2 строки) привели к изменения тоже на порядок.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Kaster [?]
если разрабы не хотели, чтобы шифр был подобран, то врядли удасться сделать то, что ты говоришь
Им всё равно, это сделано в целях приведения в порядок строк в языковом файле.

Но, если все же там какая-то простая схема, то можно построить регрессию
Схема простая, один из бывших разработчиков Opera Software как то писал скрипт на Perl для преобразования этих значении, но после его ухода из комании все(?) его нароботки сваязанные с данным вопросом были удалены, и по его словам, копии у него не осталось.

а можно побольше данных?
Вот всё что мне удалось найти:

http://my.opera.com/nafmo/blog/show.dml/197345 сказал(а):
For the techies in the audience, the difference between the two numbering systems is that we changed the number from an unsigned 32-bit integer to a signed 32-bit integer. Thus any number over 2147483647 becomes a negative value.


Добавлено:
Сообщение автоматически объединено:

Kaster [?]
эти цифры что в шапке взяты не от балды
Нет конечно, это из языковых файлов, из старого и нового.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

CreatoR [?]
Вот всё что мне удалось найти:
чесгря, по той ссылке я не нашел никаких данных.
я имел в виду, подобных циферок как в шапке, да по больше. поиск закономерности дело непростое. особенно если дело касается больших чисел. нужны хоть какие-то предпосылки
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: [Математика] Расшифровка группы чисел в определённое значение

Ну, что это не uint в int или обратно, это точно.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Kaster [?]
по той ссылке я не нашел никаких данных
Я процитировал то что посчитал важным, как я понял там нужно переконвертировать тип чисел.

я имел в виду, подобных циферок как в шапке, да по больше
Вот с добавлением:

Код:
157840 : 85449979
50006 : -180901747
50004 : -1661960928
44002 : -1668211044
67652 : -1165063613
51750 : 1648324256
50476 : 2095746136

Вытащить большой список не просто (нужно всё искать ручками :smile:), иначе небыло бы смысла всей этой темы :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

учитывая, что это языковые штуки, может там кодировки символов, возможно Unicode? если мне не изменяет память, то каждый символ юникода - это 8 байт памяти. если перевести его шестнадцатиричный код в число, то должно получиться число в диапазоне от 0 до 2^32-1 если это uint, и от -2^31 до 2^31-1 если int. жду больше точек, как говорится ;D


Добавлено:
Сообщение автоматически объединено:

пока писал, точки подоспели. ща гляну


Добавлено:
Сообщение автоматически объединено:

есть какая нибудь информация о смене кодировки? к примеру, раньше была одна, а теперь другая.


Добавлено:
Сообщение автоматически объединено:

скачал один из языковых файлов (http://www.opera.com/download/lng/1050/ouw1050_ru.lng), если это то. похоже, большие отрицательные числа это не коды символов.
погляжу еще
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Kaster [?]
есть какая нибудь информация о смене кодировки? к примеру, раньше была одна, а теперь другая.
Есть. Раншье была Utf-8, как и теперь :smile: - Кодировка не менялась, дело не в этом.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

может имеет смысл просто затабулировать эти коды? :smile: если конечно расшифровка каждого кода осталась неизменной как в старом языковом файле, так и в новом. то есть берутся два языковых файла, один старый, другой новый. сканируется в старом файле строка вида
Код:
код1=расшифровка

находится строка в новом файле
Код:
код2=расшифровка

то есть строка с точно такой же расшифровкой, но с другим (новым/большим/возможно_отрицательным) кодом, и строится таблица
Код:
код1 <-> код2

и так для всех кодов из старого файла. потому как аналитически я даже не представляю, какая там может быть закономерность. эксель сошел с ума когда попытался сделать регрессионный анализ. либо там какой-то полный хаос, либо модульная алгебра (операции не с числами, а с остатками при делении)


Добавлено:
Сообщение автоматически объединено:

кстати, вот так выглядят эти коды после обратного преобразования int -> uint, о котором говорится в ссылке
Код:
157840	:	85449979
50006	:	4114065549
50004	:	2633006368
44002	:	2626756252
67652	:	3129903683
51750	:	1648324256
50476	:	2095746136
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Kaster [?]
может имеет смысл просто затабулировать эти коды?
smiley.gif
если конечно расшифровка каждого кода осталась неизменной как в старом языковом файле, так и в новом. то есть берутся два языковых файла, один старый, другой новый.
Это единственное что может спасти, но я это отложил на (весьма) крайний случай :smile:

вот так выглядят эти коды после обратного преобразования int -> uint, о котором говорится в ссылке
Ну так отлично, где скрипт преобразования? :laugh:

Там же написано, что числа больше чем 2147483647 превращаются в негативное значение, поэтому берём к примеру тот же «4114065549» (из твоего преобразования), делаем с ним так:
Код:
-BitNOT(4114065549)-1

и уалла! получаем -180901746! что совпадает с «50006» в моей таблице!
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: [Математика] Расшифровка группы чисел в определённое значение

Я конечно могу ошибаться, но логично предположить, если старые языковые файлы несовместимы с новыми версиями Opera, то следовательно никакого соответствия между этими кодами нет.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

Аттач
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Yashied [?]
логично предположить, если старые языковые файлы несовместимы с новыми версиями Opera
Они совместимы, точнее их значения. Просто это новая система исчисления языковых строк.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: [Математика] Расшифровка группы чисел в определённое значение

Тогда зачем разработчики сделали такую неразбериху, народ теперь должен переписывать языковые файлы.


Добавлено:
Сообщение автоматически объединено:

Kaster [?]

Код:
$iValue = -1661960928

$tUInt = DllStructCreate('uint')
DllStructSetData($tUInt, 1, $iValue)
ConsoleWrite(DllStructGetData($tUInt, 1) & @CR)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

Yashied
да. мне Creator уже дал этот код с оффа. Просто я свой написал еще до этого ;D
мощная штука этот DllStruct...
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

Yashied [?]
зачем разработчики сделали такую неразбериху, народ теперь должен переписывать языковые файлы
Желательно, но не должен, браузер по прежнему поддерживает старые значения.

Kaster [?]
мощная штука этот DllStruct...
Вот только как выяснилось, нужно как то конвертировать исходные числа, а Kaster непонятно почему сделал это для чисел назначения :D
 

amel27

Продвинутый
Сообщения
146
Репутация
55
Re: [Математика] Расшифровка группы чисел в определённое значение

CreatoR, оно?
Mapping table for remapping old Opera language identifiers to the new identifiers for Opera 9.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: [Математика] Расшифровка группы чисел в определённое значение

amel27 [?]
:laugh: Оно! А где ты это нашёл?

Вот ещё бы найти таблицу поновее, для Opera 10, там уже не числа нужно заменять, а строковые значения, типа таких:

Код:
M_SYNC_ENABLE

:whistle:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Расшифровка группы чисел в определённое значение

Mapping table - это конечно круто, но закономерность однако не найдена. А подобную таблицу я предлагал сделать еще в самом начале посредством сравнения строк ;D
интересная задача, как сказали бы буржуи - challenging 8)
 
Верх