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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MemorizingTrustManager — إضافة "plugin" لتطبيقات Android بلغة Java تتيح سؤال المستخدم حول شهادات SSL | Kitploit
أدوات/GitHubGitHub/ge0rg/memorizingtrustmanager
أمان أندرويدأدوات دفاعيةأمن الشبكاتالتشفيرأمن الجوالالمصادقة
GitHubge0rg/memorizingtrustmanager

MemorizingTrustManager

إضافة "plugin" لتطبيقات Android بلغة Java تتيح سؤال المستخدم حول شهادات SSL

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

الأكثر شعبية

عرض الكل →

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

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

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

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

MemorizingTrustManager - دعم السحابة الخاصة لتطبيقك

MemorizingTrustManager (MTM) هو مشروع يهدف إلى تمكين استخدام أكثر ذكاءً وأمانًا لـ SSL على أندرويد. إذا واجه شهادة SSL غير معروفة، فإنه يسأل المستخدم عما إذا كان يرغب في قبول الشهادة مرة واحدة، أو بشكل دائم، أو إحباط الاتصال. هذه خطوة نحو منع هجمات الوسيط (man-in-the-middle) عبر القبول الأعمى لأي شهادات غير صالحة، أو ذاتية التوقيع، و/أو منتهية الصلاحية.

MTM يهدف إلى توفير تكامل سلس داخل تطبيق أندرويد الخاص بك، وكود المصدر متاح تحت رخصة MIT.

لقطات الشاشة

MemorizingTrustManager dialog MemorizingTrustManager notification MemorizingTrustManager server name dialog

الحالة

MemorizingTrustManager قيد الاستخدام الإنتاجي في عميل XMPP yaxim. إنه قابل للاستخدام وسهل التكامل، على الرغم من أنه لا يدعم بعد التحقق من اسم المضيف (واجهة برمجة تطبيقات جافا تجعل تكامله صعبًا).

التكامل

MTM سهل التكامل في تطبيقك الخاص. اتبع هذه الخطوات أو ألقِ نظرة على التطبيق التجريبي في دليل example.

1. أضف MTM إلى مشروعك

قم بتنزيل كود MTM من GitHub، أو أضفه كـ وحدة فرعية git:

root@kitploit:~
# تنزيل مباشر:
git clone https://github.com/ge0rg/MemorizingTrustManager
# وحدة فرعية:
git submodule add https://github.com/ge0rg/MemorizingTrustManager

ثم أضف تبعية مشروع مكتبة إلى default.properties:

root@kitploit:~
android.library.reference.1=MemorizingTrustManager

2. أضف نشاط MTM (النافذة المنبثقة) إلى ملف البيان الخاص بك

قم بتحرير AndroidManifest.xml وأضف عنصر نشاط MTM مباشرة قبل نهاية وسم </application> الختامي.

root@kitploit:~
		...
		<activity android:name="de.duenndns.ssl.MemorizingActivity"
			android:theme="@android:style/Theme.Translucent.NoTitleBar"
			/>
	</application>
</manifest>

3. اربط MTM كمدير ثقة افتراضي لنوع الاتصال الخاص بك

ربط MemorizingTrustmanager في اتصالات HTTPS:

root@kitploit:~
// تسجيل MemorizingTrustManager لـ HTTPS
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(
	mtm.wrapHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier()));

بالنسبة لـ SSLSocket يجب عليك القيام بما يلي:

root@kitploit:~
// تسجيل MemorizingTrustManager لجميع اتصالات SSLSocket
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
HostnameVerifier hv = mtm.wrapHostnameVerifier(new org.apache.http.conn.ssl.StrictHostnameVerifier());
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
SSLContext.setDefault(sc);

// الاتصال بمقبس
SSLSocket s = ...;
s.startHandshake();
if (!hv.verify(your_domain_name, sslSocket.getSession())) {
    throw new CertificateException("Server failed to authenticate as " + your_domain_name);
}

أو، لـ Smack يمكنك استخدام setCustomSSLContext():

root@kitploit:~
org.jivesoftware.smack.ConnectionConfiguration connectionConfiguration = …
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
connectionConfiguration.setCustomSSLContext(sc);
connectionConfiguration.setHostnameVerifier(
	mtm.wrapHostnameVerifier(new org.apache.http.conn.ssl.StrictHostnameVerifier()));

افتراضيًا، يتراجع MTM إلى TrustManager الخاص بالنظام قبل سؤال المستخدم. إذا كنت لا تثق في المؤسسة، يمكنك فرض حوار في كل اتصال جديد عن طريق تمرير معامل defaultTrustManager = null إلى المنشئ:

root@kitploit:~
MemorizingTrustManager mtm = new MemorizingTrustManager(this, null);

إذا كنت ترغب في استخدام TrustManager أساسي مختلف، مثل AndroidPinning، فقط قم بتمريره إلى منشئ MTM:

root@kitploit:~
X509TrustManager pinning = new PinningTrustManager(SystemKeyStore.getInstance(),
	new String[] {"f30012bbc18c231ac1a44b788e410ce754182513"}, 0);
MemorizingTrustManager mtm = new MemorizingTrustManager(this, pinning);

4. اربح!

التسجيل

يستخدم MTM java.util.logging (JUL) لأغراض التسجيل. إذا لم تكن قد قمت بتكوين Handler لـ JUL، فإن أندرويد سيسجل افتراضيًا جميع الرسائل بمستوى Level.INFO أو أعلى. من أجل الحصول أيضًا على رسائل تسجيل التصحيح (تلك بمستوى Level.FINE أو أقل) تحتاج إلى تكوين Handler وفقًا لذلك. مشروع MTM التجريبي يحتوي على de.duenndns.mtmexample.JULHandler، والذي يتيح تمكين وتعطيل تسجيل التصحيح في وقت التشغيل.

البدائل

MemorizingTrustManager ليس الوحيد في هذا المجال.

NetCipher هي مكتبة أندرويد صُنعت بواسطة مشروع Guardian لتحسين أمان الشبكات لتطبيقات الجوال. تأتي مع StrongTrustManager لإجراء فحوصات شهادات أكثر شمولًا، ومخزن جذور شهادات CA مستقل، وكود لتوجيه حركة المرور الخاصة بك بسهولة عبر شبكة Tor باستخدام Orbot.

AndroidPinning هي مكتبة أندرويد أخرى، كتبها Moxie Marlinspike للسماح بتثبيت شهادات الخادم، مما يحسن الأمان ضد هجمات الوسيط على نطاق حكومي. استخدم هذا إذا كان تطبيقك مصممًا للتواصل مع خادم محدد!

المساهمة

يرجى المساعدة في ترجمة MTM إلى المزيد من اللغات!

تنزيل الأداة