Определение/Подбор CheckSum алгоритма
От: SWAN Украина  
Дата: 18.07.05 07:53
Оценка:
В "двух словах" — автоматизируется некоторая функциональность (T) и при этом доступна старая версия программы поддержка экспортных файлов которой уже реализована — нужен кроме того свой экспорт/импорт (T используется в регионах) — в принципе мне нравится идея сделать его в том же формате что и в старой программе (переход легче будет) чем "придумывать новый" — теперь проблема — в экспортных файлах старой версии во всех данных присутствует контрольная сумма алгоритм подсчета которой неизвестен

замечено что контрольная сумма 32bit и чем больше кол-во данных тем больше число — таже тенденция и в простом CheckSum алгоритме как на codeproject.com (ссылка ниже)...

Попробовал "в лоб" следующие варианты
здесь
здесь
Автор: Flamer
Дата: 29.08.02


Меня интересует — если какие то способы определения "типа" контрольной суммы — возможные варианты "стандартных" алгоритмов и насколько могут варьироваться константные данные в них использующиеся
Re: Определение/Подбор CheckSum алгоритма
От: ilnar Россия  
Дата: 18.07.05 07:57
Оценка:
Здравствуйте, SWAN, Вы писали:

SWA>В "двух словах" — автоматизируется некоторая функциональность (T) и при этом доступна старая версия программы поддержка экспортных файлов которой уже реализована — нужен кроме того свой экспорт/импорт (T используется в регионах) — в принципе мне нравится идея сделать его в том же формате что и в старой программе (переход легче будет) чем "придумывать новый" — теперь проблема — в экспортных файлах старой версии во всех данных присутствует контрольная сумма алгоритм подсчета которой неизвестен


SWA>замечено что контрольная сумма 32bit и чем больше кол-во данных тем больше число — таже тенденция и в простом CheckSum алгоритме как на codeproject.com (ссылка ниже)...


SWA>Попробовал "в лоб" следующие варианты

SWA>здесь
SWA>здесь
Автор: Flamer
Дата: 29.08.02


SWA>Меня интересует — если какие то способы определения "типа" контрольной суммы — возможные варианты "стандартных" алгоритмов и насколько могут варьироваться константные данные в них использующиеся


если есть программа, ИМХО проще пдойти со стороны реверс инженеринга кода
Re: Определение/Подбор CheckSum алгоритма
От: tarkil Россия http://5209.copi.ru/
Дата: 18.07.05 08:07
Оценка:
Здравствуйте, SWAN, Вы писали:

SWA>Меня интересует — если какие то способы определения "типа" контрольной суммы — возможные варианты "стандартных" алгоритмов и насколько могут варьироваться константные данные в них использующиеся


Есть ещё тупейшие варианты: обычное суммирование (с переполнением) или xor-енье байтов (dword'ов). Но возрастания числа с увеличением длины файла они не дают. Хотя... Если файл невелик, а суммируются байты в DWORD, то может быть. Попробуйте.
--
wbr, Peter Taran
Re[2]: Определение/Подбор CheckSum алгоритма
От: SWAN Украина  
Дата: 18.07.05 08:08
Оценка:
Здравствуйте, ilnar, Вы писали:

I>если есть программа, ИМХО проще пдойти со стороны реверс инженеринга кода


Спасибо уже в процессе

Cтарая программа написана на Builder и нужный кусок алгоритма на asm имеет достаточно накрученную структуру c множеством внутренних переходов и вызовом функций в том числе и виртуальных — с учетом того что опыта в раскручивании asm кода немного то на такой кусок может до недели уйти — конечно пробую но перебор существующих алгоритмов может быть более результативен и с гораздо меньшей трудоемкостью — откуда и данный вопрос

патчик отключающий проверку контрольной суммы я конечно уже готов сделать но хотелось бы все таки цивилизованного подхода к тому же предлагать подобное гос структуре я бы все таки стал в очень крайнем случае...
Re[2]: Определение/Подбор CheckSum алгоритма
От: SWAN Украина  
Дата: 18.07.05 08:13
Оценка:
Здравствуйте, tarkil, Вы писали:

T>Здравствуйте, SWAN, Вы писали:


SWA>>Меня интересует — если какие то способы определения "типа" контрольной суммы — возможные варианты "стандартных" алгоритмов и насколько могут варьироваться константные данные в них использующиеся


T>Есть ещё тупейшие варианты: обычное суммирование (с переполнением) или xor-енье байтов (dword'ов). Но возрастания числа с увеличением длины файла они не дают. Хотя... Если файл невелик, а суммируются байты в DWORD, то может быть. Попробуйте.


Спасибо — забыл уточнить но обычное суммирование пробовал — получается сумма на три порядка меньше...
Re[3]: Определение/Подбор CheckSum алгоритма
От: tarkil Россия http://5209.copi.ru/
Дата: 18.07.05 08:26
Оценка: 2 (1)
Здравствуйте, SWAN, Вы писали:

SWA>Спасибо — забыл уточнить но обычное суммирование пробовал — получается сумма на три порядка меньше...


Смущает то, что нормальные алгоритмы хэшей, типа md5 (да и CRC тоже) не дают такой закономерности, чтоб хэш возрастал с увеличением длины последовательности. Скорее всего там что-то тупенькое и самописное. 16-битные величины пробовали в 32-битной суммировать? Попробуйте.

А иначе, imho, остаётся только исходники ковырять.
--
wbr, Peter Taran
Re[3]: Определение/Подбор CheckSum алгоритма
От: raskin Россия  
Дата: 18.07.05 08:27
Оценка: 2 (1)
SWAN wrote:
>
> Здравствуйте, tarkil, Вы писали:
>
> T>Здравствуйте, SWAN, Вы писали:
>
> SWA>>Меня интересует — если какие то способы определения "типа"
> контрольной суммы — возможные варианты "стандартных" алгоритмов и
> насколько могут варьироваться константные данные в них использующиеся
>
> T>Есть ещё тупейшие варианты: обычное суммирование (с переполнением) или
> xor-енье байтов (dword'ов). Но возрастания числа с увеличением длины
> файла они не дают. Хотя... Если файл невелик, а суммируются байты в
> DWORD, то может быть. Попробуйте.
>
> Спасибо — забыл уточнить но обычное суммирование пробовал — получается
> сумма на три порядка меньше...
Три порядка? Может, попробовать слова (word) складывать?
Posted via RSDN NNTP Server 2.0 beta
Re[4]: Определение/Подбор CheckSum алгоритма
От: SWAN Украина  
Дата: 18.07.05 08:44
Оценка:
Здравствуйте, tarkil, Вы писали:

T>Здравствуйте, SWAN, Вы писали:


SWA>>Спасибо — забыл уточнить но обычное суммирование пробовал — получается сумма на три порядка меньше...


T>Смущает то, что нормальные алгоритмы хэшей, типа md5 (да и CRC тоже) не дают такой закономерности, чтоб хэш возрастал с увеличением длины последовательности. Скорее всего там что-то тупенькое и самописное. 16-битные величины пробовали в 32-битной суммировать? Попробуйте.


T>А иначе, imho, остаётся только исходники ковырять.


Спасибо судя по получающимся значениям уже теплее
Re[5]: Определение/Подбор CheckSum алгоритма
От: raskin Россия  
Дата: 18.07.05 08:50
Оценка:
SWAN wrote:
> Здравствуйте, tarkil, Вы писали:
>
> T>Здравствуйте, SWAN, Вы писали:
>
> SWA>>Спасибо — забыл уточнить но обычное суммирование пробовал —
> получается сумма на три порядка меньше...
>
> T>Смущает то, что нормальные алгоритмы хэшей, типа md5 (да и CRC тоже)
> не дают такой закономерности, чтоб хэш возрастал с увеличением длины
> последовательности. Скорее всего там что-то тупенькое и самописное.
> 16-битные величины пробовали в 32-битной суммировать? Попробуйте.
>
> T>А иначе, imho, остаётся только исходники ковырять.
>
> Спасибо судя по получающимся значениям уже теплее
А ещё можно байты в слове переставлять и биты в байте тоже.
Posted via RSDN NNTP Server 2.0 beta
Re[6]: Определение/Подбор CheckSum алгоритма
От: SWAN Украина  
Дата: 18.07.05 10:44
Оценка:
Здравствуйте, raskin, Вы писали:

R>SWAN wrote:

>> Здравствуйте, tarkil, Вы писали:
>>
>> T>Здравствуйте, SWAN, Вы писали:
>>
>> SWA>>Спасибо — забыл уточнить но обычное суммирование пробовал —
>> получается сумма на три порядка меньше...
>>
>> T>Смущает то, что нормальные алгоритмы хэшей, типа md5 (да и CRC тоже)
>> не дают такой закономерности, чтоб хэш возрастал с увеличением длины
>> последовательности. Скорее всего там что-то тупенькое и самописное.
>> 16-битные величины пробовали в 32-битной суммировать? Попробуйте.
>>
>> T>А иначе, imho, остаётся только исходники ковырять.
>>
>> Спасибо судя по получающимся значениям уже теплее
R>А ещё можно байты в слове переставлять и биты в байте тоже.

Всем Спасибо !
Алгоритм локализован — использовалось суммирование символов перемноженных на байты из "ключевого" массива[1024]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.