jpeg glitch入門

28
JPEG

Upload: yuto-maeda

Post on 19-Jul-2015

359 views

Category:

Internet


2 download

TRANSCRIPT

JPEG

れっくす• @xrekkusu • ウェブセキュリティ • 最近はバイナリ(実行ファイル)を読む • CTFをする

JPEG Glitch入門

JPEG Glitchとは• JPEGのデータの一部を破壊すること • 味のある壊れ方をする

JPEG Glitchとは• JPEGのデータの一部を破壊すること • 味のある壊れ方をする

作り方• JPEGのファイルをバイナリエディタで開く • 画像データっぽい場所を適当な値で上書き • 画像ビュワーで鑑賞する

!

• もしくはGlitch画像ジェネレータをつかう

実験

実験• 白一色のJPEGファイルを用意 • 883バイト(128x128 圧縮率100%) • ファイルのある1バイトを 0x00 に置き換える • 883バイト全部に対して置き換えを行う

ソースコード(Python)

white128 = open('white128.jpg', 'rb').read()

!

for x in range(len(white128)):

sample = list(white128)

sample[x] = '\x00'

open('white128/%d.jpg' % x, 'wb').write(''.join(sample))

結果• 白一色ではあまり面白みがない • 圧縮率100%では激しく壊れない • 0x00で埋めるとSophos Anti-Virusに怒られる

実験2

実験2• 青グラデーションのJPEGファイルを用意 • 1256バイト(128x128 圧縮率70%) • ファイルのある1バイトを 0x00 に置き換える • 1256バイト全部に対して置き換えを行う

631.jpg

実験2• JPEGのブロック単位で壊れている部分 • 圧縮方法が原因で波が現れる

実験3

実験3• あるJPEGファイルを用意 • 実験1,2と同様の処理をして画像を生成する • 画像を吟味して良さそうな2枚を選ぶ • 2枚の画像を用いてGlitchを合成できるか?

実験3

実験3

実験3• よさそう👍

• 次は3つで

実験3

実験3

実験3• 前のGlitchに若干影響されるが…… • 結構イケる • 実はJPEGの方式を考えれば自然

いいGlitchライフを!