ROB BOWDEN: أنا روب، و دعونا الحصول على تكسير. لذلك تذكر من المواصفات التي pset ونحن في طريقنا إلى أن الحاجة إلى استخدام وظيفة سرداب. لصفحة الرجل، لدينا اثنين تجزئة تحديد _xopensource. لا تقلق بشأن السبب نحن بحاجة للقيام بذلك. وتشمل أيضا تجزئة unistd.h. ذلك مرة واحدة وهذا للخروج من الطريق، دعونا الحصول على البرنامج الفعلي. أول شيء يتعين علينا القيام به هو التأكد من دخلت مستخدم صالح والمشفرة كلمة في سطر الأوامر. تذكر أن البرنامج يفترض ليتم تشغيلها مثل نقطة صدع مائل، و ثم تشفير السلسلة. حتى هنا نحن فحص للتأكد من أن ARGC إلى اثنين إذا كنا نريد أن تواصل مع البرنامج. إذا ARGC ليس اثنين، وهذا يعني إما لم يكن المستخدم إدخال المشفرة كلمة في سطر الأوامر، أو أنها دخل أكثر من مجرد المشفرة كلمة في سطر الأوامر، التي الحالة نحن لا نعرف ما يجب القيام به مع وسائط سطر الأوامر. حتى إذا كان ARGC اثنين، ونحن يمكن ان يستمر. وهنا، نحن ذاهبون لإعلان متغير مشفرة. ان مجرد الذهاب الى الاسم المستعار الأصلي argv1 بحيث طوال هذه البرنامج، ونحن لا يجب أن يطلق عليه argv1، أي بعد ذلك عليك أن تفكر حول ما يعني ذلك في الواقع. لذلك في النهاية، ونحن نريد للتحقق من أن كلمة المرور المشفرة للمستخدم دخلت كان يمكن أن يكون في الواقع كلمة مرور مشفرة. في الصفحة رجل سرداب، و يجب أن تكون كلمة السر مشفرة 13 حرفا. هنا، لاحظ أننا تجزئة المعرفة تشفير طول و13. لذلك نحن فقط التأكد من أن طول السلسلة من المشفرة كلمة السر هي 13. وإذا لم يكن، ونحن نريد للخروج من البرنامج. ذلك مرة واحدة وهذا للخروج من الطريق، ويمكننا الآن في الواقع محاولة للعثور على ما و كلمة المرور التي أعطت المشفرة كان كلمة السر. هنا، ونحن نريد للاستيلاء على الملح من كلمة مرور مشفرة. نتذكر، في الصفحة رجل، أن أول حرفين من المشفرة سلسلة، مثل هنا - 50ZPJ وهلم جرا - إعطاء أول حرفين لنا الملح الذي تم استخدامه في سرداب وظيفة. وهنا، نرى أن الملح كان هكتار. لذلك نحن نريد لنسخ الأولين حرفا، طول الملح يجري تجزئة يعرف بأنه اثنين. لدينا لنسخ أول حرفين في هذه المجموعة، والملح. لاحظ أننا في حاجة طول زائد الملح واحد، لأننا ما زلنا بحاجة لاغية فاصل في نهاية الملح لدينا. ثم نحن في طريقنا لتعلن هذه المجموعة، الضيف، حجم أقصى طول زائد واحد، حيث يتم تجزئة محددة الطول الاقصى ثمانية، منذ كلمة كحد أقصى هو ثمانية أحرف. ونحن ذاهبون الى استخدام هذا لتكرار على كل السلاسل المحتملة التي يمكن أن تكون كلمات المرور صالحة. لذلك إذا كانت أحرف صالحة في كلمة كانت مجرد أ، ب، ج، ثم كنا تكرار عبر أ، ب، ج، أأ، با، كاليفورنيا، وهلم جرا، حتى ونصل الى رؤية cccccccc - ج ثمانية و. وإذا كان لدينا وليس إلى الأسفل صالحة كلمة السر، ثم نحن بحاجة إلى القول بأن كان مشفرة سلسلة لا صالحة لتبدأ. وحتى الآن، في حين أن نصل إلى هذه الحلقة 1. تلاحظ أن يعني انها حلقة لا نهائية. لاحظ عدم وجود بيان استراحة داخل هذه حلقة لا نهائية. هناك تصريحات العودة فقط. لذلك نحن لا نتوقع فعلا للخروج من حلقة. نتوقع فقط للخروج من البرنامج. واضاف لقد العبارة الطباعة هذا ل أعلى هذه الحلقة لطباعة للتو ما لدينا في تخمين الحالي ما هي كلمة السر. الآن، ما هو هذا حلقة تفعل؟ انها حلقات عبر كافة السلاسل ممكن والتي قد تكون كلمات السر صالحة. أول شيء نحن بصدد القيام به هو اتخاذ تخمين الحالي لدينا ما كلمة السر هي. سوف نأخذ الملح أننا انتزع من سلسلة المشفرة، ونحن الذهاب لتشفير تخمين. وهذا يتيح لنا تخمين مشفرة، ونحن في طريقنا لمقارنة ضد سلسلة المشفرة أن المستخدم دخلت في سطر الأوامر. إذا كانت هي نفسها، وفي هذه الحالة وسلسلة مقارنة العودة الصفر، إذا انهم نفس، ثم تخمين كان كلمة المرور التي ولدت المشفرة سلسلة، وفي هذه الحالة يمكننا طباعة كما أن لدينا كلمة والعودة. ولكن إذا لم تكن هي نفسها، والتي يعني كان لدينا تخمين غير صحيحة. ونحن نريد تكرار ل تخمين صالحة المقبل. هذا ما هذا بينما حلقة يحاول القيام به. انه سيكون لدينا تكرار تخمين إلى تخمين صالحة المقبل. لاحظ أنه عندما نقول أن حرف معين في تخمين لدينا لديها بلغ رمزا كحد أقصى، والتي يصل هنا يتم تعريفها على أنها تجزئة تيلدا، منذ هذا هو أكبر حرف قيمة ASCII التي يمكن للمستخدم إدخال في لوحة المفاتيح، عندما يصل شخصية ماكس رمز، ثم نريد أن نرسل مرة أخرى إلى الحد الأدنى للرمز، والتي هو الفضاء، ومرة ​​أخرى أدنى ASCII رمز القيمة التي يمكن للمستخدم ادخل على لوحة المفاتيح. لذلك نحن ذاهبون الى تعيين هذا إلى الحد الأدنى الرمز. ثم ونحن في طريقنا للذهاب إلى الحرف التالي. فكيف هي التخمينات لدينا الذهاب الى تكرار؟ حسنا، إذا كانت الحروف الصحيحة هي أ، ب، وج، ثم إذا بدأنا مع، انها سوف تكرار لب، وأنها سوف تكرار لج. ج لدينا رمزا كحد أقصى، ولذا فإننا سوف تعيين ج إلى ذلك، فإن الحد الأدنى الرمز. ثم سنقوم تكرار مؤشر إلى الحرف التالي. حتى إذا كان تخمين الأصلي ج، القادم حرف ستكون لاغية فاصل. إلى هنا، لاحظ أن إذا كان الحرف أننا نريد الآن ل كان الزيادة فاصل فارغة، ثم ونحن في طريقنا إلى تعيينها ل الحد الأدنى الرمز. حتى إذا كان تخمين ج، ثم لدينا تخمين الجديدة ستكون أأ. وإذا كان لدينا تخمين الأصلي CCCC، ثم لدينا تخمين جديدة ستكون AAAAA. لذلك كلما نصل إلى أقصى السلسلة من طول معين، ثم نحن ذاهب لتنفيذ الحد الأدنى لسلسلة من طول المقبل، والتي سوف يكون مجرد من كل الحروف الحد الأدنى للرمز. الآن، ما هو هذا الاختيار تفعل هنا؟ حسنا، إذا انتقل المؤشر من الثامنة حرف إلى حرف تسعة - لذلك نضيف ثمانية ج كما لدينا تخمين السابقة - ثم مؤشر يجري التركيز على لاغية مشاركة فاصل لدينا تخمين مجموعة، والتي لا تهدف الى الواقع استخدامها في كلمة المرور. حتى إذا نحن نركز على أن اغية مشاركة فاصل، ثم أننا لا يمكن العثور على كلمة وهذا صحيح فقط باستخدام ثمانية حرفا، وهو ما يعني عدم وجود كلمة السر الصحيحة تقوم بتشفير إلى سلسلة معينة. ونحن لدينا لطباعة ذلك قائلا لم نتمكن من العثور على صالح كلمة السر، والعودة. وحتى هذا الوقت هو الذهاب الى حلقة تكرار على كل السلاسل ممكن. إذا وجد أي أن يرمز إلى المتوقع سلسلة المشفرة، وأنها سوف العودة أن كلمة السر. وانها لا تجد أي شيء، ثم فإنه سيعود، أنه الطباعة لم يكن قادرا على العثور على أي شيء. الآن، لاحظ أن بالتكرار على كل سلاسل ممكن هو على الارجح ل يستغرق بعض الوقت. دعونا نرى في الواقع كيف تستغرق هذه العملية. دعونا جعل الكراك. حسنا، عفوا - تقول غير معروف الرجوع إلى سرداب. لذلك تذكر، لمجموعات ع المواصفات و أيضا صفحة الرجل لأننا سرداب تحتاج إلى ربط في سرداب. الآن، جعل الأمر الافتراضي لا أعرف أن كنت ترغب في استخدام هذه الوظيفة. لذلك دعونا نسخ هذا الأمر العميل وأضيف إلى نهاية تكنولوجيا المعلومات، وربط سرداب. الآن، فإنه يجمع. لذلك دعونا تشغيل الكراك على إعطاء سلسلة المشفرة - لذلك لقيصر. بحيث كان سريعا جدا. لاحظ أن هذا انتهى في 13. حسنا، كلمة المرور قيصر مشفرة يحدث أن تكون 13. لذلك دعونا نحاول كلمة مرور أخرى. دعونا نلقي المشفرة في هيرشهورن كلمة ومحاولة تكسير ذلك. حتى إشعار اننا وصلنا بالفعل ثلاثة أحرف. ونحن بالتكرار عبر كل ما يمكن سلاسل من ثلاثة أحرف. هذا يعني أننا قد ينهي بالفعل بالتكرار على كل واحد ممكن و اثنين من سلاسل الأحرف. الآن، يبدو أن هذا هو ذاهب ل يستغرق بعض الوقت قبل أن نصل إلى سلاسل أربعة أحرف. قد يستغرق بضع دقائق. لأنه لم يأخذ بضع دقائق. نحن على أوتار أربعة أحرف. ولكن الآن، ونحن بحاجة إلى تكرار عبر جميع ممكن سلاسل أربعة أحرف، والتي والذي قد يأخذ وربما 10 دقيقة. وبعد ذلك عندما نصل إلى خمسة أحرف سلاسل، ونحن بحاجة إلى تكرار عبر جميع من تلك، والتي قد تأخذ بضع ساعات. ونحن بحاجة إلى تكرار عبر كل ما يمكن سلاسل ستة أحرف، والتي قد يستغرق بضعة أيام وهلم جرا. لذلك يمكن أن يستغرق ويحتمل أن تكون طويلة جدا الوقت لتكرار عبر كل ما يمكن ثمانية أحرف وأقل السلاسل. لذلك تلاحظ أن هذا ليس بالضرورة خوارزمية فعالة جدا لإيجاد كلمة مرور. قد تعتقد أن هناك طرق أفضل. على سبيل المثال، ZYX كلمة السر! 32ab ربما ليس كلمة شائعة جدا، في حين أن كلمة السر هي 12345 ربما الكثير أكثر شيوعا. حتى طريقة واحدة في محاولة للعثور على كلمة مرور بسرعة أكبر هو أن ننظر فقط في كلمات المرور التي هي أكثر شيوعا. ذلك على سبيل المثال، يمكننا محاولة قراءة الكلمات من القاموس ومحاكمة كل من تلك الكلمات كما التخمينات كلمة دينا. الآن، ربما كلمة مرور ليست بهذه البساطة. ربما كان للمستخدم ذكية إلى حد ما ومحاولة إلحاق عدد ل في نهاية الكلمة. لذلك ربما كان password1 كلمة المرور الخاصة بهم. لذلك يمكنك محاولة بالتكرار أكثر من كل الكلمات في القاموس مع واحدة إلحاق نهاية لها. ومن ثم ربما بعد القيام بذلك، عليك إلحاق اثنين إلى نهاية لها. أو ربما كان المستخدم يحاول أن يكون حتى أكثر ذكاء، وأنها تريد بهم كلمة مرور لتكون "هاكر"، لكنها ل الذهاب الى استبدال كافة مثيلات في البريد مع الثلاثات. لذلك يمكن أن تفعل ذلك أيضا. تكرار عبر عن الكلمات في القاموس لكن استبدال الأحرف التي تبدو الأرقام مع تلك الأرقام. لذلك بهذه الطريقة، قد قبض أكثر كلمات السر التي هي شائعة جدا. ولكن في نهاية المطاف، فإن الطريقة الوحيدة التي يمكن القبض على جميع كلمات السر هو الغاشمة القوة تكرار عبر جميع سلاسل ممكن. لذلك في النهاية، كنت بحاجة لتكرار على كل الاوتار من حرف واحد إلى ثمانية أحرف، والتي قد تستغرق و وقت طويل جدا، ولكن عليك أن تفعل ذلك. اسمي روب بودين. وهذا هو الكراك.