كيفية فك كلها جرة الملف ؟ [مغلقة]
-
22-07-2019 - |
سؤال
لا أحد يعرف من حر decompiler التي يمكن فك جرة كاملة بدلا من ملف واحد في الصف ؟ لدي مشكلة مع فئات فرعية مثل اسم$1.class اسم$2.class name.class
المحلول
2009: JavaDecompiler يمكن القيام بعمل جيد مع جرة:منذ 0.2.5 جميع الملفات في جرة الملفات المعروضة.
انظر أيضا السؤال "كيف "فك" جافا فئة الملفات؟".
JD-الكسوف لا يبدو أن تغيرت منذ أواخر عام 2009 على الرغم من (انظر التغييرات).
لذلك التكامل مع أحدث الكسوف (3.8, 4.2+) قد يكون مشكلة.
JD-Core بنشاط المحافظة.
وكلاهما نتيجة رائعة عمل (إذن المستخدم) إيمانويل دوبوي.
2018:أكثر حداثة الخيار المذكور في التعليقات قبل ديفيد كينيدي Araujo:
JetBrains/intellij-المجتمع/الإضافات/java decompiler/المحرك
Fernflower هو الأول في الحقيقة العمل التحليلي ل Java decompiler وربما على مستوى رفيع لغة البرمجة بشكل عام.
java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination> java -jar fernflower.jar -hes=0 -hdc=0 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
انظر أيضا كيفية فك إلى ملفات جافا intellij idea من أجل قيادة العمل مع الأخيرة IntelliJ IDEA.
نصائح أخرى
إذا كنت يحدث ليكون كل قذيفة باش و جاد:
JAR=(your jar file name)
unzip -d $JAR.tmp $JAR
pushd $JAR.tmp
for f in `find . -name '*.class'`; do
jad -d $(dirname $f) -s java -lnc $f
done
popd
وأنا قد تكون صغيرة، صغيرة قليلا قبالة مع ذلك، ولكن ينبغي لها أن تعمل أكثر أو أقل كما هو معلن. يجب أن ينتهي مع $JAR.tmp
التي تحتوي على الملفات الخاصة بك decompiled.
أولا وقبل كل شيء ، من الجدير بالذكر أن جميع جافا ملفات الأرشيف (.jar
/.war
/الخ...) هي كل شيء في الأساس مجرد نزوة.zip
الملفات, مع عدد قليل وأضاف يظهر والبيانات الوصفية.
ثانيا لمعالجة هذه المشكلة وأنا شخصيا استخدام العديد من الأدوات التي تتعامل مع هذه المشكلة على جميع المستويات:
- Jad + Jadclipse بينما كان يعمل في IDE على إلغاء ترجمته
.class
الملفات - برنامج WinRAR, المفضل أداة ضغط أصلا يدعم جافا المحفوظات (مرة أخرى ، انظر الفقرة الأولى).
- للمقارنة, المفضل مهرجان دبي السينمائي الدولي أداة ، عندما يتم تكوين بشكل صحيح يمكن القيام به على ذبابة مقارنات بين أي ملف الأرشيف ، بما في ذلك
jar
s.تستحق المحاولة.
والاستفادة من كل ما سبق هو أن لا تحتاج إلى عقد أي أداة خارجية الذي يبعثر بلدي بيئة العمل.كل شيء سوف تحتاج من أي وقت مضى من واحد من تلك الملفات التي يمكن التعامل معها داخل IDE أو diffed مع ملفات أخرى أصلا.
ولقد كان نجاحا معقولا مع أداة المسمى (محبط) " JD: جافا المنقح ".
ولقد وجدت أنه أفضل من معظم decompilers <م> عند التعامل مع فئات جمعتها جافا 5 وأعلى م>. لسوء الحظ، فإنه لا يزال لدينا بعض السقطات حيث JAD سينجح بشكل طبيعي.
وشيء من هذا القبيل:
jar -xf foo.jar && find . -iname "*.class" | xargs /opt/local/bin/jad -r
وربما؟
أدخل ما يلي في decompile.jar.sh
# Usage: decompile.jar.sh some.jar [-d]
# clean target folders
function clean_target {
rm -rf $unjar $src $jad_log
}
# clean all debug stuff
function clean_stuff {
rm -rf $unjar $jad_log
}
# the main function
function work {
jar=$1
unjar=`basename $jar.unjar`
src=`basename $jar.src`
jad_log=jad.log
clean_target
unzip -q $jar -d $unjar
jad -d $src -ff -r -lnc -o -s java $unjar/**/*.class > $jad_log 2>&1
if [ ! $debug ]; then
clean_stuff
fi
if [ -d $src ]
then
echo "$jar has been decompiled to $src"
else
echo "Got some problems check output or run in debug mode"
fi
}
function usage {
echo "This script extract and decompile JAR file"
echo "Usage: $0 some.jar [-d]"
echo " where: some.jar is the target to decompile"
echo " use -d for debug mode"
}
# check params
if [ -n "$1" ]
then
if [ "$2" == "-d" ]; then
debug=true
set -x
fi
work $1
else
usage
fi
- chmod +x decomplie.jar.sh //تنفيذي
- ln-s ./decomplie.جرة.s /usr/bin/دي جي
جاهزة للاستخدام, فقط اكتب dj your.jar
وسوف تحصل على your.jar.src
مجلد مع المصادر.استخدام -d
خيار وضع التصحيح.
وملف جرة هو مجرد ملف مضغوط مع التمديد جرة. يجب أن تكون قادرة على فك الضغط (برنامج لضغط الملفات) جرة تماما مثل ملف مضغوط.
ويمكنك استخراجها ومن ثم استخدام جاد ضد دير.
ملاحظة:هذا الحل يعمل فقط لنظام التشغيل Mac و *nix المستخدمين.
كما أنني حاولت أن تجد جاد مع أي حظ.بلدي سريعة الحل هو تحميل MacJad الذي يحتوي على جاد.بمجرد تحميلها يمكنك أن تجد جاد في [حيث يمكنك تحميلها-macjad]/MacJAD/Contents/Resources/jad.