PAR 2.0

ブロック数は最大で 32768個まで。

PAR 2.0 ファイルはパケット単位の構造になってる。
ファイルが部分的に破損しても、損害はそのパケットだけに限られる。


[ QuickPar のパケット繰り返し回数はブロック数依存? ]

file 4 -> 4 * 2 + 1 = 9 packet
ブロック数によって倍率が異なる。
block 1  -> 1, 9 = 9
block 2  -> 2, 9 9 = 18
block 3  -> 2, 6 6 6 = 18
block 4  -> 3, 6 7 7 7 = 27
block 7  -> 3, 3 4 4 4 4 4 4 = 27
block 8  -> 4 , 4 5 4 5 4 5 4 5 = 36
block 14 -> 4
block 15 -> 5, 3 3 3 ... = 45
block 31 -> 5
block 34 -> 6
block 51 -> 6
block 99 -> 7
block 176 -> 8
block 292 -> 9
block 868 -> 10

block < 2 の n乗

block の最大は 32767 なので 繰り返し回数は最大で 15回

リカバリ・ファイルを 1個だけ作る場合、
block が 16386個なら、同じパケットが 15回記録される。


[実行ファイルのチェックサム]

WindowsOS の実行ファイル *.exe はサイズが 4KB 単位になるように
0 でパディングされている。
末尾の 4バイトを修正することで CRC-32 を自由に変更することができる。
注意、パディングが存在しない場合は致命的なエラーが発生するので危険！
実行ファイル内の普段使わないテキストまたはリソース領域を改変する方が安全。

元のサイズ -4 のデータの CRC-32 を計算する。
最終処理 0xFFFFFFFF との XOR を取り消す。
その値をリトル・エンディアンで末尾に付け足す。
するとそこまでのチェックサムを打ち消して 0 になる。
更に最終処理が加わると、0xFFFFFFFF になる。

理論は CRC によるエラー検出と同じ。
最終処理があるので、0 ではなく 0xFFFFFFFF になることが異なる。

