デコンパイルから発見!shared_preferencesに隠された秘密の文字列と真実 by chigichan24

FlutterKaigi 2024
LTセッション

デコンパイルから発見!shared_preferencesに隠された秘密の文字列と真実

chigichan24 chigichan24 chigichan24
2

概要

Androidアプリの難読化されたコードを見るのが趣味の筆者。ある日、Flutter製のAndroidアプリの多くには、共通のBase64エンコードされている文字列が使用されていることを発見しました。この文字列は、flutter/packagesの中の特定のデータ型に関連する重要な手がかりを含んでいることが判明。詳細はGitHubの公開アーカイブされたリポジトリでの調査により、これらの文字列がどのような目的で使用されていたのかが筆者の中で明らかになりました。

この発見は、特に、AndroidのSharedPreferencesの実装に対するFlutterのユニークなアプローチとマルチプラットフォームに対応するフレームワークとしての解決策の苦悩が垣間見えます。プロダクトの実装時には気にする必要のない部分、Flutterの1st partyライブラリの実装を深堀りしていきます。

<トークのアジェンダ>

  • アプリのデコンパイルについて
  • flutter/packageのshared_preferencesについて
  • 不自然に共通している3つの秘密の文字列
  • 秘密の文字列の目的とその背景

想定視聴者

  • flutter の 1st partyのライブラリの実装に興味がある人
  • shared_preferencesに隠された真実に興味がある人