Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
写真に埋め込まれた音声データを救出せよ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
R SATO
March 14, 2026
Programming
110
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
75
フィード生成ツールの開発
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
120
タイムラプスビデオの作り方 / How to create Time-lapse video
rsato
1
630
Other Decks in Programming
See All in Programming
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
210
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
140
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
130
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
560
リアルな遅延を測る仕様
kota_yata
1
140
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
140
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
300
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.7k
Embracing the Ebb and Flow
colly
88
5.2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
580
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
エンジニアに許された特別な時間の終わり
watany
108
250k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Become a Pro
speakerdeck
PRO
31
6.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Six Lessons from altMBA
skipperchong
29
4.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
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