
أداة Python CLI بدون تبعيات لفك حزم أرشيفات .ipa الخاصة بـ iOS وفحصها وتحريرها وإعادة بنائها، مع تحويل ملفات plist والسلاسل النصية إلى XML مع الحفاظ على ثنائيات Mach-O وحزم التوقيع.
IPAForge هي أداة سطر أوامر بلغة Python خالية من الاعتماديات الخارجية لفك ضغط أرشيفات iOS .ipa وفحصها وتحريرها وإعادة بنائها.
تقوم باستخراج الأرشيف بالكامل، وتحويل صيغ Apple plist وصيغ التوطين القابلة للتحرير إلى XML قابل للقراءة، وتحافظ على المحتوى المعتم والثنائي بايتًا ببايت، وتسجّل كل عملية تحويل في ipaforge.yml بحيث يمكن إعادة بناء الإطار بأمانة.
استخدمها بمسؤولية: IPAForge مخصصة للتشغيل البيني، والبحث الأمني، وتحليل التطبيقات المشروع. احترم القوانين والتراخيص وشروط الخدمة المعمول بها.
.ipa القياسية وإعادة بنائها..strings النصية القديمة إلى XML قابل للتحرير..car و.nib و.mom.ipaforge.yml..ipa صالح يحتوي على حزمة Payload/<AppName>.app.يمكن استخدام IPAForge مباشرة كملف Python واحد:
python3 ipaforge.py --help
لتثبيت أمر ipaforge في PATH الخاص بك:
python3 ipaforge.py --install
لاستخراج ملفات التوزيع المضمّنة دون تثبيتها:
python3 ipaforge.py --extract
ipaforge -d MyApp.ipa
يؤدي هذا إلى إنشاء دليل إطار في دليل العمل الحالي، عادةً ./MyApp/.
عدّل ملفات XML القابلة للقراءة داخل الإطار المُنشأ. تُحفظ بيانات الأرشيف الأصلية والمراجع في original/؛ وتُتتبَّع الملفات التي جرى تحويلها في ipaforge.yml.
ipaforge -b MyApp
المخرجات الافتراضية هي ./MyApp-signed.ipa في دليل العمل الحالي.
ipaforge -d MyApp.ipa decoded-framework
ipaforge -b decoded-framework rebuilt.ipa
ipaforge -d, --decode INPUT [OUTPUT]
ipaforge -b, --build INPUT [OUTPUT]
| الخيار | الوصف |
|---|---|
-d, --decode | فك ترميز IPA إلى دليل إطار قابل للتحرير. |
-b, --build | بناء IPA من دليل إطار مفكوك. |
-f, --force | الكتابة فوق دليل أو ملف مخرجات موجود. |
--no-meta | عدم كتابة ipaforge.yml أثناء فك الترميز. |
--keep-binary | إبقاء جميع الملفات ثنائية أثناء فك الترميز؛ تعطيل تحويل XML. |
-c 0-9, --compression-level 0-9 | تعيين مستوى ضغط ZIP. الافتراضي: 9. |
--no-sign | بناء أرشيف غير موقّع عن قصد. |
--entitlements FILE | تضمين الاستحقاقات في التوقيع المبني. |
--p12 FILE | التوقيع بشهادة مطوّر PKCS#12 حقيقية. |
--p12-password PASS | كلمة مرور شهادة PKCS#12. |
--provision FILE | تضمين ملف تزويد واستخدامه مع --p12. |
-v, --verbose | تمكين تسجيل التصحيح. |
-q, --quiet | طباعة الأخطاء فقط. |
--version | عرض إصدار IPAForge. |
-h, --help | عرض المساعدة. |
على Windows، يمكن استنتاج الوضع تلقائيًا: يُفكّ ترميز مدخل .ipa ويُبنى دليل إطار.
يوقّع وضع البناء الحزم باستخدام موقّع ad-hoc المدمج افتراضيًا. ينشئ بيانات CodeDirectory لثنائيات Mach-O وملفات _CodeSignature/CodeResources جديدة لحزم التطبيقات.
للتثبيت على أجهزة iOS الأصلية، استخدم شهادة مطوّر حقيقية وملف تزويد متوافقًا:
ipaforge -b MyApp \
--p12 developer.p12 \
--p12-password 'your-password' \
--provision embedded.mobileprovision
لتضمين استحقاقات مخصصة:
ipaforge -b MyApp --entitlements entitlements.plist
لإنشاء أرشيف غير موقّع عن قصد:
ipaforge -b MyApp --no-sign
الأرشيفات غير الموقّعة عمومًا لا يمكن تثبيتها بواسطة iOS.
غالبًا ما يحتوي الإطار المفكوك على:
MyApp/
├── Payload/
│ └── MyApp.app/
├── original/ # reference copies of signatures, profiles, and entitlements
├── readable/ # human-readable summaries for opaque formats and binaries
└── ipaforge.yml # file classifications and conversion metadata
لا يُحزَّم دليل original/ وipaforge.yml أبدًا في IPA المُعاد بناؤه.
تصنّف IPAForge الملفات المستخرجة إلى فئات تشمل:
native-bplist — قوائم خصائص ثنائية تُحوَّل إلى XML وتُعاد بناؤها كـ plists ثنائية.legacy-strings — ملفات .strings الكلاسيكية تُحوَّل إلى XML وتُعاد بناؤها كنص UTF-16.xml-plist — ملفات XML plist الموجودة تُحفظ كنص.opaque-compiled — صيغ Apple المترجمة الخاصة تُحفظ بايتًا ببايت.native-binary — ملفات Mach-O التنفيذية والمكتبات تُحفظ بايتًا ببايت.other-binary — الصور والصوت وبيانات DER والموارد الأخرى تُحفظ بايتًا ببايت.| الرمز | المعنى |
|---|---|
0 | عملية ناجحة. |
1 | خطأ وقت التشغيل، مثل أرشيف غير صالح أو فشل التوقيع. |
2 | خطأ في استخدام سطر الأوامر. |
141 | أُغلق المخرج القياسي مبكرًا بواسطة مستهلك أنبوب. |
تعالج IPAForge محتويات أرشيف غير موثوقة. تطبّق الأداة حدودًا دفاعية على الأعضاء الفردية في الأرشيف وإجمالي حجم الأرشيف غير المضغوط، لكن يجب عليك مع ذلك فحص الملفات غير المعروفة في بيئة معزولة.
لا توزّع أو تثبّت التطبيقات إلا إذا كان لديك الحق القانوني في تحليلها وتوقيعها.
أضف نص ترخيص المشروع هنا قبل النشر على GitHub. إذا لم يُضمَّن أي ترخيص، فلن يحصل مستخدمو GitHub تلقائيًا على إذن لاستخدام الكود أو تعديله أو إعادة توزيعه.
نرحّب بالمشكلات وطلبات السحب. يُرجى تضمين:
يصف هذا README الإصدار 1.24.0 من IPAForge.