anton2703 wrote:
Собсно, двойной пароль я не победил,
Удалось кому-нибудь победить двойной пароль (два keyword по 8 символов) от FX3G/3U ?
Только просьба, не отсылать к portmon, утилите вытаскивания пароля и т.п.. На FX3G/3U при 2-х keyword это не работает.
anton2703 wrote:
есть предположение, что если как-нибудь заменить ответ от контроллера на правильный (H2000), то фокус может получиться, если кто умеет пробуйте.
Нет, это не работает. При подмене девелопер ругается, что у Вас сбои в обмене данными. (Да, CRC подправил - причина не в этом). Было бы забавно, если бы избавившись от передачи пароля в явном виде разработчики совершили такую ошибку, как передачу ответа в незапароленом виде.
Интересно, что смотря за обменом, видно, что разница в порядке обмена данными в случае если пароль есть и если его нет, наступает с того момента, как ПК отсылает запрос с первыми двумя полезными байтами "EC". так же интересно, что последующее содержимое запроса каждый раз разное. и ответ всегда разный. То есть отправляем каждый, например, пустой пароль и каждый раз посылка новая.
пример
Code:
2->1 (00011)EC 1E DC A2 4C 5 (!) 1->2 (00008)30 B8 F2 16
2->1 (00011)EC 28 70 21 91 1 (!) 1->2 (00008)94 EF D3 D2
2->1 (00011)EC 22 DA 74 17 D (!) 1->2 (00008)E3 99 6C 09
2->1 (00011)EC 17 A4 3F BE 2 (!) 1->2 (00008)C1 8A F2 79
2->1 (00011)EC 12 0A 1D CB E (!) 1->2 (00008)96 88 0B 52
2->1 (00011)EC 31 3D 79 91 4 (!) 1->2 (00008)00 AA 65 36
Установить кукую-то систему не удалось. Похоже ПК закодировано запрашивает, или передаёт хэш, состояние запаролинности ПЛК. Тот отвечает, опять же зашифровано, что да пароль есть (даже 2) и далее при подмене ответа на запрос E0 08 15 20 2 на 0000 или 2000, в ПК происходит "не контакт" - типа по этому запросу закодировано, а по этому - нет. И он интеллигентно предполагает, что это из-за неполадок со связью. Ну, в общем он прав

anton2703 wrote:
В общем легко заметить, что при вводе "00000000 00000000", передаётся "04070805 47854285". Если вводить
отличне от нуля символы, к закодированному слову по-символьно добавляется разность от нуля, ну и плюс пару особенных правил, например если 1й символ будет 1 (10000000 00000000), то закодированное слово "04070805 7(!)7854285".
не совсем верно. Ну, то есть идея верная. Есть база, и посимвольное изменение в зависимости от отличия от 0. Да, это предположение верно. Но только там не разность добавляется. Там интереснее. Во первых изменение в, например, последнем символе второго слова изменяет вовсе не последний символ кода. Во вторых, разные символы изменяются по разному: к одним, например, прибавляется разность, а от других вычитается. Есть и более сложные вычисления. Но в целом сопоставить это не сложно. Только без толку. Если установить правило кодирования/декодирования - что это даст? программа перебора пароля в 16 цифер по СОМ порту будет работать вечно.
В общем единственный вариант - попытаться убедить девелопер, что пароля нет. Но не факт, что сделав это, мы получим результат. Поскольку ПЛК, то знает, что пароль ещё есть и может запросто не отдать ничего, не смотря на все просьбы ПК.