Можно ли изменить файл без изменения его хеш-значения - PullRequest
1 голос
/ 28 июля 2010

Мне нужно отредактировать некоторые cfg-файлы для приложения, но дело в том, что приложение не запустится, если я это сделаю, поскольку оно должно совпадать.У меня нет источников приложения.

Я думаю, что если хеш не совпадает с хешем exe, он завершается.

Не могли бы вы как-нибудь обойти это?

Ответы [ 7 ]

7 голосов
/ 28 июля 2010

Собственно, есть способ:

while(hash of malicious config file does not match original)
{
  make random, non-functional change to malicious config file.
}

Это может занять некоторое время.

3 голосов
/ 28 июля 2010

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

3 голосов
/ 28 июля 2010

С помощью алгоритмов хэширования cretain вы можете добавлять данные в конец файла (если, например, XML-файл находится внутри тегов комментариев). Но это, вероятно, больше проблем, чем стоит. Например, http://www.schneier.com/blog/archives/2005/06/more_md5_collis.html

2 голосов
/ 28 июля 2010

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

1 голос
/ 28 июля 2010

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

1 голос
/ 28 июля 2010

Существует ли файл с нужными настройками и с таким же хешем?возможно

Сможете ли вы найти его?Почти наверняка нет

0 голосов
/ 28 июля 2010

Этот вид проверки намеренно трудно обойти.Хеши, как правило, работают так, что небольшие изменения во входных данных приводят к различным изменениям.Проверка в этом случае выполняет свои обязанности, к сожалению, для вашей ситуации.

Хотя в теории есть и другие входные данные, которые хэшируют одно и то же, они будут сильно отличаться от вашего ввода, а не только немного отличаться,Поиск этих входных данных также будет трудоемким и сложным, как взлом зашифрованных данных.В общем, нет.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...