
निर्भरता-मुक्त Python CLI, iOS .ipa अभिलेखागारों को अनपैक, निरीक्षण, संपादित और पुनर्निर्माण करने के लिए, plists और strings को XML में परिवर्तित करते हुए Mach-O बाइनरीज़ और साइनिंग बंडलों को संरक्षित रखता है।
IPAForge एक निर्भरता-मुक्त Python कमांड-लाइन टूल है जो iOS .ipa अभिलेखागार को अनपैक करने, निरीक्षण करने, संपादित करने और पुनर्निर्माण करने के लिए है।
यह पूरे अभिलेखागार को निकालता है, संपादन योग्य Apple plist और स्थानीयकरण प्रारूपों को पठनीय XML में परिवर्तित करता है, अपारदर्शी और बाइनरी सामग्री को बाइट-दर-बाइट संरक्षित करता है, और प्रत्येक रूपांतरण को ipaforge.yml में रिकॉर्ड करता है ताकि फ्रेमवर्क को विश्वसनीय रूप से पुनर्निर्मित किया जा सके।
जिम्मेदारी से उपयोग करें: IPAForge का उद्देश्य अंतर-संचालनीयता, सुरक्षा अनुसंधान और वैध अनुप्रयोग विश्लेषण है। लागू कानूनों, लाइसेंसों और सेवा की शर्तों का सम्मान करें।
.ipa अभिलेखागार को डिकोड और पुनर्निर्माण करें।.strings फ़ाइलों को संपादन योग्य XML में परिवर्तित करें।.car, .nib, और को संरक्षित करें।.momipaforge.yml में प्रति-फ़ाइल वर्गीकरण और रूपांतरण मेटाडेटा उत्पन्न करें।.ipa अभिलेखागार जिसमें Payload/<AppName>.app बंडल हो।IPAForge को सीधे एकल Python फ़ाइल के रूप में उपयोग किया जा सकता है:
python3 ipaforge.py --help
अपने PATH पर ipaforge कमांड स्थापित करने के लिए:
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
जानबूझकर अहस्ताक्षरित अभिलेखागार बनाने के लिए:
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 IPAForge 1.24.0 का वर्णन करता है।