Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SwiftyInsta — Instagram Private API Swift | Kitploit
أدوات/GitHubGitHub/them4hd1/swiftyinsta
الاستخبارات مفتوحة المصدر (OSINT)البرمجة النصية والأتمتةجمع المعلوماتالهندسة الاجتماعية
GitHubthem4hd1/swiftyinsta

SwiftyInsta

Instagram Private API Swift

عرض المستودع
230497منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SwiftyInsta (قديم)

يُرجى ملاحظة أن SwiftyInsta لم يعد يُصان بنشاط.
راجع #244 للمزيد من المعلومات.
اطّلع على Swiftagram إذا كنت تبحث عن بدائل محدّثة.


CI Status Version License Platform

Instagram يقدم نوعين من واجهات برمجة التطبيقات (API) للمطورين. منصة Instagram API (محدودة للغاية في الوظائف وقريبة من التوقف)، و Instagram Graph API لحسابات الأعمال والمبدعين فقط.

ومع ذلك، تعتمد تطبيقات Instagram على نوع ثالث من واجهات API، تُسمى الخاصة (Private API) أو غير الرسمية (Unofficial API)، و SwiftyInsta هو عميل لأنظمة iOS وmacOS وtvOS وwatchOS لها، مكتوب بالكامل بلغة Swift. يمكنك محاولة إنشاء تجربة أفضل لـ Instagram لمستخدميك، أو كتابة روبوتات لأتمتة المهام المختلفة.

هذه الـ API الخاصة لا تتطلب رمزًا مميزًا (token) أو تسجيل تطبيق ولكنها غير مصرح بها من قبل Instagram للاستخدام الخارجي. استخدمها على مسؤوليتك الخاصة.

التثبيت

مدير حزم Swift (Xcode 11 فأعلى)

  1. اختر File/Swift Packages/Add Package Dependency… من القائمة.
  2. الصق https://github.com/TheM4hd1/SwiftyInsta.git.
  3. اتبع الخطوات.

CocoaPods

CocoaPods هو مدير تبعيات لمشاريع Cocoa. يمكنك تثبيته باستخدام الأمر التالي:

root@kitploit:~
$ gem install cocoapods

لتضمين SwiftyInsta في مشروع Xcode الخاص بك باستخدام CocoaPods، حدده في ملف Podfile الخاص بك:

root@kitploit:~
use_frameworks!

target '<Your Target Name>' do
    pod 'SwiftyInsta', '~> 2.0'
end

ثم قم بتشغيل الأمر التالي:

root@kitploit:~
$ pod install

SwiftyInsta يعتمد على CryptoSwift و keychain-swift.

تسجيل الدخول

Credentials

root@kitploit:~
// هذه تحتاج إلى مراجع قوية.
self.credentials = Credentials(username: /* اسم المستخدم */, password: /* كلمة المرور */, verifyBy: .text)
self.handler = APIHandler()
handler.authenticate(with: .user(credentials)) {
    switch $0 {
    case .success(let response, _):
        print("تم تسجيل الدخول بنجاح.")
        // حفظ مؤقت في keychain بأمان لتسجيل الدخول مرة أخرى في المستقبل.
        guard let key = response.persist() else { return print("تعذر حفظ `Authentication.Response`.") }
        // قم بتخزين المفتاح `key` في أي مكان تريده لتتمكن من الوصول إلى `Authentication.Response` لاحقًا.
        // `UserDefaults` مجرد مثال.
        UserDefaults.standard.set(key, forKey: "current.account")
        UserDefaults.standard.synchronize()
    case .failure(let error):
        if error.requiresInstagramCode {
            /* تحديث الواجهة لطلب الرمز */
        } else {
            /* إبلاغ المستخدم */
        }
    }
}

بمجرد أن يكتب المستخدم رمز المصادقة الثنائية أو رمز التحدي، يمكنك ببساطة القيام بما يلي:

root@kitploit:~
self.credentials.code = /* الرمز */

وسيقوم completionHandler في authenticate(with: completionHandler:) السابق بالتقاط الاستجابة تلقائيًا.

LoginWebViewController

root@kitploit:~
let login = LoginWebViewController { controller, result in
    controller.dismiss(animated: true, completion: nil)
    // التعامل مع استجابة المصادقة.
    guard let (response, _) = try? result.get() else { return print("فشل تسجيل الدخول.") }
    print("تم تسجيل الدخول بنجاح.")
    // حفظ مؤقت في keychain بأمان لتسجيل الدخول مرة أخرى في المستقبل.
    guard let key = response.persist() else { return print("تعذر حفظ `Authentication.Response`.") }
    // قم بتخزين المفتاح `key` في أي مكان تريده لتتمكن من الوصول إلى `Authentication.Response` لاحقًا.
    // `UserDefaults` مجرد مثال.
    UserDefaults.standard.set(key, forKey: "current.account")
    UserDefaults.standard.synchronize()
}
if #available(iOS 13, *) {
    present(login, animated: true, completion: nil) // فقط اسحب لأسفل للإغلاق.
} else {
    present(UINavigationController(rootViewController: login),  // يضيف بالفعل زر `Cancel` للإغلاق.
            animated: true,
            completion: nil)
}

أو قم بتنفيذ UIViewController خاص بك باستخدام LoginWebView، ثم مرره إلى طريقة authenticate الخاصة بـ APIHandler باستخدام .webView(/* عرض الويب الخاص بتسجيل الدخول */).

Authentication.Response

إذا كنت قد قمت بالفعل بحفظ Authentication.Response لمستخدم:

root@kitploit:~
// استرداد المفتاح `key` الذي أرجعته `Authentication.Response.persist()`.
// في مثالنا، قمنا بتخزينه في `UserDefaults`.
guard let key = UserDefaults.standard.string(forKey: "current.account") else { return print("لم يتم العثور على `key`.") }
// استرداد `Authentication.Response` المحفوظة بأمان.
guard let cache = Authentication.Response.persisted(with: key) else { return print("لم يتم العثور على `Authentication.Response`.") }
// تسجيل الدخول.
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
    /* قم بفعل شيء هنا */
}

الاستخدام

جميع نقاط النهاية (endpoints) يمكن الوصول إليها بسهولة من نسخة APIHandler الخاصة بك.

root@kitploit:~
let handler: APIHandler = /* معالج صالح ومصادق عليه */
// على سبيل المثال يمكنك…
// …جلب صندوق الوارد الخاص بك.
handler.messages.inbox(with: .init(maxPagesToLoad: .max),
                       updateHandler: nil,
                       completionHandler: { _, _ in /* قم بفعل شيء */ })
// …جلب جميع متابعيك.
handler.users.following(user: .me,
                        with: .init(maxPagesToLoad: .max),
                        updateHandler: nil,
                        completionHandler: { _, _ in /* قم بفعل شيء */ })

علاوة على ذلك، تعرض الاستجابات الآن كل قيمة فردية موجودة في ملف JSON الذي ترجعه الـ API: فقط قم بالوصول إلى أي rawResponse من ParsedResponse وابدأ التصفح، أو التزم بالملحقات المقترحة (مثل User's username, name, إلخ و Media's aspectRatio, takenAt, content, إلخ).

المساهمات

طلبات السحب (Pull requests) و القضايا (Issues) مرحب بها جدًا.

المؤلفون

  • مهدي مخدومي (@TheM4hd1)، صيانة الإصدار 1.*
  • ستيفانو برتاغنو (@sbertix)، صيانة الإصدار 2.*

نحن نبحث بنشاط عن مشرفين.
راجع #244 للمزيد من المعلومات.

الترخيص

SwiftyInsta مرخص بموجب ترخيص MIT. اطّلع على LICENSE للمزيد من المعلومات.

تنزيل الأداة