Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
А зачем угадывать то? 23.10.01 05:25 Число просмотров: 1460
Автор: Biasha <Бяша> Статус: Member
|
> Привет всем! > > Нужна помощь. Хочу разобраться как одна програма работает, > она вычисляет > контрольную сумму текстовой строки. Может кто навскидку > может подсказать > какой механизм скорее всего используется. Что-то очень > простое - данные
Откуда такая уверенность? А вдруг там очень сложная зависимость.
Если бы хоть входные строки не очень отличались, можно было бы что-то сказать на глаз.
> программой передаются через модем, поэтому идет проверка > данных. Программе > около 5 лет > > Вот 3 исходных строки и известные контрольные суммы для них > : > > "???DJDSU 3011010 6620 7520 6500 7490339689 > 0%%%" > checksum= 3678 > > "???DJDSU 3011011 7870 8950 7850 8950364619 > 1%%%" > checksum= 3982 > > "???DJDSU 3011012 9150 9450 8320 9040375385 > 1%%%" > checksum= 4113
Короче угадывать - не метод, к этому следует прибегать только в случае, когда не доступен код программы. Иначе просто отлови момент подсчёта отладчиком. Если же код не доступен, то составляй короткиеоченьпохожие строки (скажем различающиеся в одном бите).
|
<theory>
|
Головоломка - может кто ответ сразу знает? 22.10.01 19:36
Автор: Argumento Статус: Незарегистрированный пользователь
|
Привет всем!
Нужна помощь. Хочу разобраться как одна програма работает, она вычисляет
контрольную сумму текстовой строки. Может кто навскидку может подсказать
какой механизм скорее всего используется. Что-то очень простое - данные
программой передаются через модем, поэтому идет проверка данных. Программе
около 5 лет
Вот 3 исходных строки и известные контрольные суммы для них :
"???DJDSU 3011010 6620 7520 6500 7490339689 0%%%"
checksum= 3678
"???DJDSU 3011011 7870 8950 7850 8950364619 1%%%"
checksum= 3982
"???DJDSU 3011012 9150 9450 8320 9040375385 1%%%"
checksum= 4113
|
|
А зачем угадывать то? 23.10.01 05:25
Автор: Biasha <Бяша> Статус: Member
|
> Привет всем! > > Нужна помощь. Хочу разобраться как одна програма работает, > она вычисляет > контрольную сумму текстовой строки. Может кто навскидку > может подсказать > какой механизм скорее всего используется. Что-то очень > простое - данные
Откуда такая уверенность? А вдруг там очень сложная зависимость.
Если бы хоть входные строки не очень отличались, можно было бы что-то сказать на глаз.
> программой передаются через модем, поэтому идет проверка > данных. Программе > около 5 лет > > Вот 3 исходных строки и известные контрольные суммы для них > : > > "???DJDSU 3011010 6620 7520 6500 7490339689 > 0%%%" > checksum= 3678 > > "???DJDSU 3011011 7870 8950 7850 8950364619 > 1%%%" > checksum= 3982 > > "???DJDSU 3011012 9150 9450 8320 9040375385 > 1%%%" > checksum= 4113
Короче угадывать - не метод, к этому следует прибегать только в случае, когда не доступен код программы. Иначе просто отлови момент подсчёта отладчиком. Если же код не доступен, то составляй короткиеоченьпохожие строки (скажем различающиеся в одном бите).
|
| |
А зачем угадывать то? 23.10.01 10:18
Автор: Argumento Статус: Незарегистрированный пользователь
|
> Откуда такая уверенность? А вдруг там очень сложная > зависимость. > Если бы хоть входные строки не очень отличались, можно было > бы что-то сказать на глаз. >
Вот это я прочитал на их сайте :
The checksum is nothing more than the sum of all the binary numbers in the packet (excluding the checksum itself, of course). As The DownLoader is receiving the packet it adds up the binary numbers in the packet, producing its own checksum value. After verifying its calculation of this internal checksum, it compares it to the checksum received from the data vendor.
Попробовал просуммировать все ASCII коды в строке - результат получается близкий, но отличается то в большую сторону, то в меньшую
По поводу дебагера - я сам не владею этой техникой, как крайний случай придется обратиться к кому-нибудь.
|
| | |
Не то складываешь. 23.10.01 19:05
Автор: Biasha <Бяша> Статус: Member
|
> The checksum is nothing more than the sum of all the >>binary > numbers in the packe<<t (excluding the checksum itself, of
> Попробовал просуммировать все >>ASCII коды в строке<< - > результат получается близкий, но отличается то в большую > сторону, то в меньшую Не знаю как там у тебя в боьшую, но у меня постоянно недобор (около 2400) - значит ты дал не весь пакет.
Сумируй по всемупакету и будет всё правильно.
> > По поводу дебагера - я сам не владею этой техникой, как > крайний случай придется обратиться к кому-нибудь. В твоём случае это нафиг не нужно.
|
|
|