Skip to content
gosk edited this page Jun 18, 2011 · 4 revisions

PNG解析

jarの再生成

  1. mv new_books.png new_books.jar
  2. unzip new_books.jar
  3. jar cfm same_books.jar META-INF/MANIFEST.MF 0 1 Q.class

0と1はfileコマンドで判別できない何か。

  • new_books.pngの先頭
    • 0000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
    • 0000020 0000 bc00 0000 bc00 0608 0000 c200 c449
  • 0の先頭
    • 0000000 13c0 1708 4944 5a5c 4349 5d46 0b00 0202
    • 0000020 4349 ec46 4349 ec46 4541 5046 8149 940f
  • 1の先頭
    • 0000000 13c0 1708 4944 5a5c 4349 5d46 0b00 0202
    • 0000020 4349 4c45 4349 9744 4541 5046 4749 14cf
  • card_inc.pngの先頭
    • 0000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
    • 0000020 0000 9000 0000 c800 0608 0000 0700 689b

javaの解読

  • static関数

    • r : 引数の入力ストリームから読み込んで文字列を返す。
    • d : 固定値の排他的論理和を取る。単純な暗号化目的?
    • z : 4バイトのマークを探して、そこまでの長さを返す。
  • main

    • rでファイル全体と0, 1を読み込む。
    • zでファイル全体からマークを探して先頭のサイズを見つける。
    • 先頭のサイズから0, 1の逆のデータを選択する。
    • dで全体に排他的論理和をかける。
      • dのデータとマーク以降のデータを標準出力。
Clone this wiki locally