рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

История хакерства

История хакерства - раздел Компьютеры, О Чем Эта Книга ...

О чем эта книга

Эта книга не предназначена специально для кракеров. Несмотря на то что в ней рассматриваются и даются в виде законченных технологий механизмы атак… Не предназначена эта книга и для разработчиков защит. Я не хотел делать упор… Термин "хакер" имеет множественные трактовки, которые было бы бессмыс­ленно перечислять здесь и тем более…

История хакерства

"Попытка понять Муаддиба, не поняв его смертельных врагов, — это попытка увидеть правду без знания лжи. Это попытка понять, что такси свет, не зная, что такое тьма. Это просто невозможно."

Ф. Херберт "Мессия Дюны"

"/ remember the gond old days, when computers wen mainframes, analysts were rna^icians.and program mars punced cards..." Philip Fites, Peter Jolinston, Martin Krat?. "Computer viruses crysis"

Рассвет. Первые лучи

На протяжении всей истории человечества всегда находились люди, которые выходили за рамки господствующих установок и традиций, создавая свою… Между взломом компьютерной системы и механического сейфа нет принци­пиальной… Очередной каприз истории: именно длительная компьютерная анархия позво­лила легально развиваться широкому кругу…

Лаборатория искусственного интеллекта в США и PDP-1

Ф. Херберт. "Мессия Дюны". Персонал, обслуживавший правительственные компьютеры, относился к ра­боте… В 1954 году был разработан первый массовый компьютер UNIVAC. Стоимость этого компьютера вполне позволяла ряду…

Сеть

"Ива сгибается под ветром, пока не разрастется и не встанет стеной на его пути. В этом ее предназначение."

Ф. Херберт. "Дюна",

До конца шестидесятых годов хакеров можно было сопоставить с античными Мастерами. Хак ассоциировался с высшим профессионализмом и вытекающей из него культурой поведения. Тесная связь культурного и интеллектуального уров­ней давно отмечалась психологами. Из этого правила, конечно, бывают исключе­ния, но они редки и не меняют общей картины. А картина до конца шестидесятых годов была следующая — в условиях полной замкнутости и отсутствия какой-ли­бо связи между компьютерными центрами страны каждый программист должен был получить необходимые ему знания САМ. Это был долгий и тернистый путь. Информатика тогда лишь зарождалась, и даже эффективные алгоритмы и приемы еще не были канонизированы и широко известны. Как бы ни был очевиден древовидный поиск или линейная сортировка, но до них нужно было додуматься самому и — увы — далеко не один раз. Как следствие, все алгоритмы десятки раз открывались заново, прежде чем информация о них успевала дойти до адресатов "естественным" путем — через книги и университеты.

Обмен знаниями происходил только в узких рамках университетских или лабораторных общин. В этих условиях компьютерный вандализм просто не мог возникнуть. "Паршивые овцы" быстро выявлялись и с позором выдворялись прочь. Да и было-то их очень немного. Машинное время и программистский труд очень ценили, и любая мысль о "завешивании" системы казалась кощунственной.

В лексиконе тогдашних хакеров еще не появилось оскорбительное слово "ламер". Не то чтобы среди них не было таковых, но программисты в то время намного лояльнее относились к непрофессионалам. Да и как бы можно было расценить такие оскорбления в тесных коллективах?

Сегодня, на фоне развитых сетевых коммуникаций, когда собеседники едва ли имеют шанс встретиться лицом к лицу в реальной жизни, ситуация кардинально изменилась. Электронное общение принесло вместе с неоспоримыми благами немало проблем, с которыми вынуждены сталкиваться сегодняшние хакеры. Первый камень этого здания был заложен в 1969 году. Тогда по инициативе Управления перспективных исследований Министерства Обороны США — Defen­se Advanced Research Projects Agency — создается первая вычислительная сеть, получившая название Advanced Research Projects Agency NETwork — ARPAnet.

ARPAnet сразу объединила несколько университетов, находящихся в разных концах США и продолжала стремительно расширяться. По очередной иронии судьбы, эта сеть планировалась не для передачи секретных сведений, а просто для обмена открытой информацией и электронной перепиской, поэтому разграни­чивающих доступ элементов в ее архитектуре не присутствовало. Это только лишний раз подчеркивает, что еще в конце шестидесятых годов не только не имели представления о вандалах, но даже не могли догадываться о их появлении

Именно этот недосмотр, унаследованный общеизвестной сетью Интернет, привел последнюю к состоянию сегодняшней анархии. Но не будем пока забегать так далеко вперед.

Сеть не только физически соединила компьютеры, но и духовно сплотила работающих за ними людей. Хакеры, привыкшие к малоподвижному образу жизни, порой и не знали, где географически находится их респондент — в соседней лаборатории или r другом штате. Интенсивное взаимодействие сотен и даже тысяч очень неглупых людей послужило невероятно быстрому прогрессу. Для тех времен было характерно открытое обсуждение и распространение технологий н инженерных решений. Любые недочеты быстро исправлялись, и программа (технология) уже в исправленном варианте отправлялась в сеть на следующий цикл доработки.

Времена, когда каждый изобретал свой велосипед, уже уходили в историю. Вместо бессонных ночей, проведенных в попытках решения задачи, теперь время тратили на поиск уже готовой информации в быстро набирающей силы сети. Не будем навешивать ярлыки, но именно эта легкость получения уже готовой информации без понимания ее сути и послужила толчком к появлению в Сети людей, которые ничего не делали сами н только копировали ресурсы других.

Число пользователей ARPAnet продолжало расти, и не всех из них можно было назвать хорошими парнями. Кроме того, ресурсы сети помимо собственно программистов начали использовать для служебной и деловой переписки и люди, далекие от компьютеров.

Прежняя монолитность компьютерного сообщества рухнула. Теперь далеко не каждый человек, сидевший за терминалом, был программистом. Все чаще и чаще он оказывался, выражаясь сегодняшней терминологией, юзером. Успех ARPAnet и совершенствование компьютерных технологий вели к тому, что ЭВМ превраща­лась в предмет массового спроса и потребления.

Хакерский жаргон становился знаком принадлежности к особой группе — касте компьютерных фанатов. В то время хакерство еще не было модным, и никому и н голову не приходило копировать его профессиональный сленг, да и особой нужды в этом у пользователей еще не было.

В конце шестидесятых годов компьютерные технологии шагнули далеко вперед, заменив телетайпы терминалами, а перфокарты — клавиатурой. Не в меньшей мере это отразилось и на возросших вычислительных мощностях. Машинное время выделялось уже в достаточной мере н позволяло решать задачи, о которых раньше никто и не пытался помышлять.

Ярким примером могут служить первые прототипы будущих вирусов програм­мы-кролики. Не причиняя разрушений, они тем не менее были сконструированы так, что многократно копируя себя захватывали большую часть ресурсов системы, отнимая процессорное время у других задач. История их создания доподлинно не известна. Возможно, они явились следствием программной ошибки, которая приводила к зацикливанию и наделяла программу репродуктивными свойствами. Первоначально кролики (rabbits) встречались только на локальных машинах, но с появлением Сети быстро "научились" размножаться по последней. В конце шестидесятых годов была обнаружена саморазмножающаяся по сети APRAnet программа, известная сегодня как CREEPER (вьюнок), которая будто бы была написана Бобом Томасом (Bob Thomas). Вьюнок проявлял себя текстовым сооб­щением

 

"I'M THE CREEPER ... CATCH ME. IF YOU CAN"

("Я ВЬЮНОК ... ПОЙМАЙ МЕНЯ, ЕСЛИ СМОЖЕШЬ")

 

и экономно относился к ресурсам пораженной машины, не причиняя ей никакого вреда и разве что слегка беспокоя владельцец. Каким бы безвредным Вьюнок ни казался, но он впервые показал, что проникновение на чужой компьютер возмож­но без ведома и против желания его владельцев.

С появлением Creeper родились и первые системы защиты. Да, теперь компьютеры стали ценностью, которую следовало охранять не только от воров с отмычками и трейлерами (а на чем еще можно было увезти компьютеры того времени?), но и от разрушительных или злоумышленных команд, проникающих по сети или через магнитные носители.

Первым шагом в борьбе против Вьюнка стал Жнец (REAPER), репродуцирую­щийся наподобие Creeper-a, но уничтожающий все встретившиеся ему копии последнего. Мы не знаем, чем закончилась борьба двух программ. Так или иначе от подобного подхода к защите в последствии отказались. Однако копии обеих программ еще долго бродили по сети...

Предназначенная изначально для обучения и обмена информацией Сеть стала открытыми воротами на пути зарождавшегося компьютерного вандализма. Имен­но та легкость и доступность информации приведет через несколько лет к тому, что безграмотные и озлобленные маньяки получат н руки практически готовые технологии и инструментарий, чтобы потом употребить их для своих черных дел.

Именно Сеть впоследствии вынесет компьютеры из лабораторий и поставит их "персоналками" на рабочие столы; разрушит атмосферу отношений, царившую в компьютерном мире шестидесятых-ссмидесятых годов. Позже деградация обра­зования и общества уничтожит хакерский дух. Уже в восьмидесятых останутся лишь отдельные одиночки, хакерство как общественное движение прекратит свое существование. Но мы слишком забежали вперед. Вернемся вновь к концу шестидесятых — началу семидесятых годов.

 

Си и UNIX

Ф. Херберт. "Дюна". В 1969 г. усилиями двух талантливых программистов была создана система,… Си завоевал сердца многих хакеров своей лаконичностью, краткостью, красо­той и гибкостью выражения инженерной мысли. …

Конец хакеров шестидесятых

Ф. Херберт. "Дюна". Шагнем на пару лет вперед. Это были годы непрерывного совершенствования… И необходимость в высокопрофессиональных программистах и тщательно оптимизированном коде мало-помалу начала отпадать.…

RSX-11M

Ф. Херберт. "Дюна". В начале семидесятых еще никто не представлял себе, какого размаха достигнет… Некоторые компании, пытаясь захватить ничейный рынок микрокомпьютеров, развернули свою деятельность в этом…

INTEL

"Солнце не просит о милосердии".

Ф. Херберт. "Дюна".

Фирма INTEL одной из первых рискнула сделать ставку на микропроцессоры для персональных компьютеров (впрочем, ни самого термина "персональный компьютер", ни микропроцессоров для них тогда еще не существовало: и те и другие еще предстояло изобрести). Персональные компьютеры еще назывались "интеллектуальными терминалами", и предполагалось, что они будут способны служить в системах управления и для арифметических вычислений.

Intel не обладала значительным начальным капиталом и вряд ли могла конкурировать с существующими фирмами. Все, что ей оставалось, — это вложить все средства в разработку микрочипа и занять ту нишу рынка, на которую пока никто серьезно не претендовал.

Такой чип впервые появился в 1972 году и вышел под кодовым обозначением 8008. Это была первая и очень простая модель микропроцессора, которая могла служить калькулятором, и не более того. Тем не менее тогда еще юный Билл Гейтс все же ухитрился создать на ее основе устройство для анализа городского траффика (движения). Разумеется, назвать это устройство компьютером было нельзя даже с большой натяжкой.

Но время не стояло на месте, а инженеры Intel нс сидели сложа руки. Через три года, весной 1974, журнал Electronics опубликовал сообщение о новом чипе Intel 8080. Это действительно был шедевр, который каждый мог приобрести всего за 200 долларов. Конечно, этому микропроцессору было далеко до "больших машин" .как по скорости, так и по архитектуре, системе команд, но для "персо­нального" использования он вполне годился.

Потребовалось меньше года, прежде чем в мире появился первый персональ­ный компьютер на его основе — Altair. Но что это был за компьютер! С сегодняшних позиций нам очень трудно понять, что машина без клавиатуры, дисплея, и конечно, без каких бы то ни было накопителей могла называться "компьютером".

Однако это и был первый минимально функциональный ПК. Микропроцессор, немного оперативной памяти и сопрягающих микросхем — вот и все, что было нужно для работы этой груды железа. Единственным устройством вывода служи­ли 16 индикаторов на передней панели, а устройством ввода — 16 переключате­лей. Собственно говоря, это была машина для радиолюбителей и электронщиков. Последние вообще могли просиживать ночи напролет, заставляя индикаторы перемигиваться самым причудливым образом. 4 килобайта памяти тогда казались более чем достаточными для таких целей. А вот отсутствие удобных средств ввода-вывода сильно обескураживало.

Поэтому практически каждый, купивший Altair, пытался в той или иной степени его модернизировать. Не будем забывать, что в то время он стоил 1000$ и позволить себе купить его могли только фанатично преданные электронике (или компьютерам) люди. Теперь они получали ЭВМ в свое личное распоряжение и могли экспериментировать с ней как им вздумается.

Почти все из них были "молодым" поколением, до этого нигде не работавшим, а, может быть, и не видевшим "серьезных" машин. Поэтому их не смущало, что система команд и архитектура микропроцессора фирмы Intel значительно уступа­ла даже первым моделям PDP и требовала совсем иного мышления и подхода.

Разрыв в мышлении между старыми и новыми программистами был просто огромен. К тому же, если первые были большей частью образованными людьми, то последние — в основном кустарями, безусловно талантливыми, ко за исклю­чением редких случаев так и не закончившими образования.

Но всех их объединяло большое чувство любви к технике и компьютерам. Не был исключением и Билл Гейтс, который вовсе не из-за денег в течение пяти месяцев создавал первую версию бейсика для Альтаира. Это было необычайное расточительство и без того скудных машинных ресурсов, но упрощало общение с машиной. Все же бейсик выучить было куда легче, чем бессмысленные (для большинства) команды ассемблера.

Впрочем, тогда эта версия бейсика так и не снискала популярности. Она оказалась слишком прожорливой, и программы еле-еле ползали. Но джин был выпущен из бутылки. С этого времени персональные компьютеры начали произ­водиться многими фирмами и находили покупателей.

Хаос

"Хаос существовал в виде сырья, из которого творится порядок."

Ф. Херберт. "Дом Глав Дюны".

Перенесемся на десяток лет назад. Многие до сих пор помнят это время. Десятки моделей машин от разных производителей, совершенно не совместимые друг с другом даже на уровне переноса текстовых файлов данных. Это стало настоящим бедствием для программистов восьмидесятых годов. Обмен программ­ным обеспечением был невозможен. Портабельных компиляторов не существова­ло. Более того, диалекты одного и того же языка реализовывались на каждой машине по-своему.

Словом, компьютерный мир находился в состоянии анархии и неудержимо катился в пропасть машинной несовместимости и полной разобщенности. Это порождало множество экономических и социальных проблем. Начнем с того, что преподавание в высших учебных заведениях информатики было очень затруднено невозможностью выбора одной конкретной платформы. Действительно, в дальней­шем обучаемый студент мог столкнуться с совсем другими моделями ЭВМ иной архитектуры.

Конечно, каждый грамотный инженер должен уметь осваивать технику по предоставленной документации (так оно к было). Но это требовало значительных затрат времени, в течение которого предприятие оплачивало обучение (а точнее, переобучение) инженера. В нашей стране, быть может, это и не было удивитель­но, но в капиталистических странах оплачивать из своего бюджета обучение персонала могли только крупные и солидные фирмы, да и те стремились брать на работу людей опытных и знающих. А "молодое поколение" оказывалось невост­ребованным. Фактически все держалось на старых кадрах.

Все это негативно сказывалось на развитии рынка программного обеспечений. Фактически все программы создавались инженерами тех предприятий, которым эти программы собственно и требовались. При этом чаще всего написанные пакеты оказывались бесполезными для окружающих, потому что последние обычно имели совершенно другие компьютеры. Иногда ближайший совместимый компьютер находился за сотни километров в совершенно другом городе.

Конечно, каналы распространения программ все же существовали. Но чаще всего приложения, написанные "для себя", не годились для остальных пользова­телей.

Это был "серебряный век" хакерства, особенно в нашей стране, когда требо­валось перекроить чужую программку под свои нужды. Специалисты, умевшие это делать, высоко ценились руководством. Им позволялись вольности, недопу­стимые для простых смертных. Действительно, специалистов такого класса было немного. Хэкерству не учили в учебных заведениях, и в то время не существовало развитых средств обмена информацией. Нужен был изрядный талант, чтобы глубоко освоить системное программирование, как тогда было принято говорить, "без отрыва от производства".

Печально, однако, что незаурядные личности губили свой талант, работая простыми системными операторами, когда на Западе программисты подобного уровня устраивались в узкоспециализированные фирмы, где могли исчерпывающе реализовать себя. В России же в то время все ПО создавалось в основном на заводах, производящих ЭВМ.

При этом качество его оставляло желать лучшего. Может быть, среди читателей найдутся такие, которые до сих пор помнят некоторый шедевр отече­ственного компьютеростроения "Агат-9" и его на редкость корявую программную оснастку. Агат-DOS 3.3 не выдерживала никакой конкуренции даже с существу­ющей в то время СРМ.

Разумеется, это не могло никого устроить и все пользователи этой машины первым делом садились за написание собственной операционной системы, удов­летворяющей хотя бы минимальным требованиям. Сегодня это выглядит средне­вековой дикостью, но в таком положении вещей были и свои плюсы. Написание ОС — дело непростое и требует обширных знаний, далеко выходящих за кругозор сегодняшнего поколения программистов. Причем маловероятно, чтобы устойчиво работающая ОС получилась с первого раза. По крайней мере, я написал десяток операционных систем для "Агата", из которых пользовался только тремя, а остальные забраковал еще на стадии написания.

Это же можно сказать и о прикладных программах. Практически все они были созданы самостоятельно. Конечно, это был глупый и пустой труд, но зато приобретенные навыки оказались бесценными. Полученные знания позволяли писать качественные, компактные, удобные в работе программы. Однако...

Однако мы забываем, что в то время существовали десятки разнотипных машин и это обесценивало большую часть проделанной работы при переходе на новую платформу. Это было настоящим проклятием для программистов. Менялся не только набор инструкций процессора и логика взаимодействия с периферией, но и сама концепция и архитектура.

Фактически было невыгодно покупать новые модели компьютеров. Увеличе­ние вычислительной мощности не компенсировало необходимость переобучения персонала и переписывание всего необходимого ПО. Большинство предпочитало работать на старом оборудовании, попутно решая головоломную проблему ремон­та вышедшей из строя техники. С каждым годом достать устаревшие (и уже снятые с производства) комплектующие становилось все сложнее.

Для предприятия было гораздо проще иметь собственного высококвалифици­рованного специалиста-электронщика, чем пытаться поддержать работоспособ­ность парка машин любым другим способом. Но что же могло привлечь хороших специалистов на предприятия, мягко выражаясь, совсем другого профиля? Разу­меется, только одно — возможность заниматься в рабочее время собственными исследованиями на предоставленной аппаратуре.

Все запуталось еще больше. Теперь центры кибернетики медленно мигриро­вали из вроде бы специально для этого предназначенных институтов на крупные предприятия и заводы, разбросанные по всей нашей стране. Доходило до того, что некий сибирский трубопрокатный завод имел вычислительную технику и штат сотрудников, которому мог бы позавидовать иной НИИ.

 

Бытовой компьютер восьмидесятых

Ф. Херберт. "Бог — император Дюны". В это время и наша отечественная промышленность достигла высот, позволяв­ших… По нынешним меркам это устройство равносильно программируемому кальку­лятору, только на порядок более неуклюжему и…

Рождение современных хакеров, или снова INTEL

Ф. Херберт. "Дети Дюны". Однажды руководство IBM предприняло попытку создать собственный вари­ант… Но IBM имела богатый опыт в конструировании майн-фреймов и, кроме того, набрала в свой штат опытных инженеров, с…

Психологический анализ. Что движет хакером

Ф. Херберт. "Мессия Дюны". За последние годы трактовка слова "хакер" сильно изменилась. Это в… Иными словами, если в высших учебных заведениях работали (к сожалению, в прошлом времени) преимущественно люди…

Введение в криптосистемы

Введение

"Стать хакером очень просто. Достаточно выу­чить и понять: математические дисциплины (математический анализ, теорию функций комплексного переменного, алгебру, геометрию, теорию вероятностей, математическую стати­стику, математическую логику и дискретную математику...)".

Борис Леонтьев. "Хакеры & internet".

Существуют два основных подхода, применяемых в системах защиты инфор­мации. Первый построен на затруднении прямого или косвенного анализа алго­ритма с помощью оригинальных приемов программирования (использование недокументированных функций, специальных антиотладочных приемов). Такой подход широко применяется в условно-бесплатных программах, однако он крайне неэффективен. Для него характерно плохое соотношение накладных расходов на создание вскрытие защиты; кроме того, он не обеспечивает даже минимальной безопасности. Большинство подобных программ ломаются в течение нескольких минут, самое большее — нескольких дней.

Сегодня большинство коммерческих защит основано на криптографических протоколах. Эти защиты выглядят неломаемыми. "Выглядят" потому, что разработчики не учитывают разницу между теоретическими моделями и прак­тической реализацией. Подробнее перечень основных ошибок в популярных ; системах изложен Павлом Семьяновым в статье "Почему криптосистемы . ненадежны". Здесь отмечу лишь следующее: да, действительно, очень многие . используемые криптосистемы ненадежны, и практически все в той или иной степени уязвимы.

Кроме того, обычно такие оценки исходят из предположения, что злоумышленник будет просто перебирать последовательно все пароли один за другим. Наивно, не так ли? Лобовая атака на современных вычислительных мощностях персональных компьютеров сегодня попросту невозможна. Сколь нибудь удовлетворительные результаты могут быть получены только при объединении десятков тысяч компьютеров.

Совсем другая картина получается при анализе криптосистемы и поиске уязвимого места для атаки. Маловероятно, что конечная реализация не имеет слабых мест. Это, конечно, никак не означает, что, как следует проанализировав ситуацию, можно найти дырку и быстренько в нее пролезть. Возможно, криптостойкость даже самого слабого места в системе окажется вполне достаточной для ее защиты. Но математический подход дает нам зрение и возможность качествен­ной и самое главное количественной оценки сложности атаки.

К сожалению, сейчас многие (с позволения сказать) недохакеры не обладают даже минимальными математическими знаниями. Более того, академическую математику закидывают камнями, обвиняя в полной бесполезности для приклад­ных и системных программистов. Увы, это кризис нашего (да и не только нашего) образования.

Несмотря на то что первая часть является неизбежным теоретическим введе­нием, все ее положения будут рассмотрены на примерах конкретных реализаций. Для этого необходимо выбрать платформу. Приучая читателя к детальному ("низкоуровневому") мышлению, я выбираю ассемблер. Реже буду использовать IDA Си и MS VC Поклонники Pascal и Delphi должны делать свой выбор самостоятельно. Во всяком случае, без знания ассемблера изучение и защита программ в большинстве случаев невозможна. Эта книга не научит вас основам ассемблера и рассчитана на уже подготовленного читателя.

С другой стороны никакой математической подготовки книга не требует. Однако я надеюсь, что в процессе чтения читатель будет обращаться к соответствующим источникам для получения более детальной картины подаваемого материала.

Настоящий хакер никогда не откажет себе в удовольствии копаться не только в недрах кода, но и в литературе (бумажной или электронной). Соблазн исполь­зовать готовые схемы и решения "AS IS" достоин только коммерческих кракеров (поставивших взлом на поток и зарабатывающих деньги на эксплуатации чужих идей и инструментов).

Не будем вдаваться в этическую полемику и задаваться извечным вопросом "что такое хорошо и что такое плохо?" Так или иначе это есть. Для использования любой законченной технологии не требуется понимать ее функционирование. Воплощенная в конкретный программный код, она становится в руках вандалов разрушающим программным оружием. Выход из ситуации "методом страуса" невозможен.

Сегодня вычислительная техника уже не контролируется, и такая программа будет создана и распространена — если не одним, так другим человеком. Распространение технологий и инструментов для взломов и атак является не актом вандализма, а напротив, указанием на уязвимость существующих систем, и побуждает к исправлению последних.

Препятствование распространению информации об атаках приводит к опасной иллюзии безопасности, которая в любой момент может рухнуть, погребая под своими обломками труды, возможно, тысяч людей.

Все прилагаемые к книге программы предназначены в первую очередь для системных администраторов и разработчиков систем безопасности для оценки их уязвимости.

Предполагается, что существующие "дырки" будут залатаны, и весь инстру­ментарий, содержащийся на компакт-диске, окажется бесполезным в руках вандалов.

Это не относится к теоретическим выкладкам, "отвязанным" от конкретных платформ и реализаций. К счастью, маловероятно, чтобы вандалы дали себе труд глубоко в них разобраться. Известно, что даже техническое образование культур­но воспитывает человека. Знания дают человеку великолепный полигон для самовыражения, уничтожая желание пакостить ближнему.

Хеши. Односторонние функции

Ф. Херберт. "Дюна". Вся современная криптография основана на использовании методов хеширо­вания.… h: А -> {0,х-1}

F(Ai) —P--->Aj

Вот тут-то на помощь и приходит хеш-преобразование. Мы можем вычислить CRC32 для исходного текста. Сравнивая его с CRC32 Aj, мы можем проверить… Впрочем, этот способ достаточно медленный. Гораздо быстрее сравнивать… Выше мы упоминали специальные хеш-функции. Развитие криптографии привело к исследованию так называемых односторонних…

С—f---Z

Рассмотрим следующий аспект. Как правило, пароли состоят не из равнове­роятных символов. Хорошая перебирающая программа должна это учитывать. Может… Отметим также гетерогенные свойства предложенного алгоритма. Т.е. функция… В качестве примера приведем усовершенствованный алгоритм с отображени­ем, выполняемым функцией xlat…

Простейшие системы шифрования

Ф. Херберт. "Дюна". Данная глава является кратким обзором проблемы для неподготовленного читателя.… Неоправданно популярный способ проверки легальности копии:

Открытые системы

Откровенно говоря, у меня никогда не вызывали уважения люди, похищающие пароли с помощью шпионажа и "социальной инженерии". Нетехнические… В действительности открытых криптосистем сегодня не существует. Человек… С другой стороны, на самом деле картина отнюдь не такая мрачная. Каналы передачи и хранения ключей сегодня достаточно…

Как атаковать шифр

LODSB ; Читаем байт введенного пароля. ADD АН, AL ; Суммируем LOOP CalcCRC ; —{СХ}—

Логическая (программная) защита

Введение

Логические (программные) защиты основываются на том предположении, что код программы не будет изучен и (или) изменен. В этом случае приложение рассматривается как "черный ящик", на вход которого подается некоторая ключевая информация. Это может быть серийный номер, ключевой диск... — да все что придумает автор. Грубо все защиты можно разделить на две категории:

» основанные на знании (пароль, серийный номер); • основанные на обладании (ключевой диск, документация).

Любопытно, что первая категория защит в основном полагается на законода­тельство и законопослушность пользователей. Действительно, что помешает легальному пользователю "поделиться" паролем или сообщить серийный номер всем желающим? Конечно, подобное действие можно квалифицировать как "пиратство" и наказать нарушителя. Но точно так же можно наказать за распространение любого ПО, охраняемого авторским правом, вне зависимости от наличия/отсутствия на нем защиты.

Общеизвестно, что правоохранительные органы в нашей стране относятся к пиратам очень терпимо. Нелегальное ПО можно свободно купить в любом городе в центральных магазинах и на радиорынках.

В этих условиях "спасение утопающих — дело рук самих утопающих". Разработчики ПО используют специальные методы, препятствующие нелегально­му тиражированию своей продукции. Самые распространенные сегодня защи­ты — это пароли и серийные номера. Как уже было отмечено выше, наивно полагаться на то, что это затруднит копирование. Серийные номера содержатся в файлах read.те на дисках, печатаются на обложках, помещаются на общедо­ступных серверах в Интернете и публикуются в телеконференциях.

В настоящее время взлом и модификация кода программ для удаления процедуры запроса серийного номера уже не популярны. Гораздо легче сообщить покупателю серийный номер.

Эти взгляды характерны не только для пользователей, но и для хакеров. Действительно, зачем что-то ломать, если серийный номер и так известен! Однако, встречаются недобросовестные пираты (и довольно нередко), которые распространяют программы без сообщения серийных номеров. Вот тут-то и приходится браться за отладчик!

Рассмотрим простейший пример (file://CD:SOLIRCEVCBREAKOO). Это программа под Win32, использующая библиотеку MFC. Под MS-DOS использу­ются в целом те же принципы защиты, но с небольшими расхождениями. Иногда я на них буду обращать внимание, иногда нет. Не то чтобы взлом досовских приложений перестал быть актуальным, но местами различия не настолько значительны, чтобы стоило отвлекать и запутывать читателя.

Запустим break00.exe на выполнение. Программа просит ввести пароль. Чтобы сравнить его с введенным, оригинальный пароль должен как-то храниться в программе. Очевидным способом является простое посимвольное сравнение

if ((s0-ch) !="KPNC") cout << endl << "Password fail" <<endl;

Для того чтобы найти правильный пароль, надо просто просмотреть дамп программы и поискать все текстовые строки, которые могут быть паролем. Едва ли разработчик защиты (если его так можно назвать) окажется наивным парнем, рассчитывающим, что злоумышленник не найдет открыто хранящийся пароль. Однако некоторые программы (в том числе русифицированные игры от Акеллы) защищены именно так.

Можно было бы просто просматривать текст программы в любом hex-вьювере, но это утомительно, особенно для больших файлов. Поэтому воспользуемся утилитой — "текстовым фильтром", которая анализирует файл и записывает все встретившиеся текстовые строки. Рекомендую воспользоваться собственной Ы-ter. corn.

Рассмотрим полученный листинг.

смещение в файле текстовая строка

24FA: Winit

250C: MSVCP

3020: Password OK

3030: Password fail

3040: KPMC

3048: Enter password

305C: CrackMe

3067: Try to path code of found valid password

3094: Fatal Error

З0A0: MFC initialization failed

 

Обратим внимание на строку, находящуюся по адресу 0х3040. Не правда ли она могла бы быть паролем? Чаще всего (но необязательно) искомая строки располагается близко к тексту "введите пароль". Ниже мы видим еще одного "кандидата".

Давайте проверим, подойдет ли хотя бы один из них?

CrackMeOI : Try to path code of found valid password

Enter password : КРNС

Password OK!

Press any key to continue

Несмотря на простоту, данный метод не лишен недостатков. Самый главный из них — то, что результат не гарантирован. Скорее всего, в открытом виде пароля не окажется.

Более надежным способом (но, увы, и более трудоемким) является дизассем-блирование программы и анализ алгоритма защиты. Это трудоемкая и кропотли­вая работа, требующая не только знаний ассемблера, но и усидчивости, а также немного интуиции.

 

Первый шаг. От ЕХЕ до CRK

После того как дизассемблер завершит свою работу и выдаст километровый листинг, неопытный читатель может испугаться: как войти в эти дебри… Достаточно изучить и понять алгоритм защитного механизма, ответственного за… Для перехода в сегмент данных в IDA надо в меню "View" выбрать "Segment Windows" и среди…

E call j_??4CString@@QAEABVO@PBD[3Z

Далеко не всегда под руками оказывается последняя версия мощного дизас­семблера или другого необходимого инструмента. Обычный программист в такой… Поэтому, стремясь показать, как происходит обращение к локальным перемен­ным,… Использование последней версии IDA выгодно еще и тем, что позволяет получить символьные имена всех используемых…

Как победить хэш

В главе, посвященной динамической шифровке, я впервые использовал в демонстрационной программе хеш-функцию для сокрытия пароля. Действительно, пусть… Однако на самом деле ничего не изменилось. Вместо того чтобы сравнивать… if ((sO"ch)!="KPNC") cout « "Password fail" « endi;

Новый рубеж

Т.е. имеются два полностью идентичных генератора — у автора в виде отдельного приложения и в защитном механизме. Таким образом, остается только… Все, что способен сделать автор защиты, — затруднить анализ и извлечение… Наверное, излишне говорить, что запутывание алгоритма малоэффективно и больше похоже на "ребячество",…

F:00401624 E805030000 call 0040192E

Если мы попытаемся заглянуть в процедуру Ох040192Е, то вероятнее всего утонем в условных переходах и вложенных вызовах. Сложность и витиеватость… 15F:0040161B 88542414 mov [esp+14], dl 15F:0040161F 8B542414 mov edx,[esp+14]

Перехват WM_GETTEXT

Выбор программ-шпионов достаточно широк. Очень неплохо для этой цели подходит ВС от NuMega, однако достаточно и более скромных средств. Например,… Рассмотрим полученный рапорт: ОООООЕ9С S .WM_GETTEXT cchTextMax:30 lpszText:0063F750

Ограничение времени использования

Впрочем, не менее уязвима эта технология по отношению к переводу систем­ной даты, что доступно даже неквалифицированным пользователям. Однако работа… Рассмотрим для примера crack05 (file://CD:SOURCEVCCRACK05… 40 Crack05 OpenKey HKCUSOFTWARECRACK05 KOTFOUMD

C2 jnz loc_4011c0

0040200С RegCreateKeyExA dd ? или по ссылке на строку aSoftwareCrackO; 00403088 aSoftwareCrackO db 'SOFTWARECRACK05',0;DATAXREF:sub_401040+70To

Ограничение числа запусков

Это невероятно упрощает анализ протоколов монитора реестра (или файлов). Действительно, приведенные выше примеры создавали только один раздел… Постоянное изменение счетчика позволяет, сравнив протоколы разных запу­сков,… Заметим, что защита может использовать очень сложный н неочевидный формат. Продемонстрируем это на примере crack09.…

– Конец работы –

Используемые теги: История, хакерства0.054

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: История хакерства

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Лекции по дисциплине История Отечественная история, История России
Составитель к и н доцент УШКАЛОВ В А г Составитель лекций к ф н доцент Топчий И В... Лекция Введение Теоретические проблемы истории...

Краткая история СПО «Альтернатива». История студенческих отрядов Свердловской области. Компетенция и должностные обязанности вожатого
На сайте allrefs.net читайте: Личность вожатого...

История мировых религий: конспект лекций История мировых религий. Конспект лекций ЛЕКЦИЯ № 1. Религия как феномен культуры Классификация религий
История мировых религий конспект лекций... С Ф Панкин...

История природы и история человечества
Пр Фролова С.М М. 1989г. 2. Философия. Курс лекций. Учебное пособие.Пр Бычко К. 1993г. 3. Философские проблемы взаимодействия общества и природы.… Природа - это прежде всего универсум, который охватывает все сущее, в том… У античных философов, как мы знаем, понятием космоса по существу охватывалась вся доступная человеческому понятию…

ИСТОРИЯ ОТЕЧЕСТВЕННАЯ ИСТОРИЯ IX – XXI вв
Государственное образовательное учреждение...

История бизнеса. В данном бизнес плане история бизнеса не представлена, так как предприятие только создаётся
Резюме В резюме изложены основные идеи бизнес плана для создания предприятия Здесь и способы место производства продукции и персонал и... История бизнеса В данном бизнес плане история бизнеса не представлена так... Характеристика продуктов В характеристике указано конкретное описание товара и способы его производства...

Курс лекций по дисциплине Отечественная история Тема 1. История как наука и учебная дисциплина. В.О. Ключевский
Автор составитель В Н Фридкин к ист н доцент... Тема История как наука и учебная дисциплина...

История природы и история человечества
Пр Фролова С.М М. 1989г. 2. Философия. Курс лекций. Учебное пособие.Пр Бычко К. 1993г. 3. Философские проблемы взаимодействия общества и природы.… Природа - это прежде всего универсум, который охватывает все сущее, в том… У античных философов, как мы знаем, понятием космоса по существу охватывалась вся доступная человеческому понятию…

История бизнеса. В данном бизнес плане история бизнеса не представлена, так как предприятие только создаётся
Резюме В резюме изложены основные идеи бизнес плана для создания предприятия Здесь и способы место производства продукции и персонал и... История бизнеса В данном бизнес плане история бизнеса не представлена так... Характеристика продуктов В характеристике указано конкретное описание товара и способы его производства...

Лекция 1. ВВЕДЕНИЕ. ПРЕДМЕТ ГИДРАВЛИКИ И КРАТКАЯ ИСТОРИЯ ЕЕ РАЗВИТИЯ 1.1. Краткая история развития гидравлики
Лекция ВВЕДЕНИЕ ПРЕДМЕТ ГИДРАВЛИКИ И КРАТКАЯ ИСТОРИЯ ЕЕ РАЗВИТИЯ... Лекция ОСНОВЫ ГИДРОСТАТИКИ Гидростатическое давление Основное уравнение гидростатики Давление...

0.034
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам