Android Reverse Engineering

Android Reverse Engineering: Decompiling and Rebuilding APKs with Apktool in Termux

অ্যান্ড্রয়েড অ্যাপ্লিকেশনের সোর্স কোড বিশ্লেষণ, কাস্টম স্ট্রিং এডিটিং কিংবা কোনো অ্যাপের ইন্টারনাল মেকানিজম বোঝার জন্য সিকিউরিটি এক্সপার্টরা রিভার্স ইঞ্জিনিয়ারিং (Reverse Engineering) পদ্ধতি ব্যবহার করে থাকেন। পিসি বা ভারী লিনাক্স ডেস্কটপ এনভায়রনমেন্ট ছাড়াও শুধুমাত্র একটি মোবাইল ডিভাইসের **Termux CLI**-এ **Apktool** সেটআপ করে এই পুরো কাজটি নিখুঁতভাবে সম্পন্ন করা সম্ভব।

Apktool মূলত ক্লোজড-সোর্স বাইনারি অ্যাপ ফাইলকে (.apk) ডিকোড করে এর রিসোর্স ইমেজ, লেআউট এক্সএমএল (XML) এবং কোডের স্ট্রাকচারকে Smali ফরমেটে রূপান্তর করে, যা পরবর্তীতে আবার রি-বিল্ড করা যায়।

১. জাভা এনভায়রনমেন্ট ও ডিপেন্ডেন্সি সেটআপ

Apktool পুরোপুরি জাভা (Java) ইঞ্জিনের ওপর চলে। তাই টার্মাক্সে প্রথমেই OpenJDK এবং এক্সট্রা টেকনিক্যাল বাইনারি টুলস সেটআপ করে নিতে হবে:

# টার্মাক্স রিপোজিটরি ও কোর টুলস সিঙ্ক করা
pkg update && pkg upgrade -y
pkg install openjdk-17 python wget strings -y

ধাপ ২: Apktool এবং রানিং স্ক্রিপ্ট ইনস্টলেশন

টার্মাক্সে কাস্টম বাইনারি পাথে Apktool এর লেটেস্ট জার (Jar) ফাইল এবং এর এক্সিকিউটেবল লঞ্চার স্ক্রিপ্ট কনফিগার করার মেথড:

# ১. বাইনারি ফোল্ডারে যাওয়া
cd $PREFIX/bin

# ২. অফিসিয়াল লঞ্চার রানিং স্ক্রিপ্ট ডাউনলোড ও পারমিশন সেটআপ
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
chmod +x apktool

# ৩. মূল Apktool Jar ফাইলটি ডাউনলোড করা (এখানে লেটেস্ট ভার্সন টাইপ করুন)
wget https://github.com/iBotPeaches/Apktool/releases/download/v2.10.0/apktool_2.10.0.jar -O apktool.jar

কনফিগারেশন চেক করার জন্য আপনার হোম ডিরেক্টরিতে এসে apktool লিখে এন্টার দিন। হেল্প মেনু শো করলে বুঝবেন ইঞ্জিন রেডি।

ধাপ ৩: প্র্যাক্টিক্যাল ডিকম্পাইল ও রি-বিল্ড পাইপলাইন

একটি টার্গেট অ্যাপ ফাইলকে এক্সট্রাক্ট করা এবং সোর্স লেভেলে এডিট করার পর পুনরায় প্যাকেজ করার কমান্ডসমূহ:

# ১. APK ডিকম্পাইল করা (এটি একটি ফোল্ডার তৈরি করবে)
apktool d target_app.apk

# ২. কাস্টম রিসোর্স বা Smali কোড পরিবর্তন করার পর অ্যাপটি পুনরায় বিল্ড করা
apktool b target_app_folder -o modified_app.apk

ক্রিটিক্যাল সিকিউরিটি নোট: নতুন তৈরি হওয়া modified_app.apk ফাইলটি সরাসরি অ্যান্ড্রয়েডে ইনস্টল হবে না। লিনাক্স কার্নেল সিকিউরিটির জন্য এটিকে অবশ্যই একটি ক্রিপ্টোগ্রাফিক কী দিয়ে সাইন (Sign) করে নিতে হবে। এর জন্য টার্মাক্সে apksigner (Build-tools এর অংশ) ব্যবহার করে অ্যাপটি সাইন করার পর ডিভাইসে রান করুন।