カレンダー

2014/10
   
 
       

広告

Twitter

記事検索

ランダムボタン

完全自動化を目指す

by 唐草 [2014/10/29]



 ぼくは、いくつかの仕事を掛け持ちしている。非常に狭い業界での仕事も行っている。具体的に書くと2社ぐらいまで候補が絞られるぐらいに狭い業界だ。
 そこでのぼくの仕事は、もっぱらチェックサム破りだ。
 チェックサムというのは、データの整合性を確認するための値のこと。不正な書き換えが行われていないかとか、書き込みの失敗がないかといったことをチェックするための値だ。
 チェックサムのイメージとしては、こんな感じだ。バイナリファイルの中の1の数をカウントして、その数を記録するというようなもの。不正に書き換えると1の数が変わる可能性が高いので、エラーを検出することが可能になる。
 実際にチェックサムを算出するための計算式は複雑。計算式も一様ではなく、目的や精度に応じて様々なアルゴリズムが考案されている。
 ぼくの仕事は、あるハード上で生成されたデータに付加されたチェックサムの種類を判別すること。
 要するにある種の暗号破りだ。
 チェックサムの種類を判別するためには、データのどこからどこまでをチェックサム計算の対象にしているかを調べる必要がある。そして、チェックサムと思われる値がデータのどこに(例えば末尾とか)保存されているかを推測する必要がある。
 対象となるデータサイズは様々だが、100KB程度のデータを相手にすることが多い。
 本来であればデータを生成したプログラムを解析してチェックサム計算方法を探すべきなのだが、あいにく仕事場に逆アセンブルをするための環境が無い。データしか取得できない過酷な状況で解析を続けている。
 当然、総当たりでデータをチェックしていくので、手作業でできるわけもない。自作の解析プログラムを走らせ正解を探している。
 もう、ほぼ自動化できている。あと1行程自動化できれば、完全自動化を達成できる。そんなところまでこぎつけた。
 社内にぼくの作業を理解できている人間はいない。難しい顔をしてPCの前で作業をしているように見せかけているが、実際スタートボタンを押して結果を待っているだけだとはだれも気が付いてい無いようだ。
 まとめサイトを眺めているだけで報酬がもらえるような状況に近づいてきた。もう一歩自動化を進めて、寝ているだけでも結果が出せる状況を実現したい。