1 00:00:00,000 --> 00:00:13,000 2 00:00:13,000 --> 00:00:15,890 >> ROB BOWDEN: أنا روب، و دعونا الحصول على تكسير. 3 00:00:15,890 --> 00:00:19,390 لذلك تذكر من المواصفات التي pset ونحن في طريقنا إلى أن الحاجة إلى استخدام 4 00:00:19,390 --> 00:00:20,890 وظيفة سرداب. 5 00:00:20,890 --> 00:00:26,330 لصفحة الرجل، لدينا اثنين تجزئة تحديد _xopensource. 6 00:00:26,330 --> 00:00:28,290 لا تقلق بشأن السبب نحن بحاجة للقيام بذلك. 7 00:00:28,290 --> 00:00:31,550 وتشمل أيضا تجزئة unistd.h. 8 00:00:31,550 --> 00:00:35,920 >> ذلك مرة واحدة وهذا للخروج من الطريق، دعونا الحصول على البرنامج الفعلي. 9 00:00:35,920 --> 00:00:39,570 أول شيء يتعين علينا القيام به هو التأكد من دخلت مستخدم صالح والمشفرة 10 00:00:39,570 --> 00:00:41,520 كلمة في سطر الأوامر. 11 00:00:41,520 --> 00:00:46,050 تذكر أن البرنامج يفترض ليتم تشغيلها مثل نقطة صدع مائل، و 12 00:00:46,050 --> 00:00:48,120 ثم تشفير السلسلة. 13 00:00:48,120 --> 00:00:52,990 >> حتى هنا نحن فحص للتأكد من أن ARGC إلى اثنين إذا كنا نريد أن 14 00:00:52,990 --> 00:00:54,380 تواصل مع البرنامج. 15 00:00:54,380 --> 00:00:58,830 إذا ARGC ليس اثنين، وهذا يعني إما لم يكن المستخدم إدخال المشفرة 16 00:00:58,830 --> 00:01:02,560 كلمة في سطر الأوامر، أو أنها دخل أكثر من مجرد المشفرة 17 00:01:02,560 --> 00:01:05,379 كلمة في سطر الأوامر، التي الحالة نحن لا نعرف ما يجب القيام به مع 18 00:01:05,379 --> 00:01:07,660 وسائط سطر الأوامر. 19 00:01:07,660 --> 00:01:11,390 >> حتى إذا كان ARGC اثنين، ونحن يمكن ان يستمر. 20 00:01:11,390 --> 00:01:14,160 وهنا، نحن ذاهبون لإعلان متغير مشفرة. 21 00:01:14,160 --> 00:01:17,650 ان مجرد الذهاب الى الاسم المستعار الأصلي argv1 بحيث طوال هذه 22 00:01:17,650 --> 00:01:20,690 البرنامج، ونحن لا يجب أن يطلق عليه argv1، أي بعد ذلك عليك أن تفكر 23 00:01:20,690 --> 00:01:22,950 حول ما يعني ذلك في الواقع. 24 00:01:22,950 --> 00:01:27,180 >> لذلك في النهاية، ونحن نريد للتحقق من أن كلمة المرور المشفرة للمستخدم 25 00:01:27,180 --> 00:01:30,840 دخلت كان يمكن أن يكون في الواقع كلمة مرور مشفرة. 26 00:01:30,840 --> 00:01:35,120 في الصفحة رجل سرداب، و يجب أن تكون كلمة السر مشفرة 13 27 00:01:35,120 --> 00:01:36,440 حرفا. 28 00:01:36,440 --> 00:01:41,500 هنا، لاحظ أننا تجزئة المعرفة تشفير طول و13. 29 00:01:41,500 --> 00:01:46,140 لذلك نحن فقط التأكد من أن طول السلسلة من المشفرة 30 00:01:46,140 --> 00:01:49,090 كلمة السر هي 13. 31 00:01:49,090 --> 00:01:52,280 >> وإذا لم يكن، ونحن نريد للخروج من البرنامج. 32 00:01:52,280 --> 00:01:56,470 ذلك مرة واحدة وهذا للخروج من الطريق، ويمكننا الآن في الواقع محاولة للعثور على ما و 33 00:01:56,470 --> 00:02:00,410 كلمة المرور التي أعطت المشفرة كان كلمة السر. 34 00:02:00,410 --> 00:02:04,870 هنا، ونحن نريد للاستيلاء على الملح من كلمة مرور مشفرة. 35 00:02:04,870 --> 00:02:08,930 نتذكر، في الصفحة رجل، أن أول حرفين من المشفرة 36 00:02:08,930 --> 00:02:10,590 سلسلة، مثل هنا - 37 00:02:10,590 --> 00:02:12,770 50ZPJ وهلم جرا - 38 00:02:12,770 --> 00:02:16,170 إعطاء أول حرفين لنا الملح الذي تم استخدامه 39 00:02:16,170 --> 00:02:18,080 في سرداب وظيفة. 40 00:02:18,080 --> 00:02:21,740 >> وهنا، نرى أن الملح كان هكتار. 41 00:02:21,740 --> 00:02:27,610 لذلك نحن نريد لنسخ الأولين حرفا، طول الملح يجري تجزئة 42 00:02:27,610 --> 00:02:30,230 يعرف بأنه اثنين. 43 00:02:30,230 --> 00:02:35,970 لدينا لنسخ أول حرفين في هذه المجموعة، والملح. 44 00:02:35,970 --> 00:02:39,340 لاحظ أننا في حاجة طول زائد الملح واحد، لأننا ما زلنا بحاجة لاغية 45 00:02:39,340 --> 00:02:42,440 فاصل في نهاية الملح لدينا. 46 00:02:42,440 --> 00:02:46,940 >> ثم نحن في طريقنا لتعلن هذه المجموعة، الضيف، حجم أقصى طول زائد 47 00:02:46,940 --> 00:02:51,930 واحد، حيث يتم تجزئة محددة الطول الاقصى ثمانية، منذ كلمة كحد أقصى 48 00:02:51,930 --> 00:02:55,090 هو ثمانية أحرف. 49 00:02:55,090 --> 00:02:59,860 ونحن ذاهبون الى استخدام هذا لتكرار على كل السلاسل المحتملة التي يمكن أن 50 00:02:59,860 --> 00:03:01,430 تكون كلمات المرور صالحة. 51 00:03:01,430 --> 00:03:07,720 لذلك إذا كانت أحرف صالحة في كلمة كانت مجرد أ، ب، ج، ثم 52 00:03:07,720 --> 00:03:14,970 كنا تكرار عبر أ، ب، ج، أأ، با، كاليفورنيا، وهلم جرا، حتى 53 00:03:14,970 --> 00:03:16,690 ونصل الى رؤية cccccccc - 54 00:03:16,690 --> 00:03:19,600 ج ثمانية و. 55 00:03:19,600 --> 00:03:23,620 >> وإذا كان لدينا وليس إلى الأسفل صالحة كلمة السر، ثم نحن بحاجة إلى القول بأن 56 00:03:23,620 --> 00:03:26,590 كان مشفرة سلسلة لا صالحة لتبدأ. 57 00:03:26,590 --> 00:03:29,970 وحتى الآن، في حين أن نصل إلى هذه الحلقة 1. 58 00:03:29,970 --> 00:03:33,100 تلاحظ أن يعني انها حلقة لا نهائية. 59 00:03:33,100 --> 00:03:36,430 >> لاحظ عدم وجود بيان استراحة داخل هذه حلقة لا نهائية. 60 00:03:36,430 --> 00:03:38,570 هناك تصريحات العودة فقط. 61 00:03:38,570 --> 00:03:41,210 لذلك نحن لا نتوقع فعلا للخروج من حلقة. 62 00:03:41,210 --> 00:03:44,750 نتوقع فقط للخروج من البرنامج. 63 00:03:44,750 --> 00:03:48,220 واضاف لقد العبارة الطباعة هذا ل أعلى هذه الحلقة لطباعة للتو 64 00:03:48,220 --> 00:03:51,790 ما لدينا في تخمين الحالي ما هي كلمة السر. 65 00:03:51,790 --> 00:03:53,630 >> الآن، ما هو هذا حلقة تفعل؟ 66 00:03:53,630 --> 00:03:58,330 انها حلقات عبر كافة السلاسل ممكن والتي قد تكون كلمات السر صالحة. 67 00:03:58,330 --> 00:04:02,700 أول شيء نحن بصدد القيام به هو اتخاذ تخمين الحالي لدينا ما 68 00:04:02,700 --> 00:04:03,920 كلمة السر هي. 69 00:04:03,920 --> 00:04:07,230 سوف نأخذ الملح أننا انتزع من سلسلة المشفرة، ونحن 70 00:04:07,230 --> 00:04:09,850 الذهاب لتشفير تخمين. 71 00:04:09,850 --> 00:04:14,760 وهذا يتيح لنا تخمين مشفرة، ونحن في طريقنا لمقارنة ضد 72 00:04:14,760 --> 00:04:18,810 سلسلة المشفرة أن المستخدم دخلت في سطر الأوامر. 73 00:04:18,810 --> 00:04:23,030 >> إذا كانت هي نفسها، وفي هذه الحالة وسلسلة مقارنة العودة الصفر، إذا 74 00:04:23,030 --> 00:04:28,050 انهم نفس، ثم تخمين كان كلمة المرور التي ولدت المشفرة 75 00:04:28,050 --> 00:04:33,520 سلسلة، وفي هذه الحالة يمكننا طباعة كما أن لدينا كلمة والعودة. 76 00:04:33,520 --> 00:04:37,520 ولكن إذا لم تكن هي نفسها، والتي يعني كان لدينا تخمين غير صحيحة. 77 00:04:37,520 --> 00:04:43,250 >> ونحن نريد تكرار ل تخمين صالحة المقبل. 78 00:04:43,250 --> 00:04:46,410 هذا ما هذا بينما حلقة يحاول القيام به. 79 00:04:46,410 --> 00:04:51,760 انه سيكون لدينا تكرار تخمين إلى تخمين صالحة المقبل. 80 00:04:51,760 --> 00:04:56,080 لاحظ أنه عندما نقول أن حرف معين في تخمين لدينا لديها 81 00:04:56,080 --> 00:05:01,770 بلغ رمزا كحد أقصى، والتي يصل هنا يتم تعريفها على أنها تجزئة تيلدا، منذ 82 00:05:01,770 --> 00:05:05,710 هذا هو أكبر حرف قيمة ASCII التي يمكن للمستخدم إدخال في 83 00:05:05,710 --> 00:05:11,210 لوحة المفاتيح، عندما يصل شخصية ماكس رمز، ثم نريد أن نرسل 84 00:05:11,210 --> 00:05:17,150 مرة أخرى إلى الحد الأدنى للرمز، والتي هو الفضاء، ومرة ​​أخرى أدنى ASCII 85 00:05:17,150 --> 00:05:20,800 رمز القيمة التي يمكن للمستخدم ادخل على لوحة المفاتيح. 86 00:05:20,800 --> 00:05:22,940 >> لذلك نحن ذاهبون الى تعيين هذا إلى الحد الأدنى الرمز. 87 00:05:22,940 --> 00:05:25,720 ثم ونحن في طريقنا للذهاب إلى الحرف التالي. 88 00:05:25,720 --> 00:05:28,730 فكيف هي التخمينات لدينا الذهاب الى تكرار؟ 89 00:05:28,730 --> 00:05:33,685 حسنا، إذا كانت الحروف الصحيحة هي أ، ب، وج، ثم إذا بدأنا مع، 90 00:05:33,685 --> 00:05:36,630 انها سوف تكرار لب، وأنها سوف تكرار لج. 91 00:05:36,630 --> 00:05:44,360 ج لدينا رمزا كحد أقصى، ولذا فإننا سوف تعيين ج إلى ذلك، فإن الحد الأدنى الرمز. 92 00:05:44,360 --> 00:05:48,100 ثم سنقوم تكرار مؤشر إلى الحرف التالي. 93 00:05:48,100 --> 00:05:53,920 >> حتى إذا كان تخمين الأصلي ج، القادم حرف ستكون لاغية 94 00:05:53,920 --> 00:05:55,560 فاصل. 95 00:05:55,560 --> 00:06:00,670 إلى هنا، لاحظ أن إذا كان الحرف أننا نريد الآن ل 96 00:06:00,670 --> 00:06:04,690 كان الزيادة فاصل فارغة، ثم ونحن في طريقنا إلى تعيينها ل 97 00:06:04,690 --> 00:06:06,260 الحد الأدنى الرمز. 98 00:06:06,260 --> 00:06:11,431 حتى إذا كان تخمين ج، ثم لدينا تخمين الجديدة ستكون أأ. 99 00:06:11,431 --> 00:06:16,050 وإذا كان لدينا تخمين الأصلي CCCC، ثم لدينا تخمين جديدة 100 00:06:16,050 --> 00:06:18,380 ستكون AAAAA. 101 00:06:18,380 --> 00:06:24,430 >> لذلك كلما نصل إلى أقصى السلسلة من طول معين، ثم نحن 102 00:06:24,430 --> 00:06:29,090 ذاهب لتنفيذ الحد الأدنى لسلسلة من طول المقبل، والتي سوف 103 00:06:29,090 --> 00:06:34,420 يكون مجرد من كل الحروف الحد الأدنى للرمز. 104 00:06:34,420 --> 00:06:36,970 الآن، ما هو هذا الاختيار تفعل هنا؟ 105 00:06:36,970 --> 00:06:42,780 حسنا، إذا انتقل المؤشر من الثامنة حرف إلى حرف تسعة - 106 00:06:42,780 --> 00:06:46,460 لذلك نضيف ثمانية ج كما لدينا تخمين السابقة - 107 00:06:46,460 --> 00:06:51,270 ثم مؤشر يجري التركيز على لاغية مشاركة فاصل لدينا تخمين 108 00:06:51,270 --> 00:06:57,990 مجموعة، والتي لا تهدف الى الواقع استخدامها في كلمة المرور. 109 00:06:57,990 --> 00:07:03,530 >> حتى إذا نحن نركز على أن اغية مشاركة فاصل، ثم أننا لا يمكن العثور على 110 00:07:03,530 --> 00:07:07,750 كلمة وهذا صحيح فقط باستخدام ثمانية حرفا، وهو ما يعني عدم وجود 111 00:07:07,750 --> 00:07:10,550 كلمة السر الصحيحة تقوم بتشفير إلى سلسلة معينة. 112 00:07:10,550 --> 00:07:13,520 ونحن لدينا لطباعة ذلك قائلا لم نتمكن من العثور على صالح 113 00:07:13,520 --> 00:07:16,100 كلمة السر، والعودة. 114 00:07:16,100 --> 00:07:20,280 وحتى هذا الوقت هو الذهاب الى حلقة تكرار على كل السلاسل ممكن. 115 00:07:20,280 --> 00:07:24,640 >> إذا وجد أي أن يرمز إلى المتوقع سلسلة المشفرة، وأنها سوف 116 00:07:24,640 --> 00:07:26,190 العودة أن كلمة السر. 117 00:07:26,190 --> 00:07:29,610 وانها لا تجد أي شيء، ثم فإنه سيعود، أنه الطباعة 118 00:07:29,610 --> 00:07:31,910 لم يكن قادرا على العثور على أي شيء. 119 00:07:31,910 --> 00:07:39,220 الآن، لاحظ أن بالتكرار على كل سلاسل ممكن هو على الارجح ل 120 00:07:39,220 --> 00:07:40,420 يستغرق بعض الوقت. 121 00:07:40,420 --> 00:07:43,590 دعونا نرى في الواقع كيف تستغرق هذه العملية. 122 00:07:43,590 --> 00:07:47,230 >> دعونا جعل الكراك. 123 00:07:47,230 --> 00:07:51,050 حسنا، عفوا - تقول غير معروف الرجوع إلى سرداب. 124 00:07:51,050 --> 00:07:55,330 لذلك تذكر، لمجموعات ع المواصفات و أيضا صفحة الرجل لأننا سرداب 125 00:07:55,330 --> 00:07:58,130 تحتاج إلى ربط في سرداب. 126 00:07:58,130 --> 00:08:01,130 الآن، جعل الأمر الافتراضي لا أعرف أن كنت 127 00:08:01,130 --> 00:08:03,010 ترغب في استخدام هذه الوظيفة. 128 00:08:03,010 --> 00:08:09,680 >> لذلك دعونا نسخ هذا الأمر العميل وأضيف إلى نهاية 129 00:08:09,680 --> 00:08:13,300 تكنولوجيا المعلومات، وربط سرداب. 130 00:08:13,300 --> 00:08:14,820 الآن، فإنه يجمع. 131 00:08:14,820 --> 00:08:23,880 لذلك دعونا تشغيل الكراك على إعطاء سلسلة المشفرة - 132 00:08:23,880 --> 00:08:25,130 لذلك لقيصر. 133 00:08:25,130 --> 00:08:28,690 134 00:08:28,690 --> 00:08:30,790 بحيث كان سريعا جدا. 135 00:08:30,790 --> 00:08:33,230 >> لاحظ أن هذا انتهى في 13. 136 00:08:33,230 --> 00:08:38,240 حسنا، كلمة المرور قيصر مشفرة يحدث أن تكون 13. 137 00:08:38,240 --> 00:08:41,650 لذلك دعونا نحاول كلمة مرور أخرى. 138 00:08:41,650 --> 00:08:45,830 دعونا نلقي المشفرة في هيرشهورن كلمة ومحاولة تكسير ذلك. 139 00:08:45,830 --> 00:08:51,750 140 00:08:51,750 --> 00:08:55,110 >> حتى إشعار اننا وصلنا بالفعل ثلاثة أحرف. 141 00:08:55,110 --> 00:08:58,660 ونحن بالتكرار عبر كل ما يمكن سلاسل من ثلاثة أحرف. 142 00:08:58,660 --> 00:09:01,420 هذا يعني أننا قد ينهي بالفعل بالتكرار على كل واحد ممكن و 143 00:09:01,420 --> 00:09:04,660 اثنين من سلاسل الأحرف. 144 00:09:04,660 --> 00:09:09,180 الآن، يبدو أن هذا هو ذاهب ل يستغرق بعض الوقت قبل أن نصل إلى 145 00:09:09,180 --> 00:09:10,580 سلاسل أربعة أحرف. 146 00:09:10,580 --> 00:09:14,680 قد يستغرق بضع دقائق. 147 00:09:14,680 --> 00:09:16,055 >> لأنه لم يأخذ بضع دقائق. 148 00:09:16,055 --> 00:09:18,450 نحن على أوتار أربعة أحرف. 149 00:09:18,450 --> 00:09:22,800 ولكن الآن، ونحن بحاجة إلى تكرار عبر جميع ممكن سلاسل أربعة أحرف، والتي 150 00:09:22,800 --> 00:09:26,000 والذي قد يأخذ وربما 10 دقيقة. 151 00:09:26,000 --> 00:09:28,720 وبعد ذلك عندما نصل إلى خمسة أحرف سلاسل، ونحن بحاجة إلى تكرار عبر جميع 152 00:09:28,720 --> 00:09:31,450 من تلك، والتي قد تأخذ بضع ساعات. 153 00:09:31,450 --> 00:09:34,080 ونحن بحاجة إلى تكرار عبر كل ما يمكن سلاسل ستة أحرف، والتي 154 00:09:34,080 --> 00:09:36,560 قد يستغرق بضعة أيام وهلم جرا. 155 00:09:36,560 --> 00:09:41,380 >> لذلك يمكن أن يستغرق ويحتمل أن تكون طويلة جدا الوقت لتكرار عبر كل ما يمكن 156 00:09:41,380 --> 00:09:44,850 ثمانية أحرف وأقل السلاسل. 157 00:09:44,850 --> 00:09:50,600 لذلك تلاحظ أن هذا ليس بالضرورة خوارزمية فعالة جدا لإيجاد 158 00:09:50,600 --> 00:09:51,860 كلمة مرور. 159 00:09:51,860 --> 00:09:54,540 قد تعتقد أن هناك طرق أفضل. 160 00:09:54,540 --> 00:10:02,230 على سبيل المثال، ZYX كلمة السر! 32ab ربما ليس كلمة شائعة جدا، 161 00:10:02,230 --> 00:10:06,440 في حين أن كلمة السر هي 12345 ربما الكثير أكثر شيوعا. 162 00:10:06,440 --> 00:10:13,570 >> حتى طريقة واحدة في محاولة للعثور على كلمة مرور بسرعة أكبر هو أن ننظر فقط 163 00:10:13,570 --> 00:10:15,560 في كلمات المرور التي هي أكثر شيوعا. 164 00:10:15,560 --> 00:10:20,480 ذلك على سبيل المثال، يمكننا محاولة قراءة الكلمات من القاموس ومحاكمة كل من 165 00:10:20,480 --> 00:10:24,860 تلك الكلمات كما التخمينات كلمة دينا. 166 00:10:24,860 --> 00:10:29,210 الآن، ربما كلمة مرور ليست بهذه البساطة. 167 00:10:29,210 --> 00:10:32,600 ربما كان للمستخدم ذكية إلى حد ما ومحاولة إلحاق عدد ل 168 00:10:32,600 --> 00:10:34,220 في نهاية الكلمة. 169 00:10:34,220 --> 00:10:37,000 >> لذلك ربما كان password1 كلمة المرور الخاصة بهم. 170 00:10:37,000 --> 00:10:41,520 لذلك يمكنك محاولة بالتكرار أكثر من كل الكلمات في القاموس مع واحدة 171 00:10:41,520 --> 00:10:43,210 إلحاق نهاية لها. 172 00:10:43,210 --> 00:10:47,360 ومن ثم ربما بعد القيام بذلك، عليك إلحاق اثنين إلى نهاية لها. 173 00:10:47,360 --> 00:10:50,240 >> أو ربما كان المستخدم يحاول أن يكون حتى أكثر ذكاء، وأنها تريد بهم 174 00:10:50,240 --> 00:10:54,980 كلمة مرور لتكون "هاكر"، لكنها ل الذهاب الى استبدال كافة مثيلات في البريد 175 00:10:54,980 --> 00:10:56,600 مع الثلاثات. 176 00:10:56,600 --> 00:10:58,440 لذلك يمكن أن تفعل ذلك أيضا. 177 00:10:58,440 --> 00:11:02,100 تكرار عبر عن الكلمات في القاموس لكن استبدال الأحرف التي 178 00:11:02,100 --> 00:11:04,790 تبدو الأرقام مع تلك الأرقام. 179 00:11:04,790 --> 00:11:09,670 >> لذلك بهذه الطريقة، قد قبض أكثر كلمات السر التي هي شائعة جدا. 180 00:11:09,670 --> 00:11:14,690 ولكن في نهاية المطاف، فإن الطريقة الوحيدة التي يمكن القبض على جميع كلمات السر هو الغاشمة 181 00:11:14,690 --> 00:11:17,340 القوة تكرار عبر جميع سلاسل ممكن. 182 00:11:17,340 --> 00:11:22,100 لذلك في النهاية، كنت بحاجة لتكرار على كل الاوتار من حرف واحد إلى 183 00:11:22,100 --> 00:11:28,110 ثمانية أحرف، والتي قد تستغرق و وقت طويل جدا، ولكن عليك أن تفعل ذلك. 184 00:11:28,110 --> 00:11:30,024 >> اسمي روب بودين. 185 00:11:30,024 --> 00:11:31,425 وهذا هو الكراك. 186 00:11:31,425 --> 00:11:36,533