Есть ли какая-нибудь программа, которая поможет мне конвертировать "шестнадцатеричный" код на основе уже известного ввода и вывода?

219
Hebon

Название немного сбивает с толку, но суть в следующем:

У меня есть список «HexCode» (я использую этот термин свободно, поскольку они на самом деле не являются шестнадцатеричными кодами) как до преобразования, так и после преобразования. Например;

Input: aaea095f Output: 201328c,3f,42,f4,f4 01efb53c 

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

Моя цель - автоматизировать процесс конвертации, но, не зная сам алгоритм, я не могу сделать это с моими текущими инструментами. Есть ли какое-нибудь программное обеспечение, где я могу представить список до и после преобразований, и оно генерирует алгоритм, основанный на том, что я дал ему для будущего использования?

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

Приложение: я ошибочно описал свои коды как криптографические по своей природе, когда они ближе к значениям Hex. Я прошу прощения за любую путаницу, это вызвало. Я изменил «Ключ» на «HexCode», чтобы лучше прояснить мою точку зрения.

0
У вас есть какая-либо информация о взаимосвязи между входом и выходом? Paul 8 лет назад 1
К сожалению, большинство моих конверсий были через два приложения, которые я использую. У меня действительно была какая-то документация, но я не могу ее найти и не думаю, что скоро буду. Hebon 8 лет назад 0
Сделать поиск .... Xavierjazz 8 лет назад 0
Спасибо, но документация была сохранена на веб-сайте, который сейчас не существует. Hebon 8 лет назад 0
@hebon Стоит попробовать: https://archive.org/? Peter 8 лет назад 0

1 ответ на вопрос

2
Peter

Since you brought up cryptography, one of the cool things good cryptographic algorithms do is, they make it nigh impossible to guess the exact algorithm (i.e. function plus key) that was used to encrypt something even if you have access to the input and output. Even if you have a small number of samples (i.e. a few billion) of inputs and matching outputs, you will not be able to predict the output that's generated by a new input.

In other words, what you want to do can't be done, unless you feed the program all possible inputs and outputs. You need to know more about the algorithm than just the inputs and outputs.


EDIT: There exist algorithms like neural networks - and a few others - which can be "trained" with a given set of inputs and outputs. For example, a neural network can be trained to tag pictures of birds in a set of random pictures. These sound like the simple and perfect solution, but the world is not that easy. Before training a neural network, it must be structured to match the problem it needs to solve, and in this case that requires additional information about what the algorithm it mimics does, otherwise training the network will fail.

Спасибо за ваш вклад, но это не криптографический характер, я просто использовал это для описания самих чисел. Они больше похожи на Hex, и я изменил свой пост, чтобы отразить это. Hebon 8 лет назад 0
Это уже одна вещь, которую вы знаете, кроме входов и выходов. Чем больше дополнительной информации вы используете, тем больше вероятность того, что проблема станет решаемой. Но входов и выходов сами по себе недостаточно, я боюсь. Peter 8 лет назад 1

Похожие вопросы