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
82
フィード生成ツールの開発
rsato
0
200
YouTubeの動画を高画質でダウンロードしよう
rsato
0
490
ランダムな文字列を判定するには?
rsato
0
450
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
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
170
Workers Cache を知る
syumai
0
360
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
1
110
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
340
sbt 2.0: takeoff
eed3si9n
0
150
APNsからLive Activityを開始する話
yumnumm
0
170
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
250
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
940
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Design in an AI World
tapps
1
350
A Modern Web Designer's Workflow
chriscoyier
699
190k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Rails Girls Zürich Keynote
gr2m
96
14k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
560
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Facilitating Awesome Meetings
lara
57
7.2k
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