Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
javajive — مفكك ومشغل تسلسل Java مكتوب بالكامل بلغة Go | Kitploit
أدوات/GitHubGitHub/yaklang/javajive
التحليل الثابتتحليل الكودالهندسة العكسيةالبرمجة النصية والأتمتةتحليل البرمجيات الخبيثةالأدوات والمكوناتتحليل الملفات الثنائية
GitHubyaklang/javajive

javajive

مفكك ومشغل تسلسل Java مكتوب بالكامل بلغة Go

عرض المستودع
22488منذ 6س 22دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
الموقع الإلكتروني
مشاركة

JavaJive — مجموعة أدوات Java خالصة بلغة Go: فك الترجمة، تحليل الفئات، التسلسل

JavaJive

CI Pages Go Reference License: MIT

English | 简体中文 | Website

مجموعة أدوات Java محمولة، خالصة بلغة Go — مستخرجة ومقلّمة من yaklang — تقوم بثلاثة أشياء ولا شيء غيرها:

  • فك الترجمة — .class / .jar / .war / .zip → شيفرة Java قابلة للقراءة.
  • تحليل الفئات — فحص بنية ملف .class (المجمّع الثابت، الحقول، الدوال، الإصدار، أعلام الوصول).
  • التسلسل/إلغاء التسلسل — تحليل وإعادة تجميع صيغة نقل تسلسل Java (ObjectStream) بدقة بايتية، وتحويلها من/إلى JSON.

مصمّمة للمحمولية والتضمين:

  • Go خالصة، ملف تنفيذي واحد — بدون JDK، بدون cgo، بدون وقت تشغيل ANTLR، بدون مكتبات أصلية. تُترجم تبادلياً إلى linux / macOS / windows على amd64 و arm64.
  • استيراد واحد — حزمة واجهة موحّدة javajive تغلّف القدرات الثلاث جميعها؛ وتبقى الحزم الفرعية متاحة للاستخدام المتقدم.
  • واجهة سطر أوامر من الدرجة الأولى — أوامر فرعية decompile و classinfo و serial، مبنية على المكتبة القياسية.
  • مُختبرة تبادلياً مقابل JDK حقيقي — تقوم CI بترجمة ملفات .class / .jar حقيقية وكتل مُسلسلة بـ JDK باستخدام javac/java، ثم تتحقق من JavaJive مقابلها (انظر HARNESS-WORKFLOW.md).
  • رسم تبعيات مقلّم — أُعيد تنفيذ utils / codec / log / go-funk كنواة internal/ دنيا ومكتفية ذاتياً.

التحقق من v0.4.0

سجّل تدقيق تفاضلي كامل لـ 38 ملف JAR صفر تراجعات مسجّلة مقابل الأساس الثابت: أُبقيت جميع ملفات JAR العشرين النظيفة الترجمة سابقاً و26 منها تُترجم الآن بالكامل. تبقى عيوب الأساس و4 دوال موجودة كأطراف فارغة مرئية. انظر نتائج كل ملف JAR وإعادة الإنتاج.

تسجّل 250 رحلة ذهاب وإياب دلالية معزولة الترجمة والتحقق من JVM والأطراف الفارغة والتساوي في وقت التشغيل بشكل منفصل؛ فئات التطبيق الأصلية غائبة عن مسارات الفئات المعاد بناؤها. تشغّل CI التدقيق الدلالي على JDK 17 و21، والمقارنة التاريخية الكاملة، ومصفوفات OS/Go والسباق. لا تُثبت هذه الفحوصات تكافؤ كل دالة مكتبة. انظر التنفيذ والحدود المتبقية.

المعايير التاريخية (v0.3.0)

أُبلغت الأرقام التالية لـ v0.3.0 في 2026-09-05. وهي ليست نتائج قبول للإصدار الحالي ولا دليلاً على التكافؤ السلوكي.

قِيست على 34 ملف JAR واقعياً (18,759 وحدة مسطّحة) عبر فك الترجمة → إعادة الترجمة بـ javac --release 8 → إعادة التغليف → التحقق من JVM:

  • معدل نظافة الوحدات 100% — 18,759 / 18,759 وحدة مسطّحة (Outer$Inner.java) تُترجم مجدداً بـ صفر أخطاء javac، و0 أخطاء نحوية عبر جميع ملفات JAR الـ34 (تأكيد صارم تفرضه CI، فلا يمكن لخطأ نوعي أن يختفي خلف فشل محلّل معجمي).
  • جميع المكتبات الـ34 تكمل الرحلة كاملة — فك الترجمة → إعادة الترجمة → إعادة التغليف → تحقق JVM خارجي -Xverify:all لكل فئة ينجح من البداية إلى النهاية (المُرمّز مطابق بايتياً لـ ملف JAR الأصلي تحت تفاضل الاستدعاءات). مثبّت في provenClean.
  • 14 / 14 خوارزمية مستضافة ذاتياً (MD5 · SHA-256 · CRC32 · quicksort · Base64 · HeapSort · KMP · SwitchFSM · TryFinally · UnionFind · DiamondTryCatch · DiamondTryFinally · ForContinue · ComputeIfAbsent) تكمل الرحلة بايتاً ببايت.
  • المرتبة #1 في مقارنة ثلاثية عادلة على مجموعة الـ8 ملفات JAR الأصلية — معدل الوحدات النظيفة 100% مقابل Vineflower 1.10.1 (90.8%) وCFR 0.152 (79.8%)؛ متفوقة على جميع ملفات JAR الـ8 مقابل كليهما.

انظر BENCHMARK.md للمنهجية الكاملة وجداول كل ملف JAR وأوامر إعادة الإنتاج.

التثبيت

# CLI
go install github.com/yaklang/javajive/cmd/javajive@latest

# Library
go get github.com/yaklang/javajive@latest

أو البناء من المصدر:

git clone https://github.com/yaklang/javajive
cd javajive
go build -o javajive ./cmd/javajive

يتطلب Go 1.22+.

واجهة سطر الأوامر

javajive <command> [arguments]

Commands:
  decompile   decompile .class/.jar/.war/.zip or a directory into Java source
  classinfo   print the structure of a .class file (version, fields, methods)
  serial      Java serialization tools (subcommands: tojson, fromjson)
  version     print the version
  help        show help

decompile

# Single class: prints to stdout by default, or -o to write a file.
javajive decompile Foo.class
javajive decompile Foo.class -o Foo.java

# Archive: defaults to a "<input>.src" directory, or -o to choose one.
javajive decompile app.jar
javajive decompile app.war -o ./app-src

# Directory: recursively decompile .class files (requires -o output dir).
javajive decompile ./classes -o ./src

classinfo

javajive classinfo Foo.class
class:      InvisibleAnnoSeed
super:      java/lang/Object
version:    61.0
access:     public
constants:  18

fields (0):

methods (2):
   <init>()V
   run()I

serial

# Serialized binary -> JSON. (-hex: input is a hex string, -: read from stdin)
javajive serial tojson dump.bin
printf 'aced000574000568656c6c6f' | javajive serial tojson -hex -

# JSON -> serialized binary. (default prints hex; with -o writes raw bytes)
javajive serial fromjson dump.json -o out.bin
javajive serial fromjson dump.json          # prints hex

المكتبة

استخدم حزمة الواجهة الموحّدة — استيراد واحد يغطي القدرات الثلاث جميعها:

import "github.com/yaklang/javajive"

// Decompile a single class, or a whole archive into a directory.
src, err := javajive.Decompile(classBytes)
err = javajive.DecompileArchive("app.jar", "app-src")

// Inspect class structure.
obj, err := javajive.ParseClass(classBytes)
_ = obj.GetClassName()

// Java serialization: binary -> JSON -> binary.
objs, _ := javajive.ParseSerialized(raw)          // or ParseSerializedHex(hexStr)
jsonBytes, _ := javajive.SerializedToJSON(objs...)
restored, _ := javajive.SerializedFromJSON(jsonBytes)
out := javajive.MarshalSerialized(restored...)

واجهة برمجة موحّدة

الدالةالغرض
Decompile(classBytes) (string, error)فك ترجمة بايتات ملف .class واحد
DecompileFile(path) (string, error)فك ترجمة ملف .class واحد من القرص
DecompileWithResolver(classBytes, resolve)فك الترجمة مع مُحلّل بايتات الفئات
DecompileArchive(src, dst) errorفك ترجمة .jar/.war/.zip إلى مجلد
ParseClass(classBytes) (*ClassObject, error)تحليل بايتات ملف .class واحد
ParseClassFile(path) (*ClassObject, error)تحليل ملف .class واحد من القرص
ParseSerialized(raw) ([]JavaSerializable, error)تحليل تدفق تسلسل
ParseSerializedHex(hexStr) ([]JavaSerializable, error)تحليل تدفق مُرمّز سادس عشرياً
MarshalSerialized(objs...) []byteإعادة ترميز الكائنات إلى صيغة النقل
MarshalSerializedHex(objs...) stringإعادة الترميز إلى سادس عشري
SerializedToJSON(objs...) ([]byte, error)تحويل الكائنات إلى JSON
SerializedFromJSON(raw) ([]JavaSerializable, error)إعادة بناء الكائنات من JSON

الحزم الفرعية مُصدّرة أيضاً للاستخدام المتقدم: classparser، classparser/jarwar، serialization.

الفروق عن yaklang الأصلية

تنزيل الأداة