1 00:00:00,000 --> 00:00:13,000 2 00:00:13,000 --> 00:00:15,890 >> Rob Bowden: Mən Rob oldum və nin krekinq almaq edək. 3 00:00:15,890 --> 00:00:19,390 Belə ki, pset spec dən unutmayın ki, biz istifadə etmək ehtiyacı üçün olacaq 4 00:00:19,390 --> 00:00:20,890 crypt funksiyası. 5 00:00:20,890 --> 00:00:26,330 Adam səhifə üçün biz iki hash _xopensource müəyyən edir. 6 00:00:26,330 --> 00:00:28,290 Niyə narahat etməyin Bunu etmək lazımdır. 7 00:00:28,290 --> 00:00:31,550 Və həmçinin hash unistd.h daxildir. 8 00:00:31,550 --> 00:00:35,920 >> Belə ki, bir dəfə yol həyata ki, edək faktiki proqram almaq. 9 00:00:35,920 --> 00:00:39,570 Biz nə etmək lazımdır ilk şey əmin olun istifadəçi cari bir şifrelenmiş daxil 10 00:00:39,570 --> 00:00:41,520 skript xətti parol. 11 00:00:41,520 --> 00:00:46,050 Proqram nəzərdə tutulur unutmayın dot çizgi crack kimi run ediləcək və 12 00:00:46,050 --> 00:00:48,120 sonra şifrelenmiş string. 13 00:00:48,120 --> 00:00:52,990 >> Belə ki, burada biz əmin olun kontrol edirik ki, iki argc biz istəyirsinizsə 14 00:00:52,990 --> 00:00:54,380 proqramı ilə davam edir. 15 00:00:54,380 --> 00:00:58,830 Argc iki deyilsə, ki, ya deməkdir istifadəçi şifreli daxil etməyib 16 00:00:58,830 --> 00:01:02,560 skript xətti parol və ya onlar yalnız şifreli daha daxil 17 00:01:02,560 --> 00:01:05,379 skript xətti parol olan halda biz nə edəcəyini bilmirəm 18 00:01:05,379 --> 00:01:07,660 command line dəlilləri. 19 00:01:07,660 --> 00:01:11,390 >> Argc iki idi, belə ki, biz davam edə bilərsiniz. 20 00:01:11,390 --> 00:01:14,160 Və burada, biz bəyan olacaq dəyişən şifrelenmiş. 21 00:01:14,160 --> 00:01:17,650 Yalnız alias orijinal olacaq argv1 Buna ərzində 22 00:01:17,650 --> 00:01:20,690 proqram, biz, bu argv1 zəng yoxdur sonra siz düşünmək 23 00:01:20,690 --> 00:01:22,950 əslində demək nə. 24 00:01:22,950 --> 00:01:27,180 >> Belə ki, nəhayət ki, doğrulamak üçün istəyirəm şifreli parol istifadəçi 25 00:01:27,180 --> 00:01:30,840 daxil həqiqətən ola bilərdi şifreli parol. 26 00:01:30,840 --> 00:01:35,120 Crypt adamı səhifə başına şifrelenmiş parol 13 olmalıdır 27 00:01:35,120 --> 00:01:36,440 uzun simvol. 28 00:01:36,440 --> 00:01:41,500 Up Burada hash müəyyən fark 13 uzunluğu şifrelemek. 29 00:01:41,500 --> 00:01:46,140 Beləliklə, biz yalnız əmin olduğu edirik şifreli və simli uzunluğu 30 00:01:46,140 --> 00:01:49,090 unutdunuz 13. 31 00:01:49,090 --> 00:01:52,280 >> Bu deyil, əgər, biz istəyirik proqram çıxmaq üçün. 32 00:01:52,280 --> 00:01:56,470 Belə ki, bir dəfə ki, yol ola bilər həyata var İndi həqiqətən tapmaq üçün cəhd nə 33 00:01:56,470 --> 00:02:00,410 şifrəli verdiyini unutdunuz parol idi. 34 00:02:00,410 --> 00:02:04,870 Burada, biz duz qamarlamaq istəyirəm şifreli parol edir. 35 00:02:04,870 --> 00:02:08,930 Adam səhifə başına saxla ki, şifreli ilk iki simvolların 36 00:02:08,930 --> 00:02:10,590 simli, burada kimi - 37 00:02:10,590 --> 00:02:12,770 50ZPJ və s - 38 00:02:12,770 --> 00:02:16,170 İlk iki simvol vermək Bizi istifadə edilmişdir ki, duz 39 00:02:16,170 --> 00:02:18,080 crypt funksiyası. 40 00:02:18,080 --> 00:02:21,740 >> Və burada, biz duz ha olduğunu görürük. 41 00:02:21,740 --> 00:02:27,610 Beləliklə, biz ilk iki kopyalamak istediğiniz simvol, duz uzunluğu hash olan 42 00:02:27,610 --> 00:02:30,230 iki kimi müəyyən edilmişdir. 43 00:02:30,230 --> 00:02:35,970 Biz ilk iki simvol surəti var Bu massivinə, duz. 44 00:02:35,970 --> 00:02:39,340 Biz plus duz uzunluğu ehtiyac Qeyd edək ki, biz hələ null lazımdır bəri bir, 45 00:02:39,340 --> 00:02:42,440 Bizim duz sonunda terminator. 46 00:02:42,440 --> 00:02:46,940 >> Sonra bu seriala bəyan olacaq ölçüsü max uzunluğu qonaq, üstəgəl 47 00:02:46,940 --> 00:02:51,930 max uzunluğu müəyyən hash olduğu bir, səkkiz kimi, çünki maksimum unutdunuz 48 00:02:51,930 --> 00:02:55,090 səkkiz simvol uzun. 49 00:02:55,090 --> 00:02:59,860 Və biz təkrarlamaq üçün istifadə olacaq bütün mümkün strings üzərində təmin edə biləcək 50 00:02:59,860 --> 00:03:01,430 etibarlı parol ola bilər. 51 00:03:01,430 --> 00:03:07,720 Belə ki, əgər bir parol olan cari Sandıqı sonra yalnız a, b və c idi 52 00:03:07,720 --> 00:03:14,970 biz artıq b, c, təkrarlamaq olacaq aa, BA, CA, və s qədər 53 00:03:14,970 --> 00:03:16,690 biz cccccccc görmək almaq - 54 00:03:16,690 --> 00:03:19,600 səkkiz c var. 55 00:03:19,600 --> 00:03:23,620 >> Və biz cari aşağı əgər parol, sonra biz demək lazımdır ki, 56 00:03:23,620 --> 00:03:26,590 şifrelenmiş simli deyil ilə başlamaq etibarlıdır. 57 00:03:26,590 --> 00:03:29,970 Belə ki, indi, biz 1 loop bu çatmaz. 58 00:03:29,970 --> 00:03:33,100 Bu o deməkdir ki, Qeyd edək sonsuz loop. 59 00:03:33,100 --> 00:03:36,430 >> Heç bir fasilə bəyanat var Xəbər Bu sonsuz loop daxilində. 60 00:03:36,430 --> 00:03:38,570 Yalnız bəyan geri olunur. 61 00:03:38,570 --> 00:03:41,210 Beləliklə, biz, həqiqətən, gözləmək heç vaxt loop çıxmaq üçün. 62 00:03:41,210 --> 00:03:44,750 Biz yalnız proqram çıxmaq üçün gözləyirik. 63 00:03:44,750 --> 00:03:48,220 Mən bu çap bəyanat ekledik Bu loop üst yalnız çap 64 00:03:48,220 --> 00:03:51,790 hansı mövcud tahmin nə parol. 65 00:03:51,790 --> 00:03:53,630 >> İndi bu loop nə edir? 66 00:03:53,630 --> 00:03:58,330 Bu, bütün mümkün strings üzərində loop oldu ki, etibarlı parol ola bilər. 67 00:03:58,330 --> 00:04:02,700 Biz nə olacaq ilk şey Cari tahmin almaq nə üçün 68 00:04:02,700 --> 00:04:03,920 parol. 69 00:04:03,920 --> 00:04:07,230 Biz biz tutdu ki, duz çıxacağıq şifreli simli, və biz istəyirik 70 00:04:07,230 --> 00:04:09,850 tahmin şifrelemek gedir. 71 00:04:09,850 --> 00:04:14,760 Bu, bizə şifrəli tahmin verəcək biz qarşı müqayisə etmək olacaq ki, 72 00:04:14,760 --> 00:04:18,810 şifreli simli üçün istifadəçi command line da daxil olmuşdur. 73 00:04:18,810 --> 00:04:23,030 >> Onlar eyni varsa, bu halda müqayisə simli, əgər sıfır qayıdacaqlar 74 00:04:23,030 --> 00:04:28,050 onlar eyni istəyirik, sonra idi tahmin şifreli gətirmiş unutdunuz 75 00:04:28,050 --> 00:04:33,520 simli, biz çap edə bilərsiniz, bu halda bizim parol və gəlir kimi. 76 00:04:33,520 --> 00:04:37,520 Lakin onlar eyni deyil, əgər ki, bizim tahmin səhvdir deməkdir. 77 00:04:37,520 --> 00:04:43,250 >> Və biz təkrarlamaq istəyirik növbəti etibarlı danışarlar. 78 00:04:43,250 --> 00:04:46,410 Belə ki, nə bu isə loop etməyə çalışır. 79 00:04:46,410 --> 00:04:51,760 Bu, bizim tahmin təkrarlamaq olacaq növbəti etibarlı Guess. 80 00:04:51,760 --> 00:04:56,080 Biz deyəndə ki, görürsünüz ki, bizim tahmin xüsusi xarakter daşıyır 81 00:04:56,080 --> 00:05:01,770 olan qədər burada max simvolu çatıb hash, çünki tilde kimi müəyyən edilir 82 00:05:01,770 --> 00:05:05,710 ən böyük ASCII dəyər xarakter istifadəçi da daxil edə bilərsiniz ki, 83 00:05:05,710 --> 00:05:11,210 klaviatura, zaman xarakteri çatır max simvolu, sonra göndərmək istədiyiniz 84 00:05:11,210 --> 00:05:17,150 ki, minimum simvolu geri olan yenə ən aşağı ASCII boşluq deyil 85 00:05:17,150 --> 00:05:20,800 dəyər rəmzi istifadəçi ki klaviatura da daxil edin. 86 00:05:20,800 --> 00:05:22,940 >> Belə ki, müəyyən olacaq minimum simvolu. 87 00:05:22,940 --> 00:05:25,720 Və sonra getmək olacaq növbəti xarakteri haqqında. 88 00:05:25,720 --> 00:05:28,730 Belə ki, necə bizim guesses var təkrarlamaq üçün gedir? 89 00:05:28,730 --> 00:05:33,685 Yaxşı, etibarlı simvol, a, b, əgər və c, sonra biz bir ilə başlayan əgər 90 00:05:33,685 --> 00:05:36,630 o b təkrarlamaq lazımdır, bu, lazımdır c təkrarlamaq. 91 00:05:36,630 --> 00:05:44,360 c bizim max rəmzidir, biz müəyyən olacaq bir geri c, minimum rəmzidir. 92 00:05:44,360 --> 00:05:48,100 Və sonra biz index təkrarlamaq lazımdır növbəti xarakteri. 93 00:05:48,100 --> 00:05:53,920 >> Orijinal tahmin c, növbəti idi əgər xarakteri null olacaq 94 00:05:53,920 --> 00:05:55,560 Terminator. 95 00:05:55,560 --> 00:06:00,670 Down burada qeyd ki, əgər karakter indi biz istəyirik ki, 96 00:06:00,670 --> 00:06:04,690 artırılması, null terminator oldu sonra biz onu müəyyən olacaq 97 00:06:04,690 --> 00:06:06,260 minimum rəmzidir. 98 00:06:06,260 --> 00:06:11,431 Tahmin sonra, c idi əgər yeni tahmin aa olacaq. 99 00:06:11,431 --> 00:06:16,050 Bizim orijinal tahmin, əgər sonra cccc, yeni tahmin 100 00:06:16,050 --> 00:06:18,380 aaaaa olacaq. 101 00:06:18,380 --> 00:06:24,430 >> Belə olduqda biz maksimum simli olmaq verilmiş uzunluğu, biz istəyirik 102 00:06:24,430 --> 00:06:29,090 minimum simli həyata keçirəcəyik növbəti uzunluğu, hansı olacaq 103 00:06:29,090 --> 00:06:34,420 yalnız bütün simvol olmaq minimum rəmzidir. 104 00:06:34,420 --> 00:06:36,970 İndi bu çek burada nə edir? 105 00:06:36,970 --> 00:06:42,780 Yaxşı, əgər indeksi səkkizinci köçürüldü Doqquz xarakteri xarakter - 106 00:06:42,780 --> 00:06:46,460 belə ki, biz səkkiz c in əlavə et tahmin Əvvəlki - 107 00:06:46,460 --> 00:06:51,270 sonra indeksi diqqət gedir bizim tahmin son null terminator 108 00:06:51,270 --> 00:06:57,990 həqiqətən etmək üçün nəzərdə olmayan dizi, bizim parol istifadə edilə bilər. 109 00:06:57,990 --> 00:07:03,530 >> Biz ki, son null yönəlib Belə ki, əgər Terminator, sonra biz tapılmadı 110 00:07:03,530 --> 00:07:07,750 qüvvədə yalnız səkkiz istifadə ki unutdunuz yoxdur deməkdir simvol 111 00:07:07,750 --> 00:07:10,550 şifreler ki, düzgün parol verilmiş simli. 112 00:07:10,550 --> 00:07:13,520 Və deyirdik ki, çap etmək biz cari tapa bilmədi 113 00:07:13,520 --> 00:07:16,100 parol və qaytarılması. 114 00:07:16,100 --> 00:07:20,280 Beləliklə, bu isə loop təkrarlamaq niyyətindədir bütün mümkün strings artıq. 115 00:07:20,280 --> 00:07:24,640 >> Tapdığı Əgər hər hansı bir ilə şifreler ki, gözlənilən şifrəli simli, bu lazımdır 116 00:07:24,640 --> 00:07:26,190 ki, parol qaytarın. 117 00:07:26,190 --> 00:07:29,610 Və sonra, bir şey hesab etmir bu çap qayıdacaq ki, 118 00:07:29,610 --> 00:07:31,910 bir şey tapa bilmədi. 119 00:07:31,910 --> 00:07:39,220 İndi görürsünüz ki, bütün iterating mümkün strings yəqin ki, gedir 120 00:07:39,220 --> 00:07:40,420 bir müddət. 121 00:07:40,420 --> 00:07:43,590 Gəlin əslində necə çoxdan edir. 122 00:07:43,590 --> 00:07:47,230 >> Nin crack edək. 123 00:07:47,230 --> 00:07:51,050 Yaxşı, oops - bu undefined deyir crypt istinad. 124 00:07:51,050 --> 00:07:55,330 P spec edir və Belə ki, xatırlayıram crypt üçün də insan səhifə ki, 125 00:07:55,330 --> 00:07:58,130 crypt keçid lazımdır. 126 00:07:58,130 --> 00:08:01,130 İndi default əmr etmək bilmir ki, 127 00:08:01,130 --> 00:08:03,010 ki funksiyadan istifadə etmək istəyirəm. 128 00:08:03,010 --> 00:08:09,680 >> Belə ki, qoy bu müştəri komanda surəti və yalnız sonuna əlavə 129 00:08:09,680 --> 00:08:13,300 bu, birləşdirən crypt. 130 00:08:13,300 --> 00:08:14,820 İndi tərtib edir. 131 00:08:14,820 --> 00:08:23,880 Belə Gəlin verilmiş on crack çalıştırmak şifrəli string - 132 00:08:23,880 --> 00:08:25,130 Sezar belə. 133 00:08:25,130 --> 00:08:28,690 134 00:08:28,690 --> 00:08:30,790 Belə ki, olduqca sürətli idi. 135 00:08:30,790 --> 00:08:33,230 >> Bu 13-də başa Qeyd edək ki,. 136 00:08:33,230 --> 00:08:38,240 Yaxşı, Sezar şifrelenmiş parol 13 olmaq olur. 137 00:08:38,240 --> 00:08:41,650 Elə bir parol edək. 138 00:08:41,650 --> 00:08:45,830 Nin Hirschhorn nin şifrəli edək parol və krekinq keçir. 139 00:08:45,830 --> 00:08:51,750 140 00:08:51,750 --> 00:08:55,110 >> Biz artıq ulaştığınızı Belə ki, qeyd üç simvol. 141 00:08:55,110 --> 00:08:58,660 Və biz bütün mümkün üzərində iterating edirik üç xarakter strings. 142 00:08:58,660 --> 00:09:01,420 Yəni biz artıq başa etdik deməkdir bütün mümkün artıq iterating və 143 00:09:01,420 --> 00:09:04,660 iki xarakter strings. 144 00:09:04,660 --> 00:09:09,180 Bu gedir kimi, indi görünür biz ulaşmadan bir müddət almaq 145 00:09:09,180 --> 00:09:10,580 dörd xarakter strings. 146 00:09:10,580 --> 00:09:14,680 Bu bir neçə dəqiqə bilər. 147 00:09:14,680 --> 00:09:16,055 >> Bu bir neçə dəqiqə almadı. 148 00:09:16,055 --> 00:09:18,450 Biz dörd xarakter strings etdiyiniz. 149 00:09:18,450 --> 00:09:22,800 Amma indi biz bütün təkrarlamaq lazımdır mümkün dörd xarakter strings, hansı 150 00:09:22,800 --> 00:09:26,000 ki, bəlkə 10 dəqiqə bilər. 151 00:09:26,000 --> 00:09:28,720 Və sonra biz beş karakter çatdıqda strings, biz bütün təkrarlamaq lazımdır 152 00:09:28,720 --> 00:09:31,450 o, hansı güc bir neçə saat. 153 00:09:31,450 --> 00:09:34,080 Və biz bütün mümkün üzərində təkrarlamaq lazımdır altı xarakter strings, hansı 154 00:09:34,080 --> 00:09:36,560 belə bir neçə gün və bilər. 155 00:09:36,560 --> 00:09:41,380 >> Belə ki, çox uzun potensial bilər bütün mümkün üzərində təkrarlamaq üçün vaxt 156 00:09:41,380 --> 00:09:44,850 səkkiz xarakter və daha az strings. 157 00:09:44,850 --> 00:09:50,600 Belə ki, bu mütləq fark tapmaq üçün çox səmərəli alqoritm 158 00:09:50,600 --> 00:09:51,860 bir parol. 159 00:09:51,860 --> 00:09:54,540 Siz hesab edə bilər ki, yaxşı yol. 160 00:09:54,540 --> 00:10:02,230 Məsələn, parol zyx! 32ab yəqin ki, bir çox ümumi parol deyil 161 00:10:02,230 --> 00:10:06,440 12345 Loqin isə yəqin ki, daha çox ümumi. 162 00:10:06,440 --> 00:10:13,570 >> Parol tapmaq üçün çalışırıq Belə bir yolu daha tez yalnız baxmaq üçün 163 00:10:13,570 --> 00:10:15,560 daha ümumi olan şifrələri. 164 00:10:15,560 --> 00:10:20,480 Belə ki, məsələn, biz sözləri oxumaq üçün cəhd edə bilərsiniz Bir lüğət və bütün cəhd 165 00:10:20,480 --> 00:10:24,860 bizim parol guesses kimi bu sözləri. 166 00:10:24,860 --> 00:10:29,210 İndi bəlkə bir parol ki, sadə deyil. 167 00:10:29,210 --> 00:10:32,600 Bəlkə istifadəçi qədər ağıllı idi və bir sıra eklenmesi cəhd 168 00:10:32,600 --> 00:10:34,220 Sözün sonu. 169 00:10:34,220 --> 00:10:37,000 >> Belə ki, bəlkə onların unutdunuz password1 idi. 170 00:10:37,000 --> 00:10:41,520 Beləliklə, siz bütün sözlər üzərində iterating cəhd edə bilərsiniz bir ilə lüğət 171 00:10:41,520 --> 00:10:43,210 onun sonuna əlavə. 172 00:10:43,210 --> 00:10:47,360 Və sonra bəlkə bunu sonra, will bunun sonuna bir iki əlavə. 173 00:10:47,360 --> 00:10:50,240 >> Və ya bəlkə istifadəçi hətta olmağa çalışır daha ağıllı, istədikləri onların 174 00:10:50,240 --> 00:10:54,980 parol "hacker" olaraq lakin onlar istəyirik e etdiyi bütün hallarda əvəz etmək niyyətindədir 175 00:10:54,980 --> 00:10:56,600 üçlər ilə. 176 00:10:56,600 --> 00:10:58,440 Belə ki, siz də bunu edə bilər. 177 00:10:58,440 --> 00:11:02,100 Lüğətə bütün sözləri üzərində təkrarlamaq ancaq ki, simvol əvəz 178 00:11:02,100 --> 00:11:04,790 bu nömrələri ilə ədəd kimi baxmaq. 179 00:11:04,790 --> 00:11:09,670 >> Bu yolla Belə ki, daha çox tutmaq bilər olduqca ümumi olan parol. 180 00:11:09,670 --> 00:11:14,690 Amma sonunda, yalnız yol bilərsiniz bütün parol ələ brute edir 181 00:11:14,690 --> 00:11:17,340 bütün təkrarlamaq məcbur mümkün strings. 182 00:11:17,340 --> 00:11:22,100 Belə ki, sonunda, siz təkrarlamaq lazımdır bir xarakter olan bütün strings üzərində 183 00:11:22,100 --> 00:11:28,110 bir almaq bilər səkkiz simvol çox uzun müddət, lakin siz bunu etmək lazımdır. 184 00:11:28,110 --> 00:11:30,024 >> My name Rob Bowden edir. 185 00:11:30,024 --> 00:11:31,425 Bu Crack edir. 186 00:11:31,425 --> 00:11:36,533