একটি .apk ফাইল থেকে উত্স কোড পান? [বন্ধ]


21

একটি .apk ফাইল রয়েছে, আমি কি এর উত্স কোড পেতে পারি এমন কোনও উপায় আছে?


7
এর আগে, আপনি কি প্যাকেজটি ওপেন সোর্স কিনা তা পরীক্ষা করে দেখেছেন?
অট--

একটি .apk কেবল একটি .zip ফাইল। তবে দুর্ভাগ্যক্রমে 'রিলিজ' এর জন্য কোনও অ্যাপ্লিকেশন সম্ভবত প্রোগার্ড দ্বারা সুরক্ষিত থাকবে
ড্যানিয়েল ল্যাপেজ 21

@ ম্যাথার রিড দ্য ওপ জিজ্ঞাসা করেছেন যে তিনি কোনও এপিআই থেকে কোডটি পেতে পারেন কিনা, এবং আমি উত্তর দিয়েছি যে এই ঘটনাকে কী বলা হয় এবং অন্তত একটি অনুরূপ অ্যাপ্লিকেশন তৈরি করা থেকে বিরত করার উপায়গুলি। তিনি কোডটি পেতে কীভাবে প্রতিরোধ করবেন তা বলছেন না তাই হ্যাঁ এটি প্রশ্নের উত্তর দেয়।
মানব হচ্ছে

উত্তর:


15

প্রোগার্ড ব্যবহার করা হলেও আপনি এখনও কিছু আকর্ষণীয় অন্তর্দৃষ্টি পেতে পারেন। এখানে একটি বিশদ ব্যাখ্যা সহ একটি স্ট্যাকওভারফ্লো প্রশ্ন: অ্যান্ড্রয়েড: একটি APK ফাইল থেকে উত্স কোড প্রাপ্ত করাবিস্তারিত গাইড সহ ইউটিউব ভিডিও । এবং এ সম্পর্কে একটি ব্লগ এন্ট্রি: একটি অ্যান্ড্রয়েড APK ফাইল থেকে উত্স কোডটি কীভাবে পুনরুদ্ধার করবেন


11

যদি আপনি ভাগ্যবান হন এবং আপনার .apkফাইলটি প্রগার্ড বা অ্যানালগ দ্বারা সুরক্ষিত না হয় , আপনি APK সরঞ্জাম ব্যবহার করতে পারেন । এটি রিভার্স ইঞ্জিনিয়ারিং 3 য় পক্ষ, বদ্ধ, বাইনারি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য একটি সরঞ্জাম।


Apktool কেবল স্মালি কোড তৈরি করে, জাভা কোড নয় - এটি একটি বড় পার্থক্য।
রবার্ট

2

এসও তে পার্ককুল গার্গের একটি কম্যুনিটি উইকি থেকে :


.Apk ফাইলগুলি ডিকোডিংয়ের পদ্ধতি, ধাপে ধাপে পদ্ধতি:

ধাপ 1:

  1. একটি নতুন ফোল্ডার তৈরি করুন এবং আপনি ডিকোড করতে চান এমন .apk ফাইলের অনুলিপি করুন।

  2. এখন এই .apk ফাইলের विस्तारকে .zip এ নামকরণ করুন (উদাহরণস্বরূপ filename.apk থেকে filename.zip এ পুনরায় নামকরণ) এবং সংরক্ষণ করুন। এখন আপনি ক্লাস.ডেক্স ফাইল ইত্যাদিতে অ্যাক্সেস করতে পারবেন এই পর্যায়ে আপনি ড্রামযোগ্য দেখতে পারবেন তবে এক্সএমএল এবং জাভা ফাইলগুলি না, তাই চালিয়ে যান।

ধাপ ২:

  1. এখন এই .zip ফাইলটি একই ফোল্ডারে (বা নতুন ফোল্ডার) এ বের করুন।

  2. ডেক্স 2জার ডাউনলোড করুন এবং এটি একই ফোল্ডারে (বা নতুন ফোল্ডার) এ বের করুন।

  3. ক্লাস.ডেক্স ফাইলটি ডেক্স 2জার ফোল্ডারে সরান।

  4. এখন কমান্ড প্রম্পট ওপেন করুন এবং ডিরেক্টরিটি সেই ফোল্ডারে (বা নতুন ফোল্ডার) পরিবর্তন করুন। তারপরে লিখুন d2j-dex2jar classes.dexএবং এন্টার টিপুন। আপনার এখন একই ফোল্ডারে ক্লাস.ডেক্স.ডেক্স ২জার ফাইল রয়েছে।

  5. জাভা ডিকম্পিলার ডাউনলোড করুন, জেডি-গুইতে ডাবল ক্লিক করুন, ওপেন ফাইলটিতে ক্লিক করুন, এবং সেই ফোল্ডারটি থেকে ক্লাস.ডেক্স.ডেক্স ২জার ফাইল খুলুন: এখন আপনি ক্লাস ফাইল পাবেন।

  6. এসআরসি নাম দিয়ে এই শ্রেণীর সমস্ত ফাইল (jd-gui এ, ফাইল -> সমস্ত উত্স সংরক্ষণ করুন) ক্লিক করুন। এই পর্যায়ে আপনি জাভা উত্স পান তবে .xML ফাইলগুলি এখনও অপঠনযোগ্য, তাই চালিয়ে যান।

ধাপ 3:

এবার আর একটি নতুন ফোল্ডার খুলুন

  1. আপনি ডিকোড করতে চান .apk ফাইলটি রাখুন

  2. Apktool এবং apktool ইনস্টল উইন্ডোর সর্বশেষ সংস্করণটি ডাউনলোড করুন (উভয়ই একই লিঙ্ক থেকে ডাউনলোড করা যেতে পারে) এবং তাদের একই ফোল্ডারে রাখুন

  3. ফ্রেমওয়ার্ক-রেস.এপকে ডাউনলোড করুন এবং এটি একই ফোল্ডারে রেখে দিন (সমস্ত এপিপি ফাইলের এই ফাইলের দরকার নেই, তবে এটি ক্ষতি করে না)

  4. একটি কমান্ড উইন্ডো খুলুন

  5. APKtool এর মূল ডিরেক্টরিতে নেভিগেট করুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন: apktool if framework-res.apk

  6. apktool d myApp.apk (যেখানে myApp.apk ফাইলের নামটি ডিকোড করতে চায় যা আপনি ডিকোড করতে চান)

এখন আপনি সেই ফোল্ডারে একটি ফাইল ফোল্ডার পাবেন এবং সহজেই এপিপির এক্সএমএল ফাইলগুলি পড়তে পারেন।

পদক্ষেপ 4:

এটি কোনও পদক্ষেপ নয় কেবলমাত্র উভয় ফোল্ডারের সামগ্রীর অনুলিপি (এক্ষেত্রে উভয় নতুন ফোল্ডার) একক প্রতিলিপি করতে

এবং উত্স কোড উপভোগ করুন ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.