LINUX.ORG.RU

ЯП


0

0

Я занялся компьютерной безопасностью,
и на определенном этапе понял, что без программирования никуда...
Вообще хочу ислледовать программы,скрипты, находить баги,
переполнения буфера, стека т.д.
Несколько лет назад изучал Pascal,
потом нехватило терпения - забросил, потом
через некоторое время - perl(под виндой) -
тоже самое.Сейчас перешел на Linux ,начал
изучать Си , а вообще понимаю,
что нужно еще учить как минимум Асм,perl.
Вообще чтоб я мог любую утилитку для себя написать
под Linux/win, понимать устройство памяти и т.д.
Так вот что посоветуете ,с чего начать, в какой
последовательности, какие книги?

anonymous

Набраться терпения и изучить для начала хотя бы один язык. Любой.

DKorolkov
()

Это я понял за, Си я взялся серьезно, учусь по книге Кернигана и ричи А конкретней?

anonymous
()

Это я понял за, Си я взялся серьезно,
учусь по книге Кернигана и ричи
А конкретней?

anonymous
()
Ответ на: комментарий от anonymous

> Это я понял за, Си я взялся серьезно, учусь по книге Кернигана и Ричи А конкретней?

Говорят, что хорошая книга (как-никак классика), сам учился по другим, на эту наткнулся много позже, и с точки зрения новичка оценить уже не могу :).

А вообще, серьёзно научиться можно только решая практические задачи. Учебные примеры хороши только на первом этапе. После того, как в общих чертах освоите язык, подберите себе не сложную, но более-менее полезную задачу, которую можно решить с помощью Си. Это не должен быть серьёзный проект с ограниченными сроками, так как наверняка сразу хорошо и правильно не получится и по мере освоения языка придется несколько раз пересматривать и переделывать программу.

Параллельно можно осваивать утилиту make и учиться составлять Makefile для различных случаев. Ещё желательно активно использовать shell: как для написания скриптов так и непосредственно работая в командной строке. Первое время это будет медленнее чем при использовании файл-менеджеров и других GUI-программ, но затраты окупятся.

DKorolkov
()
Ответ на: комментарий от DKorolkov

Большое спасибо,
щас работаю в основном в консоле,
и пишу программы на Си в vi.
Вот с задачей как раз таки проблемы ,не знаю что
можно такое придумать.

А где можно найти инфу про утилиту Make?(в инете)

И еще про другие языки ,может надо паралельно АСМ учить?

anonymous
()
Ответ на: комментарий от anonymous

> Вот с задачей как раз таки проблемы ,не знаю что можно такое придумать.

Здесь помочь труднее всего ;-). Попробую, основываясь на первоначальном сообщении:

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

Возможно (сам такими задачами не занимался, поэтому не знаю), при изучении литературы по данной теме можно наткнуться на какие нибудь примеры, что-то вроде "в такой-то программе есть такая-то уязвимость, написать безопасный вариант". Только программа должна быть максимально простой, в сложной очень трудно разобраться даже при хорошем знании языка. А в первую очередь нужно будет разобраться в механизме этих уязвимостей. Но IMHO всё это не очень годится для первых опытов.

> "Вообще чтоб я мог любую утилитку для себя написать под Linux/win, понимать устройство памяти и т.д."

Если возникла потребность в утилите --- это уже готовая задача. Исследование как что работает --- тоже задача, нечто среднее между учебным примером и полезной программой. Здесь нужно читать, к примеру, про устройство памяти и пытаться написать программу, которая с этой памятью что-то делает. Я, например, когда-то прочитал про работу на низком уровне с видеокартами (ещё со старыми, чуть сложнее VGA) и пробовал писать программы, в которых выполнял какие-то действия (переключения режимов, создание изображения путём прямого заполнения буфера). Ничего полезного тогда из этого не вышло, но немного поразвлекался :-).

> А где можно найти инфу про утилиту Make?(в инете)

1. Не в инете: man make; info make 2. В инете: есть две статьи на этом сайте, но это уже не азы. Можно поискать Гуглом или чем нибудь ещё, есть описания и на английском и на русском.

> И еще про другие языки ,может надо паралельно АСМ учить?

Сильно зависит от задач.

DKorolkov
()
Ответ на: комментарий от DKorolkov

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

ну вот так сутки за сутки вдруг да найдеш переполнение.

А вообще 90% переполнений находят сами разработчики, когда берутся
улудшать (развивать) свой проект.

Так что лучше подсунуть троян разработчикам и воровать у них найденые переполнения )

anonymous
()
Ответ на: комментарий от anonymous

это я понимаю но я еще толком не понимаю все эти стеки,
регистры, адреса и т.д.
вот я и спрашиваю как к этому придти ,
с чего начать?

anonymous
()
Ответ на: комментарий от anonymous

Сам я не читал, но, по-моему, тебе могла бы подойти книга Таненбаума "Архитектура компьютера". Посмотри здесь: http://www.books.ru/shop/books/30261

anonymous
()
Ответ на: комментарий от anonymous

> пишу программы на Си в vi.

попробуй vim - уверен, с ':syntax on' тебе он вольше понравится...

> Вот с задачей как раз таки проблемы ,не знаю что можно такое придумать.

Входи в курс постепенно, рекоммендую стать постоянным посетителем таких сайтов, как http://www.securityfocus.org/ , http://www.insecure.org/

loki
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.