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


1259

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

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


28
এফওয়াইআই এখানে অনলাইন
ডিসকম্পিলার

11
এর অর্থ কি আমরা হোয়াটসঅ্যাপ বা ফেসবুকের মতো মিলিয়ন ডলারের মূল্যবান অ্যাপ্লিকেশনগুলির সোর্স কোড পেতে পারি? এটি কি সব ওপেন সোর্স?
ফয়জান

3
@ ফাইজান আপনি কি অগ্রগতির কথা শুনেছেন ??
বিশ্বজিৎ পালঙ্কর

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

2
মধ্যে এই নিবন্ধটি তারা কিভাবে তারা রিভার্স ইঞ্জিনিয়ার পোকেমন যান ব্যাখ্যা
অ্যান্ডার্স

উত্তর:


1569

সহজ উপায়: অনলাইন সরঞ্জামটি ব্যবহার করুন http://www.javadecompilers.com/apk , apk আপলোড করুন এবং উত্স কোড পান।


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

ধাপ 1:

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

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

ধাপ ২:

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

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

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

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

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

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

ধাপ 3:

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

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

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

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

  4. এখন কমান্ড চালান apktool if framework-res.apk(যদি আপনার এটি এটি না পেয়ে থাকে ) এবং পরবর্তী

  5. apktool d myApp.apk (যেখানে মাইঅ্যাপ.এপকে আপনি যে ফাইলের নাম ডিকোড করতে চান তা বোঝায়)

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

পদক্ষেপ 4:

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

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


26
@ প্রাণকুলগার্গ, ৩ য় ধাপের পয়েন্টে আমি নিম্নলিখিত ত্রুটি পেয়েছি: জারফিল ই ব্যবহার করতে অক্ষম: \ apktojava \ testt \\ apktool.jar

55
ডেক্স 2 জার ক্লাস.ডেক্স লিখার পরিবর্তে সেমিডিতে ডি 2 জে-ডেক্স 2 জার ক্লাস.ডেক্স চেষ্টা করে দেখুন । কারণ ডেক্স 2 জার ক্লাস.ডেক্স এই সেন্টিমিডি অবমূল্যায়ন করা হয়েছে।
উমেশ

23
যারা খুঁজে পাচ্ছেন না তাদের জন্য framework-res.apk। এটি এখান থেকে ডাউনলোড করুন
অতুলখাত্রি

12
যারা d2j-dex2jar.sh খুঁজে পান নি, তারা এখান থেকে ডেক্স 2জার ডাউনলোড করুন: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
মুর্শেদ

14
পদক্ষেপ 2: 4 এ আটকে থাকা লোকেদের জন্য এই সংস্করণটি ডাউনলোড করুন এবং এটি সমস্যার সমাধান করবে: সোর্সফোর্জন.नेट / প্রজেক্টস / ডেক্স 2 জার / ফাইলেস / ডেক্স 2 জার ২.০.জাইপ / ডাউনলোড এটি আমার জন্য করেছিল। @ ডেলিভ
সিরিউসেটিওর

126

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

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

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

    মধ্যবর্তী ফলাফল : রিসোর্স ফাইল,AndroidManifest.xml

  5. আপনার পছন্দের একটি আনপ্যাকার দিয়ে 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. ড্র্যাগ এবং ড্রপ classes.dexসম্মুখের dex2jar.bat(অথবা প্রবেশ <path_to>\dex2jar.bat classes.dexডস বক্সে; লিনাক্স ব্যবহারের জন্য dex2jar.sh)

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

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

    ফলাফল : উত্স কোড

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


6
আমি আরও যোগ করতে পারি, যে এই APKTool-> dex2jar-> JD-GUI রুটের আধুনিক বিকল্প আছে! শুধু চেষ্টা ওপেন সোর্স APK থাকবে এবং Dex decompiler Jadx ডাকলেন sourceforge.net/projects/jadx/files : এটা অনলাইনেও সংস্করণ এখানে রয়েছে javadecompilers.com/apk
অ্যান্ড্রু Rukin

1
এটি কোনও এপিএল ফাইল ডিকম্পাইল করার অনুমতি রয়েছে (পড়ুন: আইনী) । : নিম্নলিখিত প্রশ্ন দেখতে পাবেন stackoverflow.com/questions/9674557/...
Rakete1111

1
apktoolফিরতি smaliফাইল কেন ? কিভাবে javaফাইল পাবেন?
রোমানাজ

108

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

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

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

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


19
ড্রপবক্সের মতো একটি পরিষেবাও সহায়তা করবে।
জেরেমি লোগান

1
এবং সবসময় সিডি জ্বালানোর একটি উপায় রয়েছে
জেরিওয়েল

52

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

কেবল ইনস্টল করুন এবং মজা করুন। আমি মনে করি এটি কোনও অ্যাপ্লিকেশনটি ছড়িয়ে দেওয়ার সহজতম উপায়।



@ মিধুনভিজাকাকুমার আপনি কি এপিকে সোর্স কোড রূপান্তর ব্যবহার করে এটি ব্যবহার করতে পারবেন?
সজীব

28

apktool আপনি চেষ্টা করতে পারেন সেরা জিনিস। আমি এটি দিয়ে কিছু এক্সএমএল সংরক্ষণ করেছি, তবে সত্যই জানি না যে এটি জাভা কোড দিয়ে কীভাবে কাজ করবে।

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


আপনি সংস্থানগুলি (অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে অর্থাত্ চিত্রগুলি আনতে চাইলে) apktool অপরিহার্য খুঁজে পাবেন (অ্যাপ্লিকেশন, সরঞ্জামটির কোনও প্রতিযোগী নেই!) Apktool এর একটি অনলাইন সংস্করণ এখানে পাওয়া যায়: www.javadecompilers.com/apktool
অ্যান্ড্রু রুকিন

23

এই দুটি আর্টিকেল বর্ণনা করে যে কীভাবে কোনও ফাইলের ব্যবহার সংমিশ্রণ করতে apktoolএবং dex2jarএকটি গ্রহণ APKএবং একটি Eclipse প্রকল্প তৈরি করা যায় যা এটি তৈরি এবং এটি পরিচালনা করতে পারে।

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

মূলত আপনি:

  1. apktoolঅ্যাপ্লিকেশনটির বাইরে রিসোর্স ফাইলগুলি পেতে ব্যবহার করুন
  2. dex2jarএকটি জার ফাইল পাওয়ার জন্য ব্যবহার করুন যা ক্লাসগুলি একটি বিন্যাসে ক্লাস ধারণ করে যা গ্রহণটি পছন্দ করবে।
  3. রিসোর্স ফাইল এবং নতুন জার ফাইল এ একটি Eclipse প্রকল্প পয়েন্ট তৈরি করুন
  4. একটি জিপ ইউটিলিটি দিয়ে জার ফাইলটি খুলুন এবং বিদ্যমান সংস্থানগুলি মুছুন
  5. JDGuiউত্স কোডটি দেখতে জার ফাইলটি খুলুন
  6. আপনার যে কোনও উত্স কোডটি থেকে যা দরকার তা গ্রহণ করুন JDGui, এগ্রিপসের অভ্যন্তরে কোনও শ্রেণিতে এটি আটকে দিন এবং এটি সংশোধন করুন
  7. জার ফাইল থেকে সেই শ্রেণিটি মুছুন (যাতে আপনার একাধিকবার একই ক্লাস সংজ্ঞায়িত হয় না)
  8. চালাও এটা.

2
আমি জানি এই প্রশ্নের উত্তর এখনও পাওয়া গেছে, আমি একটি তথ্য পাস করতে চাই: অ্যান্ড্রয়েড অ্যাপস ডিকম্পাইলঅ্যান্ড্রয়েড.কমের জন্য একটি অনলাইন ডিকম্পিলার রয়েছে স্থানীয় মেশিন থেকে অ্যাপ আপলোড করুন, কিছু মুহুর্ত অপেক্ষা করুন, জিপ ফর্ম্যাটে উত্স কোড ডাউনলোড করুন।
স্নেহাল মাসনে

2
চমৎকার শোনাচ্ছে. এবং তারপরে ডিকম্পাইলঅ্যান্ড্রয়েড ওয়েবসাইটে আপনার উত্সের সমস্ত অনুলিপিও রয়েছে! চতুর!
ডিডিএসপোর্টস

একটি প্রশ্ন, আমার একটি এপিপি বিচ্ছেদ হয়েছে তবে জেডি গুইতে আমি জানি না যে জাভাটির প্রকৃত ক্লাসগুলি আছে কিনা, আপনি কি জানেন যে কোনও এপিপি ক্ষয়প্রাপ্ত হয় সেখানে কি আসল জাভা ক্লাস রয়েছে?

21

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

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


16

এটি করার কয়েকটি উপায় রয়েছে:

  1. অ্যান্ড্রয়েড স্টুডিও 3.0.০ এ "প্রোফাইল বা ডিবাগ এপিপি" বৈশিষ্ট্যটি ব্যবহার করুন।

    এটি আপনাকে অ্যান্ড্রয়েড স্টুডিওতে APKs খুলতে এবং অন্বেষণ করতে দেয়। ক্লাসগুলি স্মলে বিভক্ত হয়। সংস্থানগুলি সরানো হয় না এবং "সংজ্ঞাতে যান", "সমস্ত রেফারেন্সগুলি অনুসন্ধান করুন" এবং ডিবাগিংয়ের মতো উত্স কোড কোড ছাড়াই কাজ করে না (অ্যান্ড্রয়েড স্টুডিও 3.0 ক্যানারি 9)। কিছু অতিরিক্ত স্মালি বৈশিষ্ট্য হ'ল স্মার্টাইডার সাথে কাজ করতে পারে

    অ্যান্ড্রয়েড-স্টুডিওতে

    ফাইল নির্বাচন করুন

    কোড

  2. জ্যাডেক্স ব্যবহার করুন ।

    জ্যাডেক্স জাভা উত্স ফাইলগুলিতে প্রদত্ত APK এ কোডটি ডিসকম্পিল করে।

    jdax চিত্র

  3. অ্যাপক্টোল ব্যবহার করুন ।

    Apktool হ'ল একটি কমান্ড লাইন সরঞ্জাম যা প্রদত্ত এপিপির জন্য সংস্থাগুলি সংস্থান করে কোডটি স্মলিতে বিভক্ত করে। আপনি apktool ব্যবহার করে আবারও কম্পাইল করতে পারেন। কর্মের ক্ষেত্রে এটির উদাহরণ এখানে:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...

আমি জ্যাডএক্স চেষ্টা করেছি, তবে সাধারণ হেলিওরল্ড দিয়েও, যদিও এটি এটি জাভাতে বিভক্ত করে, তবুও, অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পটি খোলার চেষ্টা করে এবং এটি এপিকে পুনরায় সংকলন করার চেষ্টা করেছে, অনেক কারণেই ব্যর্থ হয়েছে (নকল ফাইল, ইত্যাদি), জাভা তৈরি করে এমন কোন পদ্ধতি আছে যা এপিকে আবার সংকলন করা যায়?
আরশ

1
@আরানশ আমি সাধারণত কোডটি পড়তে jadx ব্যবহার করি তারপর কোডটি সংশোধন করতে apktool। apktool জাভা তৈরি করে না তবে এটি পুনরায় সংকলনের অনুমতি দেয়।
0xcaff

0 এক্সক্যাফ, স্পষ্টতার জন্য ধন্যবাদ। যে এখন বুঝতে। অ্যান্ড্রয়েড স্টুডিওতে একটি ডিসকপাইল জাভা সংকলনের চেষ্টা করা বেকুয়াস কাজ করছে না।
আরশ

16

উত্সটি দেখতে সহজ হতে পারে:

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

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


9
এটি ক্লাস এবং পদ্ধতিগুলি তালিকাভুক্ত করে তবে উত্স কোড দেয় না।
ডাব্লুএসএস

উপরের ফাইলগুলি আপনি কেবল ".apk" ".ipip" তে পরিবর্তন করে পেতে পারেন
এম উসমান খান

7

.Apk ফাইলগুলি ডিসম্পাইল করার অন্যান্য উপায় দেখাব ।

আপনি " প্রাণকুল গারগ " থেকে প্রথম 2 টি পদক্ষেপ অনুসরণ করতে পারেন । সুতরাং আপনার আরও একটি সুযোগ রয়েছে:

ধাপ 3':

"জেডি-জিইউআই" ডাউনলোড করুন , এটি খুঁজে পাওয়া সহজ। "Jd-gui.exe" এ আপনার .jar ফাইলটি খুলুন । (ফাইল> ফাইল খুলুন> 'আপনার .jar ফাইলটি খুঁজে পেয়েছে ')। এই পদ্ধতির পরে, আপনি .zip ফাইলে সমস্ত সংস্থান সংরক্ষণ করতে পারেন ।

সুতরাং,

1 ম - আপনাকে .apk ফাইলটি .zip এ পুনরায় নামকরণ করতে হবে

২ য় - আপনাকে .dex ফাইলটি ডিকোড করতে হবে (যদি আপনি চান, .apk ফাইলটিকে ডেক্স 2 বাজারে ডিকোড করুন , এটি সম্ভব)

তৃতীয় - আপনাকে জেডি-জিইউআই দিয়ে জাজার ফাইলটি ডিকোড করতে হবে


20
এই উত্তরটি কী সরবরাহ করে যা অন্যরা তা দেয় না?
জারজেন আর

আপনাকে জিপতে আসলে নামকরণ করতে হবে না। আমি 7-জিপ দিয়ে সরাসরি apk ফাইলটি খুলতে পারি।
miva2

7

অনলাইন সরঞ্জামের নীচে :

http://www.javadecompilers.com/apk

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


হ্যাঁ, এটি দুর্দান্ত, তবে ফাংশন নামের পরিবর্তে এটি সমস্ত ফাংশনের নামগুলি সিএস 1001 এ পরিবর্তন করেছে। সুতরাং কিভাবে এই চিনতে হবে। এবং আরও একটি বিষয়, আমরা কি আমাদের এই অচলিত অ্যাপকে সরাসরি আমাদের অ্যান্ড্রয়েড স্টুডিও প্রকল্প হিসাবে ব্যবহার করতে পারি, এটি কি কাজ করবে?
জিয়া উর রহমান

তারপরে আমরা আমাদের অ্যাপ্লিকেশনে তাদের কার্যকারিতাটি যদি না ব্যবহার করতে পারি তবে আমরা কী উদ্দেশ্যে কিছু লোককে এপিপি বিয়োগ করতে ব্যবহার করি।
জিয়া উর রহমান

@ ZiaUrRahman- কে আমি জানি না। তবে আমি আমার ক্ষেত্রে অ্যালগরিদম বিশ্লেষণের জন্য কোডটি ডিসকম্পাইল করি। আপনি কি চেক করেন যে ডিভাইসটি থেকে সংক্রামিত কোডটি অ্যান্ড্রয়েড স্টুডিওগুলি সম্পূর্ণ স্বয়ংক্রিয়ভাবে সংকলন করতে পারে - বা কিছু "হিউম্যান প্রসেসিং" দরকার?
কামিল কিয়েসজেউস্কি

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

6

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

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


আমি আমার জাভা সোর্স কোডটি পুনরুদ্ধার করতে পারিনি ... এতে সংযুক্ত ফাইলের মতো কিছু উপস্থিত রয়েছে এবং ..
iমান কাজীমনি

উপরের লিঙ্কটিতে @ imankazemayni, আপনার APK ফাইলটিতে "ব্রাউজ করুন" এবং "আপনার APK সংযুক্ত করুন" এ ক্লিক করুন। এটি কিছুটা সময় নেবে এবং তারপরে কোডটি এনক্রিপ্ট না করা থাকলে এটি আপনাকে উত্স কোডটি দেয়।
এম উসমান খান

আপনি কি জানেন এনক্রিপ্ট করার উপর মাল্টিডেক্স প্রভাব রয়েছে?
ইমান কাজেমেইনি

6

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


বেশিরভাগ অনলাইন সংকলক কাজ করছে না, তবে এই অ্যাপটি কাজ করছে is আপনাকে ধন্যবাদ
সুনীল

4

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

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

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

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


3

apktool যাওয়ার উপায়। অনলাইন apktool পরিষেবা পাশাপাশি বিদ্যমান: http://www.javadecompilers.com/apktool

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

তবুও, এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি 'খোলার' কোনও ঝামেলা উপায়।


3

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


হ্যালো কীভাবে অ্যান্ড্রয়েড স্টুডিওর সাথে ডেক্সপ্যাচার ব্যবহার করবেন?
রবি 152

মন্তব্যে সবকিছু ব্যাখ্যা করতে পারছি না। গুগল আপনার বন্ধু :) পাশাপাশি বেশ কয়েকটি সুন্দর ইউটিউব টিউটোরিয়াল রয়েছে।
লক্ষ্মীকান্ত দেশপাণ্ডে

2

আপনার অবস্থার উপর ভিত্তি করে, যদি আপনার অ্যান্ড্রয়েড এপিকে:

শর্ত 1: শক্ত নয় (টেনসেন্ট লেগু / কিহু 360 / ... দ্বারা)

পছন্দ 1: অনলাইন পরিষেবা ব্যবহার করে

যেমন:

www.javadecompilers.com ব্যবহার করে

যাও:

apk থেকে জাভা উত্সকোডে স্বয়ংক্রিয় ডিকোড করতে

ধাপ:

uploadজিপি + আনজিপ -> apk ফাইল + ক্লিক করুন Run+ কিছু সময় অপেক্ষা করুন + ক্লিক Downloadকরুন

sources/com/{yourCompanyName}/{yourProjectName}

আপনার প্রত্যাশিত জাভা উত্স কোড

পছন্দ 2: নিজেই ডেকম্পাইল / ক্র্যাক করুন

নিজের দ্বারা পচন / ক্র্যাক করতে সম্পর্কিত সরঞ্জামটি ব্যবহার করুন:

ব্যবহারের jadx/ jadx-guiরূপান্তর apkকরতেjava sourcecode

jadx-0.9.0.zip ডাউনলোড করুন তারপরে আনজিপ করুন bin/jadx, তারপরে:

  • কমান্ড লাইন মোড:
    • টার্মিনাল রান: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • আউটপুট_ফোল্ডারটি ডিকোডড sourcesএবং প্রদর্শন করবেresources
      • sources/com/{yourCompanyName}/{yourProjectName} আপনার প্রত্যাশিত java sourcecode
  • জিইউআই মোড
    • চালাতে ডাবল ক্লিক করুন jadx-0.9.0/bin/jadx-gui(লিনাক্স jadx-gui.sh/ উইন্ডোজ jadx-gui.bat)
    • apkফাইল খুলুন
    • এটি স্বয়ংক্রিয়ভাবে ডিকোডিং করবে -> আপনার প্রত্যাশিত জাভা উত্সকোডটি দেখুন
    • save all অথবা save as Gradle project

উদাহরণ:

কন্ডিশন 2: হার্ডেন (টেনসেন্ট লেগু / কিহু 360 / ... দ্বারা)

এর প্রধান পদ্ধতি 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

বিস্তারিত ব্যাখ্যা:

ধাপ 1: apk/app to dex

চলমান অ্যাপ্লিকেশন থেকে সরঞ্জাম ( FDex2/ ডাম্পডেক্স) ডাম্প / হুক আউট (এক বা একাধিক) dexফাইল ব্যবহার করুন

ধাপ:

পরিবেশ প্রস্তুত

dexচলমান অ্যাপ্লিকেশন থেকে ডাম্প আউট

  • চালান FDex2তারপর ডেক্স ক্যাপচার / হুক আউট করতে পরে সক্ষম করতে আপনার APK নাম ক্লিক করুন

  • (ফোন / এমুলেটারে) আপনার অ্যাপ্লিকেশন চালান
  • সম্পূর্ণ এপিপি সংস্থানগুলিতে ডাম্প আউট এবং অনুলিপি করুন /data/data/com/yourCompanyName/yourProjectName
    • এর মূল ফোল্ডারে সাধারণত বেশ কয়েকটি dexফাইল খুঁজে পাওয়া যায়

ধাপ ২: dex to jar

সরঞ্জাম ( dex2jar) অ্যাপ্লিকেশন যুক্তি ধারণ করে (নির্দিষ্ট, অ্যাপ লজিকযুক্ত) dexফাইলকে ফাইলটিতে রূপান্তর jarকরুন

ডাউনলোড ডেক্স 2 জার ডেক্স - টুলস ২.২ পেয়েছেন- এসএনএপিএসএইচটি.জিপ , আনজিপ পেয়েছে dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh, তারপরে

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

উদাহরণ:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

ধাপ 3: jar to java src

সরঞ্জামগুলির মধ্যে একটি ব্যবহার করুন:

ধর্মান্তরিত jarকরারjava src

জার থেকে জাভা এসসিআর রূপান্তরকারী প্রভাবের জন্য:

Jadx> Procyon> CRF>>JD-GUI

সুতরাং ব্যবহারের পরামর্শ দিন: Jadx/jadx-gui

ধাপ:

  • চালাতে ডাবল ক্লিক করুন jadx-gui
  • dexফাইল খুলুন
  • File -> save all

উদাহরণ:

রপ্তানি করা জাভা এসসিআর:


আরও বিশদ বিবরণ আমার অনলাইন ইবুক চাইনিজ টিউটোরিয়ালটি দেখতে পারে :


2

অ্যান্ড্রয়েড স্টুডিও আপনাকে যে কোনও এপিকে ফাইল বিশ্লেষণ করার প্রস্তাব দেয়।

1 - বিল্ড মেনু থেকে বিশ্লেষণ করুন এপিপি বিকল্পটি নির্বাচন করুন এবং এপিপি ফাইলটি নির্বাচন করুন। 2 - এর ফলশ্রুতিতে আপনি ক্লাস.ডেক্স ফাইল এবং অন্যান্য ফাইল পাবেন। 3 - ক্লাস.ডেক্সে ক্লিক করুন যা আপনাকে ফোল্ডার, প্যাকেজ, লাইব্রেরি এবং ফাইলগুলির তালিকা দেবে। 4 - অ্যান্ড্রয়েড স্টুডিও সেটিংস থেকে "ডেক্স থেকে জার" নামে একটি প্লাগইন ইনস্টল করুন 5 - আপনার উত্তোলিত প্রকল্পের যে কোনও ক্রিয়াকলাপের ফাইলটিতে ক্লিক করুন এবং বিল্ড মেনু থেকে ডেক্স থেকে জারকে বেছে নিন।

এটি আপনাকে আপনার জাভা ফাইলের আসল কোডের ফলাফল করবে।

চিয়ার্স।


1

সবচেয়ে সহজ উপায় হ'ল এপিকে ওয়ানক্লিক ডেকম্পিলার। এটি APK গুলি (অ্যান্ড্রয়েড প্যাকেজগুলি) ছড়িয়ে দেওয়ার ও বিযুক্ত করার জন্য একটি সরঞ্জাম প্যাকেজ।

বৈশিষ্ট্য

  • সমস্ত বৈশিষ্ট্যগুলি উইন্ডোজের ডান-ক্লিক মেনুতে একীভূত হয়।
  • জাভা উত্স কোডগুলিতে APK ক্লাসগুলি ছড়িয়ে দিন।
  • স্ম্যালি কোডে এপিএকে পৃথক করুন এবং এর সংস্থানগুলি ডিকোড করুন।
  • ডান ক্লিক করে ফোনে APK এ ইনস্টল করুন।
  • স্ম্যালি কোড এবং / অথবা সংস্থানগুলি সম্পাদনার পরে APK পুনরায় কম্পাইল করুন। পুনর্নির্মাণের সময়:
  • Png চিত্রগুলি অনুকূলিত করুন
  • অ্যাপস সাইন ইন
  • Zipalign

যোগ্যতা

জাভা রানটাইম এনভায়রনমেন্ট (জেআরই) ইনস্টল করা আবশ্যক।

আপনি এই লিঙ্ক থেকে এটি ডাউনলোড করতে পারেন এপিকে ওয়ানক্লিক ডিকম্পিলার

ওটা উপভোগ করুন.


1

আমি নিম্নলিখিতটি সবচেয়ে সহজ পদ্ধতি হিসাবে পেয়েছি:

  1. আপনার app.apk নামটি app.zip এ নামকরণ করুন (এপিপি থেকে জিপতে এক্সটেনশন পরিবর্তন করুন)
  2. ফোল্ডারে জিপ ফাইলটি বের করুন
  3. ক্লাস.ডেক্স ফাইলে উপস্থিত উত্স কোডটি পড়তে JADX সরঞ্জামটি ব্যবহার করুন।

1

এর জন্য একটি অ্যাপ্লিকেশন রয়েছে এবং সাধারণত কয়েকটি ক্লিক ক্লিক করে আপনি সম্পন্ন হন। https://github.com/Nuvolect/DeepDive-Android

  1. অ্যাপ্লিকেশন নির্বাচন করুন "ইনস্টলড অ্যাপস" এর অধীনে আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন। এটি যদি না থাকে তবে আপনি APK টি লোড করতে পারেন।
  2. "এক্সট্র্যাক্ট APK" নির্বাচন করুন
  3. "আনপ্যাক APK" নির্বাচন করুন
  4. "জ্যাডেক্সের সাথে ডেকম্পাইল" নির্বাচন করুন। এটি আপনার ডিভাইসের গতির উপর নির্ভর করে কয়েক সেকেন্ড বা কয়েক মিনিট সময় নিতে পারে

এর পরে আপনি সোর্স কোডটি ব্রাউজ করতে পারেন, এটি এলফিন্ডারের সাহায্যে অন্য একটি কম্পিউটারে ডাউনলোড করতে পারেন বা লুসিন ব্যবহার করে এটি অনুসন্ধান করতে পারেন।

জ্যাডেক্স ছাড়াও এতে সিএফআর এবং ফার্নফ্লাওয়ার ডিকম্পিলার রয়েছে।


0

আমি বেশ কয়েকদিন ধরে ডেক্স 2জারকে ফেডোরা 31 ল্যাপটপে কাজ করতে যাচ্ছিলাম এমন একটি APK এর বিপরীতে কাজ করতে যাবার চেষ্টা করে যাচ্ছি যাচ্ছি না was এই অজগর 3 স্ক্রিপ্টটি কয়েক মিনিটের মধ্যে কৌশলটি সম্পাদন করেছিল এবং জেডি-গুই ইনস্টল করে ক্লাস ফাইলগুলি মানব পাঠযোগ্য।

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

বিশেষত, আমি এখানে যা ছুটে এসেছি:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

ক্লাসের ফাইলগুলি পাওয়ার জন্য এখন নিম্নলিখিত রম করতে সক্ষম হওয়া উচিত:

$> enjarify yourapkfile.apk

এবং জেডি-গুই শুরু করতে:

$> jd-gui

তারপরে কেবল আপনার ক্লাসের ফাইলগুলি খুলুন!


0

আমি একটি সরঞ্জাম তৈরি করেছি - কোড বিশ্লেষক, এটি জাভা / অ্যান্ড্রয়েড ফাইলগুলি বিশ্লেষণ করতে, আইফোন / আইপ্যাড / ম্যাকের মধ্যে চলে, https://decompile.io

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


0

এই সরঞ্জামটি ব্যবহার করুন http://www.javadecompilers.com/

তবে সম্প্রতি, ডিসকম্পিলারগুলির একটি নতুন তরঙ্গ বাজারে আগমন করেছে: প্রোকিয়ন, সিএফআর, জেডি, ফার্নফ্লাওয়ার, ক্রাকাতাউ, মোমবাতি।

এই সাইটে উপস্থাপকগুলির একটি তালিকা এখানে উপস্থাপন করা হয়েছে:

সিএফআর - বিনামূল্যে, কোনও উত্স-কোড উপলভ্য নয়, http://www.benf.org/other/cfr/ লেখক: লি বেনফিল্ড

খুব ভাল আপডেট ডিকম্পিলার! সিএফআর আধুনিক জাভা বৈশিষ্ট্যগুলি জাভা 9 মডিউল, জাভা 8 ল্যাম্বডাস, জাভা 7 স্ট্রিং সুইচগুলি ইত্যাদিকে বিভাজিত করতে সক্ষম is

জেডি - কেবল অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে, http://jd.benow.ca/ লেখক: এমমানুয়েল দুপুয়

2015 সালে আপডেট হয়েছে cl এর নিজস্ব ভিজ্যুয়াল ইন্টারফেস এবং গ্রহন এবং ইন্টেলিজিতে প্লাগইন রয়েছে। সি ++ তে লেখা, খুব দ্রুত। জাভা 5 সমর্থন করে।

প্রোসিওন - ওপেন সোর্স, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler লেখক: মাইক স্ট্রোবেল

ফার্নফ্লাওয়ার - ওপেন সোর্স, https://github.com/fesh0r/fernflower লেখক: Egor Ushakov

2015. খুব আশাপ্রদ বিশ্লেষণাত্মক জাভা decompiler আপডেট করা হয়েছে, এখন (IntelliJ 14. একটি অবিচ্ছেদ্য অংশ হয়ে https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) সংস্করণ 6 পর্যন্ত জাভা সমর্থন (টিকা, জেনেরিকস, এনাম)

জেএডি - কেবল historical তিহাসিক কারণে এখানে দেওয়া হয়েছে। বিনামূল্যে, কোনও উত্স-কোড উপলভ্য নয়, জ্যাড মিরর ডাউনলোড করুন লেখক: পাভেল কাউজনেটসভ

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