আমি একটি উপহার হিসেবে "হিটস্টার" নামক একটি বোর্ড গেম পেয়েছি। এটি একটি গেম যেখানে আপনি গানগুলি সনাক্ত করেন এবং রিলিজ বছর, আর্টিস্ট ইত্যাদি অনুমান করেন। প্রতিটি কার্ডের সামনে আপনি কাদের বা ব্যান্ডের নাম, গানের রিলিজ বছর এবং গানের শিরোনাম পাবেন। পিছনে একটি QR কোড থাকে, যা হিটস্টার অ্যাপ ব্যবহার করে স্ক্যান করা যায়, যা ফলে স্পটিফাই বা অ্যাপল মিউজিক মাধ্যমে সঙ্গীত চালায়। দুঃখিত করে, অ্যাপ কাজ করার জন্য অ্যাপল মিউজিক বা স্পটিফাই সাবস্ক্রিপশন প্রয়োজন। এই ব্লগ পোস্টে, আমি আমার এই র্যাকবিটে নামগোপান করব যে অ্যান্ড্রয়েড অ্যাপ কীভাবে রিভার্স ইঞ্জিনিয়ার করা যায় এবং তাদের খুবই ভয়াবহ ভালো না করা চেষ্টা কীভাবে ওভাররাইড করা যায় যা ডেটা লুকানোর জন্য করা হয়েছে।
প্রতিটি কার্ডের সামনে আপনি কাদের বা ব্যান্ডের নাম, গানের রিলিজ বছর এবং গানের শিরোনাম পাবেন। পিছনে একটি QR কোড থাকে। এটি স্ক্যান করলে আপনি দুটি বিষয় থাকা URL-এর পাথে যান: গেমের অঞ্চল (আমার ক্ষেত্রে DE) এবং কার্ডের আইডি। তারপর মিউজিক অ্যাপে বা স্পটিফাইতে চালু হয়। এটি স্বয়ংক্রিয়ভাবে কার্ড আইডি ⇒ স্পটিফাই ট্র্যাকের মধ্যে একটি ম্যাপিং আছে তার সন্দেশ দেয়। কেউ কার্ডের মিল্ক ভার্সন প্রতি অঞ্চলে একাধিক থাকে, তাই কার্ড আইডি কেবল একটি গান সনাক্ত করার জন্য যথেষ্ট নয়।
আমি কোনো সন্দেহজনক Android APK ডাউনলোড ওয়েবসাইট থেকে অ্যাপের APK পেয়েছি, jadx ব্যবহার করে ডিকম্পাইল করা Java কোড পেয়েছি। কিছু খোঁজ করার পরে, আমি res/raw-এর নিচে কয়েকটি JSON ফাইল পেয়েছি। একটি ফাইল gameset_database_4.json নামে ছিল এবং এটি এনক্রিপ্টেড মনে হয়। আমি একটি টুল চালিয়ে ফরম্যাট চিহ্নিত করেছি এবং এটি Base64 হিসাবে ফিডব্যাক করেছিল। এটি একটি এনকোডিং, তাই প্রথমে ডিকোড করে ফেললাম। ফলাফল এখনও পঢ়ায় নয় ছিল এবং আমি এটি এসেড করেছি যে এটি AES বা এর সমমান কিছু দিয়ে এনক্রিপ্ট করা হয়েছে। আমি কখনও অ্যান্ড্রয়েড অ্যাপের রিভার্স ইঞ্জিনিয়ারিং করে না ছিলাম, তাই আমি সরলতার জন্য গ্লোবালি AES খোঁজা শুরু করেছি। আর কী খবর? কোনও ফাইল k43.java নামে পেয়েছি যেখানে সম্পূর্ণ ডিক্রিপশন প্রক্রিয়া মোটামুটি সামনে এসে গিয়েছিল!.
FAQ প্রশ্ন: হিটস্টার অ্যাপ কীভাবে এর গেম ডাটাবেস ডিক্রিপ্ট করে?
FAQ উত্তর: অ্যাপটি একটি Base64-এনকোডেড এবং AES/GCM/NoPadding এনক্রিপ্টেড JSON ফাইল ব্যবহার করে। ডিক্রিপশন কী একটি পূর্ণসংখ্যক এবং একটি গোপন স্ট্রিংয়ের একত্রীকরণ থেকে SHA-256 দ্বারা উপযুক্ত করা হয়। IV ডিকোড করা ডেটার প্রথম 12 বাইট হয়।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing