মোবাইল ডেভেলপমেন্টে Reverse Engineering: এটি কী, সরঞ্জাম এবং বিশ্লেষণ পদ্ধতি

লেখক: IT Sectr প্রকাশিত: 2026-04-04 পড়ার সময়: 10 মিনিট

Reverse Engineering (রিভার্স ইঞ্জিনিয়ারিং) — সোর্স কোডে অ্যাক্সেস ছাড়াই মোবাইল অ্যাপ্লিকেশনের লজিক এবং কাঠামো পুনরুদ্ধার করা। Android এবং iOS-এর প্রেক্ষাপটে, এর অর্থ অ্যালগরিদম, এনক্রিপশন কী, API এন্ডপয়েন্ট এবং বিজনেস লজিক বের করার জন্য DEX/APK এবং Mach-O/IPA বাইনারি ফাইল ডিকম্পাইল করা। Veracode Security Research (2025) অনুসারে, শীর্ষ 200-এর মধ্যে 60% এর বেশি মোবাইল অ্যাপ্লিকেশনে কমপক্ষে একটি সূচক রয়েছে যা রিভার্স ইঞ্জিনিয়ারিংকে সহজ করে। Reverse Engineering শুধু আক্রমণের জন্য নয়, বরং নিরাপত্তা অডিট, পেটেন্ট বিশ্লেষণ এবং পেনিট্রেশন টেস্টিংয়ের জন্যও ব্যবহৃত হয়।

মূল বিষয়

  • Reverse Engineering হল সোর্স কোডে অ্যাক্সেস ছাড়াই অ্যাপ্লিকেশনের বাইনারি কোড বিশ্লেষণ করে তার লজিক, ডেটা এবং অ্যালগরিদম পুনরুদ্ধার করার প্রক্রিয়া
  • স্ট্যাটিক বিশ্লেষণ এর মধ্যে রয়েছে jadx-এর মাধ্যমে DEX/APK ডিকম্পাইলেশন, Ghidra-এর মাধ্যমে iOS বাইটকোড এবং apktool-এর মাধ্যমে রিসোর্স পড়া
  • ডায়নামিক বিশ্লেষণ অ্যাপ্লিকেশন থামিয়ে না দিয়ে রানটাইমে কল ইন্টারসেপ্ট করার জন্য Frida, Objection এবং Xposed-এর মাধ্যমে করা হয়
  • রিভার্স ইঞ্জিনিয়ারিং থেকে সুরক্ষা অবফাসকেশন (ProGuard, DexGuard), স্ট্রিং এনক্রিপশন, RASP এজেন্ট এবং APK ইন্টিগ্রিটি চেকের উপর ভিত্তি করে
  • আইনি অবস্থা রিভার্স ইঞ্জিনিয়ারিং এর পরিবর্তিত হয়: DMCA আন্তঃকার্যক্ষমতা এবং নিরাপত্তার জন্য এটি অনুমতি দেয়, কিন্তু লাইসেন্স এবং DRM বাইপাস নিষিদ্ধ করে

Reverse Engineering কী?

Reverse Engineering (রিভার্স ইঞ্জিনিয়ারিং) হল সফ্টওয়্যার বিশ্লেষণের একটি শৃঙ্খলা যা একটি অ্যাপ্লিকেশনের বাইনারি উপস্থাপনা থেকে তার বৈশিষ্ট্য, লজিক এবং কাঠামো পুনরুদ্ধার করার লক্ষ্যে কাজ করে। মোবাইল অ্যাপ্লিকেশনের জন্য, বিশ্লেষণের বিষয়বস্তু হল APK ফাইল (Android) এবং IPA ফাইল (iOS), যাতে কম্পাইল করা কোড, রিসোর্স, ম্যানিফেস্ট এবং সার্টিফিকেট থাকে। রিভার্স ইঞ্জিনিয়ারিংয়ের ফলাফল হল অ্যালগরিদম, প্রোটোকল, এনক্রিপশন কী, API স্কিমা এবং বিজনেস লজিক নিষ্কাশন।

রিভার্স ইঞ্জিনিয়ারিংয়ের উদ্দেশ্য বৈধ এবং অবৈধ এ বিভক্ত। বৈধ: নিরাপত্তা সরঞ্জাম তৈরি করতে ম্যালওয়্যার বিশ্লেষণ, দুর্বলতার জন্য নিজস্ব অ্যাপ্লিকেশন অডিট, বন্ধ প্রোটোকলের সাথে সামঞ্জস্য নিশ্চিত করা, পেটেন্ট বিশ্লেষণ এবং শিক্ষা। অবৈধ: বৌদ্ধিক সম্পত্তি চুরি, লাইসেন্স সীমাবদ্ধতা বাইপাস, পাইরেটেড কপি তৈরি এবং ব্যবহারকারীর ডেটা চুরি করতে অ্যাপ্লিকেশন পরিবর্তন। Google Play Protect (2025) অনুসারে, ব্যাংকিং অ্যাপ্লিকেশনের 78% দূষিত পরিবর্তন মূল APK-এর ভিত্তিতে রিভার্স ইঞ্জিনিয়ারিংয়ের মাধ্যমে তৈরি করা হয়।

রিভার্স ইঞ্জিনিয়ারিংয়ের পদ্ধতিতে দুটি প্রধান দিক অন্তর্ভুক্ত: স্ট্যাটিক বিশ্লেষণ (অ্যাপ্লিকেশন না চালিয়ে) এবং ডায়নামিক বিশ্লেষণ (এক্সিকিউশনের সময়)। প্রতিটি পদ্ধতি তথ্যের একটি ভিন্ন স্তর প্রদান করে। স্ট্যাটিক বিশ্লেষণ কোডের সম্পূর্ণ চিত্র দেয়, কিন্তু রানটাইম ডেটা ছাড়া। ডায়নামিক বিশ্লেষণ প্রকৃত আচরণ, ডেটা প্রবাহ, নেটওয়ার্ক কল প্রকাশ করে, কিন্তু শুধুমাত্র একটি নির্দিষ্ট এক্সিকিউশন দৃশ্যের মধ্যে। পেশাদার রিভার্স ইঞ্জিনিয়ারিং সবসময় উভয় পদ্ধতিকে একত্রিত করে।

স্ট্যাটিক বিশ্লেষণের সরঞ্জাম

স্ট্যাটিক বিশ্লেষণ হল রিভার্স ইঞ্জিনিয়ারিংয়ের প্রথম ধাপ। মূল APK বা IPA আনপ্যাক করা হয় এবং প্রতিটি উপাদান আলাদাভাবে বিশ্লেষণ করা হয়। প্রধান লক্ষ্য: DEX বাইটকোড, রিসোর্স, ম্যানিফেস্ট, নেটিভ লাইব্রেরি (.so, .dylib) এবং মেটাডেটা।

jadx — DEX থেকে Java ডিকম্পাইলার

jadx Android অ্যাপ্লিকেশনের স্ট্যাটিক বিশ্লেষণের জন্য প্রধান সরঞ্জাম। এটি DEX বাইটকোডকে ন্যূনতম ক্ষতি সহ পঠনযোগ্য Java কোডে রূপান্তর করে। jadx সমর্থন করে: মাল্টিডেক্স ডিকম্পাইলেশন, ল্যাম্বডা এবং ইনলাইন Kotlin ক্লাস চিহ্নিতকরণ, Gradle প্রকল্পে রপ্তানি। অবফাসকেটেড কোডের (ProGuard) জন্য, jadx a, b, c নামের কোড দেখায়, কিন্তু ক্লাস গঠন এবং কল ক্রম সংরক্ষিত থাকে। স্বাধীন পরীক্ষা অনুসারে, jadx অবফাসকেশন সহও 85–92% কোড সঠিকভাবে ডিকম্পাইল করে।

apktool — রিসোর্স আনপ্যাকিং

apktool APK কে smali কোডে (DEX অ্যাসেম্বলার) ডিকোড করে এবং রিসোর্স পঠনযোগ্য আকারে পুনরুদ্ধার করে: AndroidManifest.xml AXML থেকে পঠনযোগ্য XML-এ রূপান্তরিত হয়, লেআউট XML মার্কআপে, strings.xml প্লেইন টেক্সটে। apktool রিসোর্স পরিবর্তন এবং APK পুনর্নির্মাণের অনুমতি দেয়। apktool-এর মাধ্যমে আনপ্যাক এবং রিসোর্স প্রতিস্থাপনের পরে, অ্যাপ্লিকেশনটি পরিবর্তিত বিষয়বস্তু সহ ইনস্টল করা যেতে পারে।

Ghidra — নেটিভ লাইব্রেরি বিশ্লেষণ

Ghidra (NSA) একটি রিভার্স ইঞ্জিনিয়ারিং ফ্রেমওয়ার্ক যা Android-এ .so লাইব্রেরি এবং iOS-এ .dylib বিশ্লেষণের জন্য অপরিহার্য। Ghidra ARM64 কোড ডিসঅ্যাসেম্বল করে, C সিউডোকোড পুনর্নির্মাণ করে এবং কল গ্রাফ তৈরি করে। মোবাইল রিভার্স ইঞ্জিনিয়ারিংয়ের জন্য, Ghidra ক্রিপ্টোগ্রাফি এবং DRM প্রক্রিয়ার নেটিভ বাস্তবায়ন বিশ্লেষণ করতে ব্যবহৃত হয়। Ghidra বিশ্লেষণ অটোমেশনের জন্য Python এবং Java-তে স্ক্রিপ্টিং সমর্থন করে।

bash
# APK আনপ্যাকিং এবং ডিকম্পাইলেশন
$ jadx -d output_dir app.apk

# apktool-এর মাধ্যমে রিসোর্স আনপ্যাকিং
$ apktool d app.apk -o app_unpacked

# Ghidra-এর মাধ্যমে নেটিভ লাইব্রেরি বিশ্লেষণ
$ ghidra app.apk/lib/arm64-v8a/libnative.so

# DEX-এ স্ট্রিং কনস্ট্যান্ট অনুসন্ধান
$ strings classes.dex | grep -i api_key

ডায়নামিক বিশ্লেষণের সরঞ্জাম

ডায়নামিক বিশ্লেষণ চলমান অ্যাপ্লিকেশনে করা হয়। বিশ্লেষক প্রক্রিয়ার সাথে সংযুক্ত হয় এবং রিয়েল টাইমে ফাংশন কল, আর্গুমেন্ট এবং রিটার্ন ভ্যালু ইন্টারসেপ্ট করে।

Frida — সার্বজনীন ইন্সট্রুমেন্টেশন সরঞ্জাম

Frida মোবাইল অ্যাপ্লিকেশনের ডায়নামিক বিশ্লেষণের জন্য শীর্ষস্থানীয় সরঞ্জাম। Frida অ্যাপ্লিকেশন প্রক্রিয়ায় (Android ART বা iOS অ্যাপ) একটি JavaScript ইঞ্জিন ইনজেক্ট করে এবং Java/Objective-C এবং C/C++ উভয় ফাংশন কল ইন্টারসেপ্ট করার অনুমতি দেয়। Frida-এর মাধ্যমে, রিভার্স ইঞ্জিনিয়াররা নিম্নলিখিত কাজ করতে পারেন: প্যারামিটার সহ AES.decrypt() পদ্ধতির সমস্ত কল লগ করা, রিটার্ন ভ্যালু ইচ্ছামত পরিবর্তন করা, Universal Android SSL Unpin-এর মাধ্যমে SSL-pinning সরানো, Stalker-এর মাধ্যমে নেটিভ কল ট্রেস করা। Frida APK/IPA পরিবর্তন না করেই কাজ করে, যা এটিকে পেনিট্রেশন টেস্টিংয়ের জন্য অপরিহার্য করে তোলে।

Objection — Frida র্যাপার

Objection JavaScript স্ক্রিপ্ট না লিখেই সাধারণ রিভার্স ইঞ্জিনিয়ারিং কাজের জন্য প্রস্তুত কমান্ড প্রদান করে: disable-pinning (SSL pinning নিষ্ক্রিয়), dump-keychain (iOS), explore (ক্লাস হায়ারার্কি ব্রাউজ), memory search (মেমরিতে স্ট্রিং অনুসন্ধান)। Objection একটি লাইন কোড না লিখেই সম্পূর্ণ ডায়নামিক বিশ্লেষণের অনুমতি দেয়। iOS অ্যাপ্লিকেশনের জন্য, Objection স্বয়ংক্রিয়ভাবে NSURLSession, CFNetwork এবং NSKeyedArchiver কল খুঁজে এবং লগ করে।

Xposed Framework

Xposed Android-এর জন্য একটি ফ্রেমওয়ার্ক যা Zygote-এ app_process ফাইল প্রতিস্থাপন করে কাজ করে। Frida-এর বিপরীতে, Xposed-এর ইনস্টলেশনের পরে রুট অ্যাক্সেসের প্রয়োজন নেই। Xposed মডিউল যেকোনো অ্যাপ্লিকেশনে মেথড কল ইন্টারসেপ্ট করতে পারে। রিভার্স ইঞ্জিনিয়ারিংয়ের জন্য, Xposed দীর্ঘমেয়াদী বিশ্লেষণের জন্য সুবিধাজনক: মডিউল ইনস্টল হয় এবং ক্রমাগত চলে, বিভিন্ন দৃশ্যে অ্যাপ্লিকেশনের আচরণ লগ করে। Xposed Android 8.1 পর্যন্ত সমর্থন করে; Android 9+ এর জন্য SandHook-এর উপর ভিত্তি করে EdXposed ব্যবহার করা হয়।

js
// Frida: অ্যাপ্লিকেশনে decrypt() মেথড ইন্টারসেপ্ট করা
let aesClass = Java.use("javax.crypto.Cipher");

aesClass.doFinal.overload(
    "[B", "int", "int"
).implementation = function(
    input, offset, len
) {
    console("[AES] decrypt called, len=" + len);
    return this.doFinal(input, offset, len);
};

Android অ্যাপ্লিকেশনের রিভার্স ইঞ্জিনিয়ারিং প্রক্রিয়া

রিভার্স ইঞ্জিনিয়ারিংয়ের মানক কার্যপ্রবাহ ধারাবাহিক ধাপ নিয়ে গঠিত, যার প্রতিটি তথ্যের একটি নির্দিষ্ট স্তর প্রদান করে।

ধাপ 1: তথ্য সংগ্রহ

বিশ্লেষক মেটাডেটা স্তরে APK পরীক্ষা করে: targetSdk, uses-permission (কোন অনুমতি চাওয়া হয়েছে), intent-filter এবং exported উপাদান। অনুমতিগুলি নির্দেশ করতে পারে কোন API ব্যবহার করা হয়েছে (android.permission.CAMERA → ক্যামেরা, android.permission.RECORD_AUDIO → অডিও)। exported অ্যাক্টিভিটিগুলি অনুমোদন ছাড়াই প্রবেশ পয়েন্ট চিহ্নিত করে। এই ধাপটি aapt বা ApkAnalyzer-এর মাধ্যমে করা হয় এবং 1–2 মিনিট সময় নেয়।

ধাপ 2: DEX ডিকম্পাইলেশন

APK আনপ্যাক করা হয় এবং classes.dex (বা multidex) jadx-এ ইনপুট দেওয়া হয়। আউটপুট প্যাকেজে সংগঠিত Java/Kotlin কোড। বিশ্লেষক মূল ক্লাস খোঁজে: CryptoUtils, ApiClient, AuthManager, DatabaseHelper, এবং কোন অ্যালগরিদম ব্যবহার করা হয়েছে তা পরীক্ষা করে। যদি কোডে AES/CBC/PKCS5Padding-এর মতো স্ট্রিং থাকে, তাহলে অ্যাপ্লিকেশন এনক্রিপশন ব্যবহার করে এবং কী খুঁজে বের করতে হবে। এই ধাপে, হার্ডকোডেড কী, API URL, OAuth টোকেন এবং গোপন তথ্য চিহ্নিত করা হয়। অবফাসকেশন ছাড়া, সম্পূর্ণ অ্যাপ্লিকেশন কোড একটি সাধারণ Java প্রকল্পের মতো পড়া যায়।

ধাপ 3: ট্রাফিক বিশ্লেষণ

SSL-pinning নিষ্ক্রিয় করতে Frida বা Objection সেটআপ করার পরে, বিশ্লেষক অ্যাপ্লিকেশন চালু করে এবং Burp Suite বা mitmproxy-এর মাধ্যমে নেটওয়ার্ক ট্রাফিক ইন্টারসেপ্ট করে। ট্রাফিক ডেটা API স্কিমা প্রকাশ করে: কোন এন্ডপয়েন্ট, কোন প্যারামিটার, কোন ফরম্যাটে। যদি সম্ভব হয়, বিশ্লেষক অনুরোধ পরিবর্তন করে এবং ভুল বা দূষিত ডেটায় সার্ভারের প্রতিক্রিয়া পরীক্ষা করে। সার্ভার-সাইড ভ্যালিডেশনের অভাব একটি সরাসরি দুর্বলতা যা এই ধাপে আবিষ্কৃত হয়।

ধাপ 4: data.json-এ রেকর্ডিং

বিশ্লেষণের ফলাফল কাঠামোবদ্ধ আকারে রেকর্ড করা হয়। প্রতিটি পাওয়া দুর্বল পয়েন্টের জন্য উল্লেখ করা হয়: ক্লাস এবং মেথড, দুর্বলতার বর্ণনা, শোষণ ভেক্টর এবং সংশোধন সুপারিশ। এই ডেটাসেট ডেভেলপমেন্ট টিমকে পাঠানো হয় বা পেনিট্রেশন টেস্ট রিপোর্ট তৈরিতে ব্যবহৃত হয়। স্বয়ংক্রিয় পরিবেশে (MobSF), স্ট্যাটিক এবং ডায়নামিক বিশ্লেষণের ফলাফলের ভিত্তিতে রিপোর্ট স্বয়ংক্রিয়ভাবে তৈরি হয়।

iOS অ্যাপ্লিকেশনের রিভার্স ইঞ্জিনিয়ারিংয়ের বৈশিষ্ট্য

iOS অ্যাপ্লিকেশনের রিভার্স ইঞ্জিনিয়ারিং Android-এর তুলনায় বেশি কঠিন কারণ Apple-এর কঠোর নিরাপত্তা আর্কিটেকচার এবং স্টক ডিভাইসে ফাইল সিস্টেমে সরাসরি অ্যাক্সেসের অভাব। iOS বিশ্লেষণের জন্য জেলব্রেক প্রয়োজন।

Mach-O স্ট্যাটিক বিশ্লেষণ

IPA আর্কাইভে Mach-O বাইনারি থাকে — Apple-এর সার্বজনীন এক্সিকিউটেবল ফাইল ফরম্যাট। ডিকম্পাইলেশনের জন্য Hopper Disassembler বা IDA Pro ব্যবহার করা হয়। Android DEX-এর বিপরীতে, যা ন্যূনতম ক্ষতির সাথে Java-তে ডিকম্পাইল হয়, Mach-O-তে নেটিভ ARM64 কোড থাকে যা C সিউডোকোডে কম নির্ভুলতার সাথে পুনর্নির্মিত হয়। Hopper 60–70% পুনর্নির্মাণ অর্জন করে; বাকিটা অ্যাসেম্বলি স্তরে বিশ্লেষণ করতে হয়।

iOS-এর জন্য Frida-এর সাথে ডায়নামিক বিশ্লেষণ

iOS-এ Frida-র জন্য জেলব্রেক এবং frida-server ইনস্টল করা প্রয়োজন। সংযোগের পরে, Frida API মেসেজ রাউটিং-এর মাধ্যমে Objective-C মেথড ইন্টারসেপ্ট করে। iOS অ্যাপ্লিকেশনের জন্য, একটি সাধারণ দৃশ্যের মধ্যে রয়েছে: HTTP অনুরোধ লগ করতে NSURLSession.dataTaskWithRequest ইন্টারসেপ্ট করা, সিরিয়ালাইজড ডেটা বিশ্লেষণের জন্য NSKeyedUnarchiver ইন্টারসেপ্ট করা এবং frida-trace-এর মাধ্যমে CoreData কোয়েরি ট্রেস করা। Frida iOS 15–17-এর জন্য Dopamine জেলব্রেক প্রকাশের সাথে উপলব্ধ হয়েছে।

IPA পরিবর্তন

রিভার্স ইঞ্জিনিয়ারিংয়ে IPA পরিবর্তন এবং তারপর পুনরায় প্যাকেজিং এবং ডিভাইসে ইনস্টলেশন অন্তর্ভুক্ত থাকতে পারে। সরঞ্জামগুলির মধ্যে রয়েছে: আনপ্যাকিংয়ের জন্য ipatool, সেকশন দেখার জন্য MachOView এবং কোড ইনজেকশনের জন্য optool। পরিবর্তনের পরে, জেলব্রেক করা ডিভাইসে ইনস্টলেশনের জন্য IPA ldid বা fastlane sigh-এর মাধ্যমে স্বাক্ষরিত হয়। iOS 16+-এর জন্য, কোড স্বাক্ষর Secure Enclave স্তরে যাচাই করা হয় এবং পরিবর্তিত IPA নন-জেলব্রেক ডিভাইসে চলবে না।

js
// Frida: iOS অ্যাপ্লিকেশনে HTTP অনুরোধ ইন্টারসেপ্ট করা
if (ObjC.available) {
    let NSURLSession = ObjC.classes.NSURLSession;
    let dataTaskWithRequest = ObjC.protocol("NSURLSessionDelegate")
        .method("- URLSession:dataTask:didReceiveData:");
    Interceptor.attach(dataTaskWithRequest.implementation, {
        onEnter(args) {
            let data = ObjC.Object(args[3]);
            console("[HTTP Response]", data.toString());
        }
    });
}

রিভার্স ইঞ্জিনিয়ারিং থেকে সুরক্ষার পদ্ধতি

রিভার্স ইঞ্জিনিয়ারিং থেকে সুরক্ষা স্তরিত নিরাপত্তার নীতি অনুসরণ করে: কোনো একক পদ্ধতি 100% সুরক্ষা প্রদান করে না, কিন্তু সংমিশ্রণ রিভার্স ইঞ্জিনিয়ারিংকে অর্থনৈতিকভাবে অলাভজনক করে তোলে।

কোড অবফাসকেশন

মৌলিক স্তর হল Android-এর জন্য ProGuard, যা ক্লাস এবং মেথডের নাম একক-অক্ষরের নামে প্রতিস্থাপন করে। বর্ধিত সুরক্ষার জন্য, DexGuard ওভারলোড ইন্ডাকশন (বিভিন্ন স্বাক্ষর এবং একই নামের একাধিক মেথড) এবং AES-256 স্ট্রিং এনক্রিপশন যোগ করে। অবফাসকেশন কোড বিশ্লেষণের সময় স্তর অনুসারে 5 মিনিট থেকে 5–20 ঘন্টা বাড়িয়ে দেয়। DexGuard অতিরিক্তভাবে কন্ট্রোল ফ্লো অবফাসকেট করে, কোড jadx-এর জন্য অপাঠ্য করে তোলে।

কনস্ট্যান্ট এনক্রিপশন

সমস্ত স্ট্রিং কনস্ট্যান্ট — URL, কী, টোকেন, SQL কোয়েরি — বিল্ড সময়ে এনক্রিপ্ট করা হয় এবং রানটাইমে ডিক্রিপ্ট করা হয়। এটি DEX ফাইলে স্ট্রিং-এর স্ট্যাটিক বিশ্লেষণ থেকে রক্ষা করে। app.apk-এ strings চালানো একজন আক্রমণকারী কোনো API এন্ডপয়েন্ট দেখতে পাবে না। ডিকম্পাইলেশনের পরেও, সমস্ত স্ট্রিং বাইনারি ডেটা হিসাবে প্রদর্শিত হয়। প্রতিটি স্ট্রিং একটি পৃথক কী ব্যবহার করতে পারে, যা ডিঅবফাসকেশনকে জটিল করে তোলে।

RASP এবং অখণ্ডতা পরীক্ষা

অ্যাপ্লিকেশনের ভিতরে একটি RASP এজেন্ট রানটাইমে Frida এবং ডিবাগিং সনাক্ত করে। APK-এর SHA-256 হ্যাশের মাধ্যমে অখণ্ডতা পরীক্ষা অ্যাপ্লিকেশনের পরিবর্তিত সংস্করণ চালানো প্রতিরোধ করে। যদি APK হ্যাশ রেফারেন্স হ্যাশের (নেটিভ স্তরে সংরক্ষিত) সাথে মেলে না, তাহলে অ্যাপ্লিকেশন বন্ধ হয়ে যায়। এটি APK পরিবর্তনের উপর ভিত্তি করে আক্রমণ ব্লক করে, যার মধ্যে রিপ্যাকেজিং অন্তর্ভুক্ত।

সার্ভার-সাইড সুরক্ষা

গুরুত্বপূর্ণ বিজনেস লজিক ক্লায়েন্টের পরিবর্তে সার্ভারে কার্যকর করা উচিত। এমনকি যদি একজন আক্রমণকারী অ্যাপ্লিকেশনটি সম্পূর্ণরূপে ডিকম্পাইল করে, সার্ভার কোড দুর্গম থেকে যায়। সমস্ত অনুরোধ এবং প্যারামিটারের সার্ভার-সাইড ভ্যালিডেশন রিভার্স ইঞ্জিনিয়ারিংয়ের সময় আবিষ্কৃত দুর্বলতার শোষণ প্রতিরোধ করে। সার্ভার অ্যাটেস্টেশন Play Integrity API বা App Attest-এর মাধ্যমে নিশ্চিত করে যে অনুরোধটি একটি প্রকৃত, অপরিবর্তিত অ্যাপ্লিকেশন থেকে আসছে।

সচরাচর জিজ্ঞাসা

মোবাইল অ্যাপ্লিকেশনের রিভার্স ইঞ্জিনিয়ারিং কি আইনত বৈধ?

মার্কিন যুক্তরাষ্ট্রে, রিভার্স ইঞ্জিনিয়ারিং DMCA দ্বারা নিয়ন্ত্রিত হয় — এটি আন্তঃকার্যক্ষমতা, নিরাপত্তা পরীক্ষা এবং আর্কাইভাল উদ্দেশ্যে অনুমোদিত। প্রযুক্তিগত সুরক্ষা ব্যবস্থা (DRM) বাইপাস নিষিদ্ধ। ইউরোপে, EUCD-এর ধারা 6 DMCA-এর অনুরূপ। রাশিয়ায়, কপিরাইট ধারকের সম্মতি ছাড়া রিভার্স ইঞ্জিনিয়ারিংকে কপিরাইট লঙ্ঘন হিসাবে বিবেচনা করা যেতে পারে। বাণিজ্যিক রিভার্স ইঞ্জিনিয়ারিংয়ের আগে আইনি পরামর্শ বাধ্যতামূলক।

একটি অ্যাপ্লিকেশনকে কি 100% রিভার্স ইঞ্জিনিয়ারিং থেকে রক্ষা করা যায়?

না। আক্রমণকারীর ডিভাইসে কার্যকর হওয়া যেকোনো কোড বিশ্লেষণ করা যেতে পারে — এটি ক্লায়েন্ট-সাইড সুরক্ষা মডেলের একটি মৌলিক সীমাবদ্ধতা। সুরক্ষার লক্ষ্য হল রিভার্স ইঞ্জিনিয়ারিংকে অর্থনৈতিকভাবে অনাকর্ষণীয় করা: সময় এবং সংস্থান ব্যয় প্রাপ্ত ফলাফলের মানকে ছাড়িয়ে যাওয়া উচিত। সংমিশ্রণ অবফাসকেশন, RASP এবং সার্ভার-সাইড লজিকের বর্তমান সুরক্ষা মান।

APK রিপ্যাকেজিং (repackaging) কী?

রিপ্যাকেজিং হল রিভার্স ইঞ্জিনিয়ারিং-এর মাধ্যমে অ্যাপ্লিকেশন পরিবর্তন এবং তারপর APK পুনর্নির্মাণ। আক্রমণকারী apktool-এর মাধ্যমে APK আনপ্যাক করে, দূষিত কোড যোগ করে বা API কী প্রতিস্থাপন করে, পুনর্নির্মাণ করে এবং নিজস্ব সার্টিফিকেট দিয়ে স্বাক্ষর করে। রিপ্যাকেজিং Kaspersky Threat Report (2025) অনুসারে Android-এর সমস্ত আক্রমণের 86% গঠন করে। প্রতিকার: রানটাইমে ডিজিটাল স্বাক্ষর পরীক্ষা করুন।

Frida কীভাবে SSL-pinning বাইপাস করে?

Frida স্ক্রিপ্ট Universal Android SSL Unpin iOS-এ TrustManager.checkServerTrusted এবং ServerTrustManager কল ইন্টারসেপ্ট করে, বাস্তবায়নকে allow-all দিয়ে প্রতিস্থাপন করে। OkHttp এবং URLConnection-এ X509TrustManager মেথডের ইন্টারসেপশনও ব্যবহৃত হয়। SSL-pinning Frida-এর সাথে একটি প্রস্তুত স্ক্রিপ্ট ব্যবহার করে 10 সেকেন্ডে বাইপাস করা যায়। আরও শক্তিশালী সুরক্ষা হল সার্ভার-সাইড সার্টিফিকেট যাচাইয়ের মাধ্যমে সার্টিফিকেট ট্রান্সপারেন্সি।

কোন ভাষাগুলি রিভার্স ইঞ্জিনিয়ার করা সবচেয়ে কঠিন?

.so/.dylib লাইব্রেরিতে নেটিভ C/C++ কোড DEX-এ Java-র তুলনায় রিভার্স করা উল্লেখযোগ্যভাবে কঠিন। PGO এবং Osize কম্পাইলেশন সহ Swift Objective-C-র তুলনায় আরও অবফাসকেটেড বাইনারি তৈরি করে। Rust রানটাইম মেটাডেটা ছাড়া এবং Objective-C-র মানক র্যাপার ছাড়া নেটিভ কোডে কম্পাইল হয়, যা এটিকে আধুনিক মোবাইল ডেভেলপমেন্ট ভাষাগুলির মধ্যে রিভার্স ইঞ্জিনিয়ারিংয়ের জন্য সবচেয়ে কঠিন করে তোলে।

সারসংক্ষেপ

  • Reverse Engineering স্ট্যাটিক বিশ্লেষণ (jadx, Ghidra, Hopper) এবং ডায়নামিক ইন্সট্রুমেন্টেশন (Frida, Xposed, Objection) এর মাধ্যমে বাইনারি কোড থেকে অ্যাপ্লিকেশন লজিক পুনরুদ্ধার করে
  • স্ট্যাটিক বিশ্লেষণ Android অ্যাপ্লিকেশনের jadx-এর মাধ্যমে DEX ডিকম্পাইলেশন এবং apktool-এর মাধ্যমে রিসোর্স আনপ্যাকিং দিয়ে শুরু হয়, 90% পর্যন্ত Java কোড পুনরুদ্ধার করে
  • ডায়নামিক বিশ্লেষণ Frida-এর মাধ্যমে রানটাইমে কল ইন্টারসেপ্ট, SSL-pinning নিষ্ক্রিয় এবং সমস্ত মেথড আর্গুমেন্ট ও রিটার্ন ভ্যালু লগ করার অনুমতি দেয়
  • iOS-এ Reverse Engineering এর জন্য জেলব্রেক এবং Hopper/IDA Pro-এর মাধ্যমে ARM64 বাইনারি নিয়ে কাজ করা প্রয়োজন, যা Android-এ DEX বিশ্লেষণের চেয়ে উল্লেখযোগ্যভাবে জটিল
  • রিভার্স ইঞ্জিনিয়ারিং থেকে সুরক্ষা এর মধ্যে রয়েছে অবফাসকেশন (ProGuard/DexGuard), কনস্ট্যান্ট এনক্রিপশন, Frida সনাক্তকরণের জন্য RASP এজেন্ট এবং Play Integrity API-এর মাধ্যমে সার্ভার অ্যাটেস্টেশন
  • রিভার্স ইঞ্জিনিয়ারিং থেকে 100% সুরক্ষা অসম্ভব — লক্ষ্য হল আক্রমণের খরচ সুরক্ষিত ডেটার মানের চেয়ে বেশি করা
  • APK রিপ্যাকেজিং মোবাইল অ্যাপ্লিকেশনের সবচেয়ে ব্যাপক আক্রমণ এবং রানটাইমে ডিজিটাল স্বাক্ষর পরীক্ষা এবং সার্ভার-সাইড অখণ্ডতা যাচাইয়ের মাধ্যমে প্রতিরোধ করা হয়

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন