android - সফটওয - সপটার তৈরি




একটি APK ফাইল থেকে সোর্স কোড পেতে একটি উপায় আছে কি? (11)

আমার ল্যাপটপের হার্ড ড্রাইভটি ক্র্যাশ হয়েছে এবং আমি গত দুই মাসে যে কোনও অ্যাপ্লিকেশনের জন্য সমস্ত সোর্স কোড হারিয়েছি। আমার কাছে এপিএইচ ফাইল রয়েছে যা আমি আমার বন্ধুদের কাছে প্রেরণ করেছি যখন এটি বন্ধুর কাছে পাঠানো হয়েছিল।

এই এপিকে ফাইল থেকে আমার সোর্স কোড বের করার কোন উপায় আছে কি?


apktool কাজ করবে। সোর্স কোডটি বের করার জন্য কীস্টোরটি এমনকি আপনার জানা দরকার নেই (যা একটু ভীতিকর)। প্রধান নেতিবাচক দিক হল উৎসটি জাভা পরিবর্তে স্মালি ফর্ম্যাটে উপস্থাপিত হয়। আইকন এবং main.xml মত অন্যান্য ফাইল পুরোপুরি জরিমানা মাধ্যমে আসা যদিও এবং অন্তত যারা পুনরুদ্ধার আপনার সময় মূল্য হতে পারে। অবশেষে, আপনাকে সম্ভবত আপনার জাভা কোডটি স্ক্র্যাচ থেকে পুনরায় লিখতে হবে।

আপনি here apktool খুঁজে পেতে পারেন। শুধু apktool এবং উপযুক্ত সহায়ক (উইন্ডোজ, লিনাক্স, অথবা ম্যাক অপারেটিং সিস্টেমের জন্য) ডাউনলোড করুন। আমি তাদের আনপ্যাক করার জন্য 7-জিপ হিসাবে একটি সরঞ্জাম ব্যবহার করার সুপারিশ।


আপনি DexPatcher চেষ্টা করতে পারেন। এটি এমনকি অ্যান্ড্রয়েড স্টুডিও সঙ্গে একীভূত। এটি অভ্যন্তরীণভাবে apktool এবং Dex2Jar ব্যবহার করে।
আপনি স্বাধীনভাবে পাশাপাশি যারা সরঞ্জাম ব্যবহার করতে পারেন। apktool decompiles apk, এবং extracts .dex ফাইল, যা Dex2jar ব্যবহার করে আরও জার রূপান্তর করা যেতে পারে। জার -জিআইআই ব্যবহার করে জারকে বিভক্ত করা যেতে পারে। আপনি যে সরঞ্জাম সাহায্যে জাভা কোড দেখতে পারেন। যদিও প্রকৃত কোডটি ডিকম্পাইল কোডের সাদৃশ্য নিশ্চিত করা যাবে না। কিছু উন্নত কোড অবাঞ্ছিত সরঞ্জামগুলি বাজারে উপলব্ধ রয়েছে, যা কোডটিকে জগাখিচুড়ি করে তুলতে কঠিন করে তোলে। যেমন। Proguard


আমি ব্যক্তিগতভাবে উৎস কোড পেতে জাভা অ্যান্ড্রয়েড অ্যাপ্লিকেশন দেখান সুপারিশ। আপনি খেলার দোকান থেকে বা here থেকে এটি ডাউনলোড করতে পারেন


উৎস দেখতে সহজ এক হতে পারে:

অ্যান্ড্রয়েড স্টুডিওতে 2.3, Build -> Analyze APK -> Select the apk that you want to decompile
আপনি এটির উৎস কোড দেখতে পাবেন।

রেফারেন্স জন্য লিংক:
https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2


এই সাইট https://www.apkdecompilers.com/ এটি স্বয়ংক্রিয়ভাবে।

আমি প্রথমে গৃহীত উত্তরটিতে উল্লিখিত সাইটটি চেষ্টা করেছি কিন্তু এটি আমার জন্য কাজ করে নি।


এটি একটি বিকল্প বর্ণনা - যদি কেউ উপরের বিবরণ দিয়ে আটকা পড়ে। পদক্ষেপগুলো অনুসরণ কর:

  1. apktool.bat ডাউনলোড apktool.bat (অথবা apktool জন্য apktool ) এবং apktool_<version>.jar থেকে http://ibotpeaches.github.io/Apktool/install/
  2. উপরে থেকে apktool.jar থেকে জার ফাইলটি পুনঃনামকরণ করুন এবং একই ফোল্ডারে উভয় ফাইল রাখুন

  3. একটি ডস বক্স খুলুন ( cmd.exe ) এবং যে ফোল্ডারে পরিবর্তন; যাচাই করুন যে জাভা এনভায়রনমেন্ট ইনস্টল করা আছে (লিনাক্সের জন্য প্রয়োজনীয় লাইব্রেরির পাশাপাশি নোটগুলি চেক করুন)
  4. শুরু: apktool decode [apk file]

    মধ্যবর্তী ফলাফল : সংস্থান ফাইল, AndroidManifest.xml

  5. আপনার পছন্দ একটি unpacker সঙ্গে APK ফাইল আনজিপ

    মধ্যবর্তী ফলাফল : classes.dex

  6. http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q= থেকে dex2jar-0.0.9.15.zip ডাউনলোড এবং নিষ্কাশন করুন
  7. dex2jar.bat টেনে আনুন এবং ড্রপ করুন (অথবা একটি ডস বক্সে <path_to>\dex2jar.bat classes.dex লিখুন; লিনাক্সের জন্য dex2jar.sh ব্যবহার dex2jar.sh )

    মধ্যবর্তী ফলাফল : classes_dex2jar.jar

  8. classes_dex2jar.jar আনপ্যাক (ব্যবহৃত decompiler উপর নির্ভর করে ঐচ্ছিক হতে পারে)
  9. আপনার ক্লাস ফাইলগুলি ডিকম্পাইল করুন (যেমন জেডি-জিআইআই বা ডিজে ডিকম্প্লেলার )

    ফলাফল : সোর্স কোড

দ্রষ্টব্য: তৃতীয় পক্ষের প্যাকেজগুলি ডিকম্পাইল করার অনুমতি নেই; এই গাইড শুধুমাত্র একটি APK ফাইল থেকে ব্যক্তিগত সোর্স কোড পুনরুদ্ধার করার উদ্দেশ্যে করা হয়; পরিশেষে, ফলে কোড সম্ভবত অপ্রয়োজনীয় হতে হবে


বিপরীত প্রকৌশল তৃতীয় পক্ষের জন্য বন্ধ Apktool , বন্ধ, বাইনারি অ্যান্ড্রয়েড অ্যাপ্লিকেশন।

এটি প্রায় মূল ফর্ম সংস্থান ডিকোড এবং কিছু পরিবর্তন করার পরে তাদের পুনর্নির্মাণ করতে পারেন।

এটি ধাপে ধাপে ধাপে কোড ডিবাগ করতে সক্ষম করে। এছাড়াও এটি একটি অ্যাপ্লিকেশনের সাথে কাজ করে যা প্রকল্পের মতো ফাইল গঠন এবং কিছু পুনরাবৃত্তিমূলক কাজগুলির অটোমেশন যেমন APK বিল্ডিং, ইত্যাদি।

http://ibotpeaches.github.io/Apktool/


যদিও আপনি আপনার APK ফাইলটি ডিকম্পাইল করতে সক্ষম হবেন তবে আপনি সম্ভবত একটি বড় সমস্যাটি হিট করবেন:

এটা আপনি লিখেছেন কোড ফিরে যাচ্ছে না। পরিবর্তে র্যান্ডম নাম দেওয়া রুপান্তরিত সঙ্গে, কম্পাইলার যাই হোক না কেন যাই হোক না কেন ফিরে যেতে যাচ্ছে, সেইসাথে ফাংশন র্যান্ডম নাম দেওয়া। এটি শুরু করার চেয়ে এটি আপনার কোডটিতে ডিকম্পাইল এবং পুনরুদ্ধার করার জন্য উল্লেখযোগ্য সময় নিতে পারে।

দুঃখের বিষয়, এই ধরনের জিনিস অনেক প্রকল্পকে হত্যা করেছে।
ভবিষ্যতের জন্য, আমি অত্যন্ত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা শিখতে সুপারিশ করি, যেমন সিভিএস , এসভিএন এবং গিট ইত্যাদি।

এবং কিভাবে এটা ব্যাক আপ।


apktool আপনি চেষ্টা করতে পারেন সেরা জিনিস। আমি এটির সাথে কিছু XML টি সংরক্ষিত করেছি, কিন্তু সত্যই আমি জানি না এটি কিভাবে .java কোডের সাথে কাজ করবে।

আপনার একমাত্র কোডার থাকলেও আমি আপনাকে একটি কোড সংগ্রহস্থল রাখতে পরামর্শ দেব। আমি আমার নিজের প্রকল্পের জন্য প্রকল্প লকার ব্যবহার করছি। এটি আপনাকে বিনামূল্যে svn এবং গিট repos দেয়।


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

শুধু ইনস্টল এবং মজা আছে। আমি মনে করি এটি একটি অ্যাপ্লিকেশন decompile করার সবচেয়ে সহজ উপায়।


অনলাইন টুলের নিচে:

http://www.javadecompilers.com/apk

এটি একটি ক্লিক দ্বারা সমস্ত করে: decompiled .java ফাইল + রিসোর্স + এক্সএমএল (এক। জিপিপি ফাইলে) খুব ভাল ডিকম্প্লেলার (জাদেক্স রিটার্ন জাভা কোড এমন জায়গায় / ফাংশনে যেখানে অন্য কম্পাইল ফাংশনের ভিতরে মতামত ফেরত দেয় যেমন "ডিকম্পাইল করতে অক্ষম" বা কিছু অ্যান্ড্রয়েড অ্যাডাব্লার / মেশিন কোড)





apk