私は現在、1996年に建設された古い3Dプリンタを "ハッキング"しています。古いWindows PC上で動作するソフトウェアがあります。フロントエンドからアクセスできないパラメータを変更する必要があるので、設定ファイルを修正したいと思っていました。しかし、私が何かを修正すると、もう読むことができません。ファイルの最後にチェックサムがあり、私は実際にチェックサムの専門家ではないことに気付きました。私は、ファイルを読み込んでいる間、このチェックサムが再び計算され、最後のものと比較されると仮定します。 どのチェックサムアルゴリズムが使用されているか調べるのが難しいです。設定ファイルチェックサム推測(CRC)
私がすでに知っていること:ファイルのビットを追加するだけではないと思います。 2つの文字を切り替えるとき、加算で生成されたチェックサムは変更されません。しかし、ソフトウェアはそのファイルを取得しません。チェックサムがそのように見えるので
私は、CRC16のそのいくつかの種類を推測している:私はいくつかの通常のCRC16パラメータを使用してその数を計算していると「4f20」との一致を見つけることができなかったとして
0x4f20
ここで
は、完全なサンプルファイルである、私はそれがカスタムCRC16でなければならないことを前提としてい..:
PACKET noname
style 502
last_modified 1511855084 # Tue Nov 28 08:44:44 2017
STRUCTURE MACHINE_OVRL
PARAM distance_units
Value = "millimeters"
ENDPARAM
PARAM language
Value = "English"
ENDPARAM
ENDSTRUCTURE
ENDPACKET
checksum 0x4f20
私は、チェックサム自体、または完全なライン「CHEのどちらかだと思いますcksum 0x4f20 "は計算中に考慮されていません。なぜなら、それは不可能なのですから(?)
助けていただければ幸いです。
編集:私はチェックサムを持つファイルをいくつか追加していますが、これらはこのファイルよりも長くなります。必要に応じて、私もそれらを提供することができます..