Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
写真に埋め込まれた音声データを救出せよ
Search
R SATO
March 14, 2026
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
写真に埋め込まれた音声データを救出せよ
小江戸らぐ 第284回活動報告会
https://koedolug.connpass.com/event/385833/
R SATO
March 14, 2026
More Decks by R SATO
See All by R SATO
【ジャンク品】ドンキUMPCの活用
rsato
1
81
フィード生成ツールの開発
rsato
0
200
YouTubeの動画を高画質でダウンロードしよう
rsato
0
480
ランダムな文字列を判定するには?
rsato
0
440
Review for SanDisk, Kingston, and Lexar's SD Card faster than UHS-I (max speed: 104MB/s)
rsato
0
370
Factorioのすすめ (Short Introduction to Factorio)
rsato
0
380
パスワードマネージャーのLinux対応状況を調べる
rsato
0
130
タイムラプスビデオの作り方 / How to create Time-lapse video
rsato
1
630
Other Decks in Programming
See All in Programming
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
290
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
30
13k
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
230
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
520
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.2k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
280
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
5.5k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
180
JRuby: Past, Present, and Future
headius
0
210
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
420
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
1
1.1k
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
960
How to Ace a Technical Interview
jacobian
280
24k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
750
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
The Pragmatic Product Professional
lauravandoore
37
7.5k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Designing Experiences People Love
moore
143
24k
Building Applications with DynamoDB
mza
96
7.2k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
From π to Pie charts
rasagy
1
380
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
290
Transcript
写真に埋め込まれた音声 データを救出せよ R SATO(佐藤 玲) 2026/3/14 小江戸らぐ 第284 回活動報告会 1
ソニーのカメラはアプリが入った(過去形) • 「 PlayMemories Camera Apps 」 • 2012 年~2016
年のカメラが対応 • NEX-6~α6500/α7S II など • RX100 III ~ RX100 Vなど • アプリストアまたはカメラから直 接購入・インストール可能 • 決済はスマホか PCから • 約30のアプリ • タイムラプス、多重露光、フォ トレタッチ、 POBox など • 2025 年8 月31日にサービス終了 2026/3/14 小江戸らぐ 第284 回活動報告会 2
2026/3/14 小江戸らぐ 第284 回活動報告会 3
サウンドフォト • 撮影した前後の音を録音できるアプリ • 録音タイミングはシャッター前も可能 • 音声データは カメラ内の本アプリまたは PlayMemories Online
で再生可能 2026/3/14 小江戸らぐ 第284 回活動報告会 4
写真に埋め込まれた音声データを救出せよ • PlayMemories Online は2025 年8月31日にサービス終了 • カメラのアプリは初期化すると消えてしまう • 二度とインストールできない
• カメラが故障したり、手放したら? • 撮影した音声データが聴けなく なる! 2026/3/14 小江戸らぐ 第284 回活動報告会 5
Document Freedom Day • オープンスタンダードとオープンドキュメント形式の普及・啓 発を目的とした世界的な記念日 • 2026 年は3月25日 •
文書・スプレッドシートだけでなく 音声・映像など、あらゆる デジタルデータが対象 logo DFD Colored 2026/3/14 小江戸らぐ 第284 回活動報告会 6 https://digitalfreedoms.org/en/ document -freedom -day
音声データはどこ?形式は? 1. JPEG内のメタデータ (EXIF) 2. SDカード内の隠しフォルダ 3. カメラ内アプリ領域 4. 画像部分にステガノグラ
フィ a. MP3 b. MP4 c. AAC d. ATRAC3 2026/3/14 小江戸らぐ 第284 回活動報告会 7
JPEGファイルの解析 (1) • とりあえず exiftool で見る • 何か独自データらしい部分が …? $
exiftool -a –u _DSC2367.JPG ExifTool Version Number : 12.76 File Name : _DSC2367.JPG Directory : . File Size : 20 MB : Sony 0x9407 : 7f e7 b4 7f b7 fc bb b7 f2 45 75 4b fe 6f 3f 26 4d 5e b[...] Sony 0x9408 : 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0[...] Sony 0x9409 : 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0[...] : 2026/3/14 小江戸らぐ 第284 回活動報告会 8
JPEGファイルの解析 (2) • 怪しいタグのデータは 1000 バイトと小さい • MP3のシグネチャである 49 44
33 03 (ID3) ではない • 他の値も音声データのシグネチャなし $ exiftool -htmlDump _DSC2367.JPG > _DSC2367.JPG.html 2026/3/14 小江戸らぐ 第284 回活動報告会 9
ファイル末尾に怪しいブロック • SD_HEADと SD_FOOTで挟まれたエリアに WAVEファイルぽい データ を確認 • シグネチャは 52
49 46 46 ?? ?? ?? ?? 57 41 56 45 (RIFF???WAVE) • サイズは約 2MB 2026/3/14 小江戸らぐ 第284 回活動報告会 10
データ抜き出し • JPEGファイルから当該部分のオフセット を取得して dd で出力 • WAVEのRIFFヘッダからサイズ情報 を元にdd で出力
$ HEAD=$(grep -oba 'SD_HEAD' _DSC2367.JPG | head -1 | cut -d: -f1) $ FOOT=$(grep -oba 'SD_FOOT' _DSC2367.JPG | head -1 | cut -d: -f1) $ dd if=_DSC2367.JPG offset=$HEAD count=$((FOOT-HEAD)) of=sd_area.bin $ RIFF_OFFSET=$(grep -oba 'RIFF' sd_area.bin | head -1 | cut -d: -f1) $ SIZE_HEX=$(dd if=sd_area.bin bs=1 skip=$((RIFF_OFFSET+4)) count=4 2>/dev/null | xxd -p) $ SIZE_DEC=$((0x$SIZE_HEX)) $ RIFF_TOTAL=$((SIZE_DEC + 8)) $ dd if=sd_area.bin bs=1 skip=$RIFF_OFFSET count=$RIFF_TOTAL of=audio.wav $ file audio.wav audio.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz 2026/3/14 小江戸らぐ 第284 回活動報告会 11
データ抜き出し図 • dd のbs=1なのでむっちゃ遅い (別の方法を模索 ) • tail/head で削るほうが速い •
一連の処理を汎用化して GitHub に公開予定 2026/3/14 小江戸らぐ 第284 回活動報告会 12 JFIF SD_HEAD SD_FOOT HEAD FOOT RIFF (Chunk) (Chunk size) (Payload) RIFF_OFFSET RIFF_OFFSET + RIFF_TOTAL Chunk size + 8
Take Back Control & Breakthrough 2026/3/14 小江戸らぐ 第284 回活動報告会 13