<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hive on Qtnes</title><link>http://qtnes.com/tags/hive/</link><description>Recent content in Hive on Qtnes</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://qtnes.com/tags/hive/index.xml" rel="self" type="application/rss+xml"/><item><title>5 - MediterraneanPotions: Decrypting a Flutter App's Encrypted Database</title><link>http://qtnes.com/posts/5---mediterraneanpotions---decrypting-a-flutter-apps-encrypted-database/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>http://qtnes.com/posts/5---mediterraneanpotions---decrypting-a-flutter-apps-encrypted-database/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;MediterraneanPotions was a Flutter challenge built around a single encrypted asset: &lt;code&gt;potions.hive&lt;/code&gt;, a Hive key-value database where every record was AES-CBC encrypted. The AES key was hardcoded in the app&amp;rsquo;s native Dart binary. The Hive frame format embedded a per-record IV.&lt;/p&gt;
&lt;p&gt;The challenge was to find the key, understand the binary format, and decrypt all records.&lt;/p&gt;
&lt;h2 id="first-impressions"&gt;First Impressions&lt;/h2&gt;
&lt;p&gt;The APK was a Flutter application. That changed the decompilation landscape immediately: the main application logic was compiled into &lt;code&gt;libapp.so&lt;/code&gt; as native Dart code, not Java bytecode. JADX produced almost nothing useful beyond the Android framework glue.&lt;/p&gt;</description></item></channel></rss>