
निर्भरता-मुक्त Python CLI, iOS .ipa अभिलेखागारों को अनपैक, निरीक्षण, संपादित और पुनर्निर्माण करने के लिए, plists और strings को XML में परिवर्तित करते हुए Mach-O बाइनरीज़ और साइनिंग बंडलों को संरक्षित रखता है।
#IPAForge
IPAForge एक निर्भरता-मुक्त Python कमांड-लाइन टूल है जो iOS .ipa संग्रहों को अनपैक करने, निरीक्षण करने, संपादित करने और पुनर्निर्माण करने के लिए है।
यह पूरे संग्रह को निकालता है, संपादन योग्य Apple plist और स्थानीयकरण प्रारूपों को पठनीय XML में परिवर्तित करता है, अपारदर्शी और बाइनरी सामग्री को बाइट-दर-बाइट संरक्षित रखता है, और प्रत्येक रूपांतरण को ipaforge.yml में दर्ज करता है ताकि फ्रेमवर्क को faithfully पुनर्निर्माण किया जा सके।
जिम्मेदारी से उपयोग करें: 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 साइनर के साथ बंडलों पर हस्ताक्षर करता है। यह Mach-O बाइनरी के लिए CodeDirectory डेटा और एप्लिकेशन बंडलों के लिए नई _CodeSignature/CodeResources फ़ाइलें बनाता है।
स्टॉक iOS उपकरणों पर इंस्टॉलेशन के लिए, एक वास्तविक डेवलपर प्रमाणपत्र और एक संगत प्रोविज़निंग प्रोफ़ाइल का उपयोग करें:
ipaforge -b MyApp \
--p12 developer.p12 \
--p12-password 'your-password' \
--provision embedded.mobileprovision
कस्टम एंटाइटलमेंट्स एम्बेड करने के लिए:
ipaforge -b MyApp --entitlements entitlements.plist
To intentionally create an unsigned archive:
ipaforge -b MyApp --no-sign
Unsigned archives generally cannot be installed by 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 अविश्वसनीय संग्रह सामग्री को संसाधित करता है। टूल व्यक्तिगत संग्रह सदस्यों और कुल असंपीड़ित संग्रह आकार पर रक्षात्मक सीमाएँ लागू करता है, लेकिन फिर भी आपको अज्ञात फ़ाइलों का निरीक्षण एक पृथक वातावरण में करना चाहिए।
जब तक आपके पास उनका विश्लेषण और हस्ताक्षर करने का कानूनी अधिकार न हो, तब तक एप्लिकेशन वितरित या इंस्टॉल न करें।
यह README IPAForge 1.24.0 का वर्णन करता है।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।