জাভা সোর্সকোডে ডিএক্সকে ডিকম্পিলিং করছে


706

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


এখানে দেখুন । আপনি সেখান থেকে এগিয়ে যাওয়ার সম্ভাব্য সীসা পাবেন।
কেভিন বয়ড


আপনি টাকা থাকে, তাহলে কিনতে Jeb ব্যবহার অন্যথায়, jadx দেখুন এখানে কেন
polym

: একটি নতুন ক্রস plateform (জাভা) এবং ওপেন সোর্স টুল, আপনি যে কাজ করতে, শুধু চেকআউট bytecodeviewer সক্ষম করে stackoverflow.com/a/36557898/795245
Gomino

উত্তর:


881

এটি সহজ

এই সরঞ্জামগুলি পান:

1) ডেক্স 2 জার ডেক্স ফাইলগুলি জার ফাইলগুলিতে অনুবাদ করতে

2) জেডি-গুই জারে ফাইলগুলি দেখতে জারে

উত্স কোডটি বেশ পঠনযোগ্য কারণ ডেক্স 2 জার কিছু অপ্টিমাইজেশন করে।

পদ্ধতি:

এবং এখানে কীভাবে পচন করতে হবে তার পদ্ধতিটি এখানে:

ধাপ 1:

টেক্সট_এপকে-ডিবাগ.এপকে টেস্ট_এপকে-ডিবাগ_ডেক্স ২জার.জারে ক্লাস.ডেক্স রূপান্তর করুন

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

নোট 1: উইন্ডোজ মেশিন মধ্যে সব .shস্ক্রিপ্ট দ্বারা প্রতিস্থাপিত হয় .batস্ক্রিপ্ট

দ্রষ্টব্য 2: লিনাক্স / ম্যাক সম্পর্কে shবা ভুলে যাবেন না bash। সম্পূর্ণ কমান্ডটি হওয়া উচিত:

sh d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk 

নোট 3: এছাড়াও, dex2jar-X.Xডিরেক্টরি যেমন চালানো অনুমতি যুক্ত মনে রাখবেনsudo chmod -R +x dex2jar-2.0

dex2jar ডকুমেন্টেশন

ধাপ ২:

জেডি-জিইআইতে জারটি খুলুন

পচনশীল উত্স


57
+1 টি। আমি বাক্সমালী এবং ডেক্স 2জার উভয়ের চেষ্টা করেছিলাম। ডেক্স 2 জার + জেডি-গুই আপনাকে বেশিরভাগ .dex ফাইলের জন্য নিখুঁতভাবে পঠনযোগ্য উত্স কোড দেওয়ার জন্য জয়ী হয়।
জোনাথন ডুমাইন

হাই, আপনি যেভাবে যাচ্ছেন দয়া করে ভাগ করে দেবেন? আমি আপনাকে খুব কৃতজ্ঞ হতে হবে।
আরসলান আনোয়ার

2
উপরের বাক্যটি একটি ঘণ্টা বেজেছিল - এটি এখান থেকে একটি অর্ধ-উদ্ধৃতি বলে মনে হচ্ছে: geeknizer.com/decompile-revers-engineer- android - apk (বা অন্য উপায়ে?)। লিঙ্কযুক্ত নিবন্ধগুলি সংক্ষেপে উপরোক্ত উল্লিখিত সরঞ্জামগুলির পাশাপাশি স্মাইলি এবং এপিএলটুলকে ব্যাখ্যা করে।
এজেন্টকনফফ

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

3
@ জোনাথনডুমাইন আমি জেন্ডেথের সাথে একমত, আপনি যদি আপনার এপিকে ডিসম্পাইল করতে চান, এটি পরিবর্তন করতে পারেন এবং তারপরে এটি পুনরায় সংকলন করতে চান তবে অ্যাপটোলও যাওয়ার উপায়। ডেক্স 2 জার এবং জেডি-গুই ব্যবহার করার সময় উত্সটি সত্যই পঠনযোগ্য তবে আপনি কিছু ত্রুটি পুনরায় সংকলন করতে পারবেন না!
অন্ধকার

138

কিছুটা স্পষ্ট করার জন্য, আপনি কী অর্জন করতে চান তার উপর নির্ভর করে দুটি বড় পথ আপনি এখানে নিতে পারেন:

ডালভিক বাইটকোড (ডেক্স) পাঠযোগ্য জাভা উত্সে ছড়িয়ে দিন। ফ্রেডের উল্লেখ হিসাবে আপনি ডেক্স 2 জার এবং জেডি -গুই দিয়ে এটি সহজেই করতে পারেন । ফলস্বরূপ উত্সটি কোনও অ্যাপ্লিকেশনটির কার্যকারিতা পড়তে এবং বুঝতে দরকারী useful তবে এটি সম্ভবত 100% ব্যবহারযোগ্য কোড তৈরি করবে না। অন্য কথায়, আপনি উত্সটি পড়তে পারেন, তবে আপনি সত্যিই এটি সংশোধন এবং পুনঃস্থাপন করতে পারবেন না। মনে রাখবেন যে উত্সটি যদি অগ্রগতির সাথে অবিচ্ছিন্ন হয়ে থাকে তবে ফলস্বরূপ উত্স কোডটি আনুভূমিকায়িত করার পক্ষে যথেষ্ট বেশি কঠিন।

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

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

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

সর্বশেষে, পরামর্শে সাহস আরো উল্লেখ্য হয়। .Dex এবং .apk ফাইলগুলিকে জাভা .class ফাইলগুলিতে রূপান্তর করার জন্য এটি একটি retargeting সরঞ্জাম, যাতে তারা সাধারণত জাভা স্থির বিশ্লেষণ সরঞ্জামগুলি ব্যবহার করে বিশ্লেষণ করা যায়।


61

আমি এখানে যাবার প্রস্তাব দিই: https://github.com/JesusFreke/smali

এটি বাকশমালি সরবরাহ করে, যা ডেক্স ফাইলগুলির জন্য সবচেয়ে দুর্দান্ত বিপরীত প্রকৌশল সরঞ্জাম। এটি যিশুফ্রেইক তৈরি করেছেন, যে লোকটি অ্যান্ড্রয়েডের জন্য বিখ্যাত রম তৈরি করেছিল।


3
স্মালি ডালভিক আইএল-এর ভিত্তিতে একটি সমাবেশ-জাতীয় ভাষা, এটি সরাসরি জাভাতে অনুবাদ করা যায় না।
39

@endryha এটি করতে সক্ষম কোনও সরঞ্জাম নেই। আরও তথ্যের জন্য এই প্রশ্নটি দেখুন ।
আলবা মেন্ডিজ

1
কোড, কোড, কোড, ... কেন কেবল কোড? আপনি যদি APK টুল ব্যবহার করেন তবে আপনি সমস্ত কিছু ফিরে পাবেন! এবং এটি হিসাবে সহজ ./apktool d myprogram.apkআমার উত্তর দেখুন ।
আলবা মেন্ডিজ

30

এর আরো একটি সম্পূর্ণ সংস্করণ ফ্রেড এর উত্তর :

ম্যানুয়াল উপায়

ডেক্সের সমস্ত (সংকলিত) ক্লাসটি একটি জেআর থেকে বের করার জন্য প্রথমে আপনার একটি সরঞ্জাম প্রয়োজন । ডেক্স টুজার
নামে একটি রয়েছে , এটি একটি চীনা শিক্ষার্থী তৈরি করেছে।

তারপর, আপনি ব্যবহার করতে পারেন জেডি-GUI থেকে decompile সোর্স কোড JAR- র উপর ক্লাস।
ফলস্বরূপ উত্সটি বেশ পঠনযোগ্য হওয়া উচিত, কারণ ডেক্স 2জারটি কয়েকটি অপ্টিমাইজেশন প্রয়োগ করে।

স্বয়ংক্রিয় উপায়

আপনি APKTool ব্যবহার করতে পারেন । এটা করবে না স্বয়ংক্রিয়ভাবে সব শ্রেণীর (নিষ্কর্ষ .dex) সম্পদ ( .asrc), তারপর এটা রূপান্তর করবে বাইনারি এক্সএমএল করতে পাঠযোগ্য এক্সএমএল , এবং এটা হবে dissassemble তোমার জন্য ক্লাস।
বিচ্ছিন্নতা সর্বদা পচানোর চেয়ে আরও শক্তিশালী হবে, বিশেষত
প্রো গার্ডের সাথে নিবিড় জারগুলি দিয়ে!

কেবল APKTool কে APK ডিরেক্টরিকে ডিরেক্টরিতে ডিকোড করতে বলুন , তারপরে আপনি যা চান তা সংশোধন করুন
এবং শেষ পর্যন্ত এটিকে একটি এপিএকে এনকোড করুন । এখানেই শেষ.

গুরুত্বপূর্ণ: APK টুল বিযুক্ত করা । এটি পচা হয় না ।
উত্পন্ন কোডটি জাভা উত্স হবে না।
তবে আপনি এটি পড়তে সক্ষম হবেন এবং আপনি জেসমিনের সাথে পরিচিত হলে এটি সম্পাদনাও করতে পারবেন ।
আপনি যদি জাভা উত্স চান, দয়া করে ম্যানুয়াল পথে এগিয়ে যান ।


25

কখনও কখনও আপনি ভাঙা কোড পান, যখন dex2jar/ ব্যবহার করার সময় apktool, বিশেষত লুপগুলিতে। এই, ব্যবহার এড়াতে jadx একটি তৈরি ছাড়া, যা decompiles Dalvik বাইটকোড জাভা সোর্স কোডে, .jar/ .classপ্রথম ফাইল হিসাবে dex2jar(apktool ব্যবহারসমূহ dex2jar আমি মনে করি) আছে। এটি ওপেন সোর্স এবং সক্রিয় বিকাশেও রয়েছে। এমনকি এটিতে জিইউআই রয়েছে, জিইউআই-ধর্মান্ধদের জন্য। চেষ্টা করে দেখুন!


আমি মনে করি জ্যাডেক্সের কাছে সংকলনের বিকল্প নেই তবে কোডটি যদিও পঠনযোগ্য
বাডি

পছন্দ করেছেন javac "$(find . -name '*.java')"?
পোলিম

এপিপি গঠন সম্পর্কে কীভাবে? apk, zipalign, Signing ইত্যাদিতে ক্লাস স্থাপন
বুডি

@ এনেসবাটল ওয়েল আপনি এটি বাস্তবায়নে সহায়তা করতে পারেন - অন্যথায় আপনি এর জন্য অ্যাপটোল ব্যবহার করতে পারেন .. বা অ্যান্ড্রয়েড সরঞ্জামগুলির সাথে জিপলাইন / সাইন করতে পারেন
পলিম

1
@ লেজোনল আপনার জন্য মৃত্যুদণ্ড, দানব!
পোলিম

17

আমি ব্যবহার করেছি

  1. dex2jar + jd-gui
  2. javadecompilers.com
  3. enjarify
  4. Apktool

তবে গুগলের নিজস্ব সরঞ্জামগুলিকে কেউ মারছে না

1) অ্যান্ড্রয়েড স্টুডিও 2.x: বিল্ড> বিশ্লেষণ করুন k এখানে চিত্র বর্ণনা লিখুন

2) অ্যান্ড্রয়েড স্টুডিও 3.0: প্রোফাইল বা ডিবাগ APK এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


1
এনজারিফের জন্য প্লাস ওয়ান। আমার ব্যক্তিগত অভিজ্ঞতায়, এটি d2j
qre0ct

15

যেহেতু কেউ এটি উল্লেখ করেনি, তেমনি আরও একটি সরঞ্জাম রয়েছে: ডিইডি হোমপেজ

কীভাবে এবং কিছু ব্যাখ্যা ইনস্টল করুন: ইনস্টলেশন

শীর্ষ বাজারের অ্যাপ্লিকেশনগুলির সুরক্ষা সম্পর্কে এটি একটি আকর্ষণীয় গবেষণায় ব্যবহৃত হয়েছিল (সত্যিই সম্পর্কিত নয়, কেবল আপনি কৌতূহলী হলে): অ্যান্ড্রয়েড অ্যাপ্লিকেশন সুরক্ষা জরিপ


এটি আশাব্যঞ্জক মনে হচ্ছে। এটি কী জাভা কোডটি সরাসরি এপিপি গঠন করে? আবদ্ধ জাভা কোড সম্পর্কে কি?
স্যান্ডেলন

14

যেহেতু Dheeraj Bhaskarউত্তর অনেক বছর আগের তুলনামূলকভাবে পুরানো।

এখানে আমার সর্বশেষ (2019 বছর) উত্তর:

মূল যুক্তি

থেকে dexথেকে java sourcecode, বর্তমানে সমাধান দুই ধরনের আছে:

  • One Step: সরাসরি রূপান্তর dexকরতেjava sourcecode
  • Two Step: প্রথম ধর্মান্তরিত dexকরার jarদ্বিতীয় ধর্মান্তরিত jarকরারjava sourcecode

একটি পদক্ষেপ সমাধান: dexসরাসরিjava sourcecode

সরঞ্জামসমূহ

প্রক্রিয়া

  1. jadx-0.9.0.zip ডাউনলোড করুন , আনজিপ করুন, binফোল্ডারে কমান্ড লাইন jadxবা জিইউআই সংস্করণ দেখতে পাবেন jadx-gui, জিইউআই সংস্করণটি চালাতে ডাবল ক্লিক করুন:jadx-gui

  1. dexফাইল খুলুন

তারপরে জাভা উত্স কোডটি দেখাতে পারে:

  1. File -> save as gradle project

তারপরে জাভা সোর্সকোড পেয়েছেন:


দুটি পদক্ষেপ সমাধান

পদক্ষেপ 1: dexথেকেjar

সরঞ্জামসমূহ

প্রক্রিয়া

Dex2jar জিপ ডাউনলোড করুন , আনজিপ পেয়েছে d2j-dex2jar.sh, তারপরে:

  • apkথেকে jar:sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
  • dexথেকে jar:sh d2j-dex2jar.sh -f ~/path/to/dex_to_decompile.dex

উদাহরণ:

  v3.4.8 /Users/crifan/dev/dev_tool/android/reverse_engineering/dex-tools/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.huili.readingclub8825612.dex
dex2jar com.huili.readingclub8825612.dex -> ./com.huili.readingclub8825612-dex2jar.jar
  v3.4.8 ll
-rw-------  1 crifan  staff   9.5M  3 21 10:00 com.huili.readingclub8825612-dex2jar.jar
-rw-------  1 crifan  staff   8.4M  3 19 14:04 com.huili.readingclub8825612.dex

পদক্ষেপ 2: jarথেকেjava sourcecode

সরঞ্জামসমূহ

প্রক্রিয়া

এখানে ডেমো Procyonজার উত্স কোডে জার রূপান্তর করে:

প্রোকিওন-ডিকম্পিলার -০.০.৩৪.জার ডাউনলোড করুন

তারপরে সিনট্যাক্স ব্যবহার করুন:

java -jar /path/to/procyon-decompiler-0.5.34.jar -jar your_to_decompile.jar -o outputFolderName

উদাহরণ:

java -jar /Users/crifan/dev/dev_tool/android/reverse_engineering/Procyon/procyon-decompiler-0.5.34.jar -jar com.huili.readingclub8825612-dex2jar.jar -o com.huili.readingclub8825612

রফতানি উত্স কোডটি খোলার জন্য সম্পাদক ভিএসকোড ব্যবহার করে দেখুন:

উপসংহার

রূপান্তর শুদ্ধি: Jadx> Procyon> CRF>JD-GUI

ব্যবহারের পরামর্শ দিন: (এক ধাপের সমাধান) Jadx


আরও বিশদ ব্যাখ্যার জন্য, দয়া করে আমার অনলাইন চাইনিজ ইবুকটি দেখুন : 安卓 应用 的 安全 和 破解


আশ্চর্যজনক, তবে আমি যদি এই কমান্ডের মাধ্যমে 1 পদক্ষেপ (উইন্ডোজে ডেক্স থেকে জার ডিকম্পাইপাইল) চালানোর চেষ্টা করি তবেই এর dex2jar-2.0>d2j-dex2jar.bat -f D:\android\some_dex_file.dexব্যতিক্রম পেয়েছে:java.io.IOException: the src file not a .dex or zip file
Сергей

@ Сергей আপনি চেষ্টা করতে পারেন: d2j-dex2jar.bat "D:\android\some_dex_file.dex"ঠিক আছে নাকি?
ক্রাইফান

হ্যাঁ, আমি ঠিক চেষ্টা করেছি >d2j-dex2jar.bat file.dexকিন্তু ঠিক নেই। আমার .dexফাইলটি অনুলিপি করার কারণে এটি হতে পারে dalvik-cache?
Сергей

1
@। হ্যাঁ, আপনার সম্ভাব্য কারণটি হ'ল dex is copied from dalvik-cache, সম্ভবত হওয়া উচিতdex is decompiled from apk
আগস্ট'১৯ '

@ ক্রফ্যান, এই উত্তরের জন্য ধন্যবাদ। জেএডএক্স চিত্তাকর্ষক। আমি আবার কাজে ফিরে যাব ইমানুয়েল @ জেডি-গুই
ইমানুয়েল দুপুয়

13

একবার আপনি আপনার APK ফাইলটি ডাউনলোড করার পরে, সম্পাদনাযোগ্য জাভা কোড / নথি পেতে আপনাকে নিম্নলিখিত পদক্ষেপগুলি করতে হবে।

  1. জিপিতে আপনার এপিকে ফাইলটি রূপান্তর করুন (আপনার ডাউনলোড শুরু করার সাথে সাথে "সংরক্ষণ করুন" বিকল্পের সাথে চলবেন না, কেবল "সেভ হিসাবে" যান এবং আপনার এক্সটেনশনটিকে .zip হিসাবে উল্লেখ করুন) এরকম করে আপনি APKTOOL এড়াতে পারবেন ...
  2. জিপ ফাইলটি এক্সট্রাক্ট করুন, সেখানে আপনি somefilename.dex খুঁজে পেতে পারেন। সুতরাং এখন আমাদের ডেক্স -> .ক্লাস রূপান্তর করা দরকার
  3. এটি করার জন্য আপনার "ডেক্স 2জার" দরকার (আপনি এটি ডাউনলোড করতে পারেন http://code.google.com/p/dex2jar/ থেকে , এক্সট্র্যাক্ট করার পরে, কমান্ড প্রম্পটে আপনার মতো উল্লেখ করতে হবে, [ডি: 2 ডেক্স 2জার-0.09> dex2jar somefilename.dex] (মনে রাখবেন যে আপনার somefilename.dex একই ফোল্ডারের ভিতরে থাকা উচিত যেখানে আপনি আপনার ডেক্স 2 বাজার রেখেছেন))
  4. Http://www.viralpatel.net/blogs/download/jad/jad.zip থেকে জাদটি ডাউনলোড করুন এবং এটিটি বের করুন । একবার বের করা গেলে আপনি "jad.exe" এবং "Readme.txt" এর মতো দুটি ফাইল দেখতে পাবেন (কখনও কখনও "jad.exe" এর পরিবর্তে "jad.txt" থাকতে পারে, সুতরাং কেবল চালানোর জন্য এটির এক্সটেনশন as.exe নামকরণ করুন)
  5. শেষ অবধি , কমান্ড প্রম্পটে আপনাকে [D: ad jad> jad -sjava yourfilename.class] এর মতো উল্লেখ করতে হবে এটি আপনার শ্রেণি ফাইলটি সম্পাদনযোগ্য জাভা নথিতে পার্স করবে।

8

সঙ্গে Dedexer , আপনি অবতরণ করতে .dexDalvik বাইটকোডে গঠন করে নিতে ফাইল ( .ddx)।

আমি যতদূর জানি জাভা অভিমুখে পচন সম্ভব নয়।
আপনি এখানে ডালভিক বাইটকোড সম্পর্কে পড়তে পারেন ।


1
আপনি যেহেতু একজনই বলছেন যে এটি বর্তমানে সম্ভব নয়, যা সত্য বলে মনে হচ্ছে accepted
উইল

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

8

অ্যান্ড্রয়েড বিপরীত প্রকৌশল সম্ভব । Apk ফাইল থেকে জাভা ফাইল পেতে এই পদক্ষেপগুলি অনুসরণ করুন।

ধাপ 1 . ডেক্স 2জার ব্যবহার করছেন

  • .Apk ফাইল থেকে .jar ফাইল উত্পন্ন করুন
  • আদেশ: dex2jar sampleApp.apk

ধাপ ২ . জেডি-জিইউআই ব্যবহার করে

  • এটা decompiles .class ফাইল অর্থাৎ, আমরা পাবেন obfuscated APK থেকে .java ফিরে।

তবে আমি যদি আবার সমস্ত বিগলিত উত্স কোডটি সংকলন করি তবে এটি চলবে না, সংকলকটি অনেক ত্রুটি দেখায়।


2
রিভার্স ইঞ্জিনিয়ারিং করে না মানে কর্মগুলির । প্রকৃতপক্ষে, প্রোগুয়ার্ড-অবরুদ্ধ জেআরগুলি সঠিকভাবে পচা হবে না।
আলবা মেন্ডেজ

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

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

6

সাম্প্রতিক ডেবিয়ানের পাইথন প্যাকেজ রয়েছে androguard:

Description-en: full Python tool to play with Android files
 Androguard is a full Python tool to play with Android files.
  * DEX, ODEX
  * APK
  * Android's binary xml
  * Android resources
  * Disassemble DEX/ODEX bytecodes
  * Decompiler for DEX/ODEX files

সম্পর্কিত প্যাকেজ ইনস্টল করুন:

sudo apt-get install androguard python-networkx

ডেক্সপাইল ডিএক্স ফাইল:

$ androdd -i classes.dex -o ./dir-for-output

classes.dexApk + Decompile থেকে এক্সট্রাক্ট করুন :

$ androdd -i app.apk -o ./dir-for-output

এপিপি ফাইল জাভা সংরক্ষণাগার (জার) এর চেয়ে বেশি কিছু নয়, আপনি সংরক্ষণাগার থেকে ফাইলগুলি এর মাধ্যমে বের করতে পারেন:

$ unzip app.apk -d ./dir-for-output

5

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

APK Easy Tool for Windows (GUI tool, friendly)
Bytecode Viewer - APK/Java Reverse Engineering Suite
URET Android Reverser Toolkit

এগুলির সন্ধানের জন্য সেরা স্থানটি এক্সডিএ বিকাশকারীদের ফোরামে।


4

আপনি জেএডএক্স চেষ্টা করতে পারেন ( https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler ), এটি ডেক্স সংক্ষেপণের জন্য একটি উপযুক্ত সরঞ্জাম।

এবং হ্যাঁ, এটি অনলাইনে (আমার: 0) নতুন সাইটেও উপলব্ধ: http://www.javadecompilers.com/apk/


বলুন, এটি পরিবর্তে কোড ব্যবহার করা যাবে? মানে নিজেও অ্যান্ড্রয়েডে? এবং এখানে ওয়েবসাইটটি নয়: github.com/skylot/jadx ?
অ্যান্ড্রয়েড বিকাশকারী 23

2

নিম্নলিখিত পাঁচটি পদক্ষেপে এটি করা যেতে পারে:

এই মণিটি স্বয়ংক্রিয়ভাবে এমনকি প্রয়োজনীয় সরঞ্জামগুলির ইনস্টলেশন এমনকি আপনার জন্য এই জিনিসগুলি করে

  1. জিপি এপি কে ফাইল রূপান্তর
  2. ফাইলটি আনজিপ করুন
  3. এটি থেকে ক্লাস.ডেক্স উত্তোলন করুন
  4. ক্লাস.ডেক্সকে জার ফাইলে রূপান্তর করতে ডেক্স থেকে জার ব্যবহার করুন
  5. জাভা উত্স কোড হিসাবে জার ফাইলটি খুলতে jadx gui ব্যবহার করুন

2

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

সিএফআর 0.110, জেডিএক্স 0.6.1 বা ফার্নফ্লোয়ার (বিশ্লেষণাত্মক ডিকম্পিলার)।


1

আপনি যদি ডেক্স 2জার ডাউনলোড করতে খুঁজছেন না, তবে জার ফাইলগুলিতে যে কোনও এপিকে ডেকম্পাইল করতে কেবল apk_grabberপাইথন স্ক্রিপ্টটি ব্যবহার করুন । তারপরে আপনি এগুলি জেডি-গুই দিয়ে পড়েন।

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