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




android reverse-engineering (11)

এটি সহজ

এই সরঞ্জাম পান:

1) dex2jar dex ফাইল jar ফাইল অনুবাদ

2) jd-gui জারে জাভা ফাইল দেখতে

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

পদ্ধতি:

এবং এখানে কীভাবে ডিপম্পাইল করা যায় তার পদ্ধতি:

ধাপ 1:

Test_apk-debug.apk এ test.dapk-debug_dex2jar.jar এ ক্লাস.dex রূপান্তর করুন

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

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

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

ধাপ ২:

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

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



আমি আসলে এখানে যেতে সুপারিশ চাই: https://github.com/JesusFreke/smali

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


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

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

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

1) অ্যান্ড্রয়েড স্টুডিও 2.x: বিল্ড> APK বিশ্লেষণ

2) অ্যানড্রইড স্টুডিও 3.0: প্রোফাইল বা ডিবাগ এপিকে


এই পাঁচটি পদক্ষেপ অনুসরণ করা যেতে পারে:

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

  1. জিপিপি এপিকে ফাইল রূপান্তর
  2. ফাইল আনজিপ করুন
  3. এটা থেকে classes.dex নিষ্কাশন
  4. jar ফাইল মধ্যে class.dex রূপান্তর করতে জার dex ব্যবহার করুন
  5. জাডক্স সোর্স কোড হিসাবে জার ফাইলটি খুলতে jadx gui ব্যবহার করুন

একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ডিকম্পাইল করার সবচেয়ে সহজ পদ্ধতি হল PlayJore থেকে ShowJava নামে একটি অ্যাপ্লিকেশন ডাউনলোড করা। শুধু অ্যাপ্লিকেশন তালিকা থেকে decompiled প্রয়োজন অ্যাপ্লিকেশন নির্বাচন করুন। আপনি একটি অ্যাপ্লিকেশন decompile করতে ব্যবহার করতে পারেন তিনটি ভিন্ন decompiler আছে -

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


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


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

পাঠযোগ্য জাভা উত্সে ডালvik বাইটেকোড (ডিএক্স) ডিকম্পাইল করুন। আপনি dex2jar উল্লেখ হিসাবে, dex2jar এবং jd-gui সঙ্গে সহজেই এই কাজ করতে পারেন। ফলে উৎসটি একটি অ্যাপ্লিকেশনের কার্যকারিতা পড়তে এবং বোঝার জন্য দরকারী তবে সম্ভবত 100% ব্যবহারযোগ্য কোড তৈরি করবে না। অন্য কথায়, আপনি উৎসটি পড়তে পারেন, তবে আপনি সত্যিই এটি পরিবর্তন এবং পুনঃনির্ধারণ করতে পারবেন না। মনে রাখবেন যে যদি উৎস প্রোগুয়ার্ডের সাথে অবহেলিত হয়, তাহলে সোর্স কোডটি অসংলগ্ন করা আরও কঠিন হবে।

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

আপনি যদি স্মালি রুটটি যান তবে আপনি এপিকে স্টুডিওতে চেষ্টা করতে পারেন, একটি আইডিই যা উপরের ধাপগুলির কিছুকে স্বয়ংক্রিয়ভাবে ডিপম্পলিং এবং একটি APK পুনরায় কম্পাইল এবং ডিভাইসে ইনস্টল করার জন্য এটি স্বয়ংক্রিয়ভাবে চালায়।

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

অবশেষে, dare এর পরামর্শ এছাড়াও নোট। এটি java .class ফাইলগুলিতে .dex এবং .apk ফাইলগুলিকে রূপান্তর করার জন্য একটি পুনরুদ্ধারের সরঞ্জাম। তাই এটি সাধারণ জাভা স্ট্যাটিক বিশ্লেষণ সরঞ্জামগুলি ব্যবহার করে বিশ্লেষণ করা যেতে পারে।


সাম্প্রতিক ডেবিয়ানের পাইথন প্যাকেজ 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

Decompile DEX ফাইল:

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

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

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

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

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

Dedexer , আপনি ডেলিক বাইটকোড ( .ddx ) এ .dex ফাইলটি .dex পারেন।

যতদূর আমি জানি জাভা দিকে decompiling সম্ভব নয়।
আপনি here Dalvik বাইটকোড সম্পর্কে পড়তে পারেন।


fred এর answer একটি সম্পূর্ণ সংস্করণ:

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

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

তারপরে, আপনি জার-এ সোর্স কোডগুলিতে ক্লাসগুলিকে ডিকম্পাইল করতে jd-gui ব্যবহার করতে পারেন।
Dex2jar কিছু অপ্টিমাইজেশান প্রয়োগ হিসাবে, ফলে উৎস বেশ পঠনযোগ্য হওয়া উচিত।

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

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

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

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





dex