Gray Hat C#

#1 Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности. C# Введение. Выбор IDE.

Здравствуйте, дорогие друзья.

В отличие от других языков, таких как Ruby, Python и Perl, программы C# можно запускать по умолчанию на всех современных компьютерах с Windows. Кроме того, запуск программ, написанных на C# в системе Linux, такой как Ubuntu, Fedora не может быть проще, тем более что Mono можно быстро установить с помощью большинства менеджеров пакетов Linux, таких как apt или yum. Это ставит C# в более выгодное положение для удовлетворения межплатформенных потребностей, чем большинство языков, благодаря простой и мощной стандартной библиотеке, которая всегда у Вас под рукой. В целом, C# и библиотеки Mono/.NET представляют собой привлекательную среду для всех, кто хочет быстро и легко писать кроссплатформенные инструменты.

Выбор IDE


Большинство тех, кто хочет изучить C#, будут использовать интегрированную среду разработки (IDE), такую как Visual Studio, для написания и компиляции своего кода. Visual Studio от Microsoft является фактическим стандартом разработки на C# во всем мире. Бесплатные версии, такие как Visual Studio Community Edition, доступны для личного использования и могут быть загружены с веб-сайта Microsoft по адресу https://www.visualstudio.com/downloads/.


Во время разработки кода я использовал MonoDevelop и Xamarin Studio в зависимости от того, работал ли я на Ubuntu или OS X соответственно. В Ubuntu Вы можете легко установить MonoDevelop с помощью менеджера пакетов apt. MonoDevelop поддерживается Xamarin, компанией, которая также поддерживает Mono. Чтобы установить его, используйте следующую команду:


$ sudo apt install monodevelop

Xamarin Studio — это торговая марка MonoDevelop IDE для OS X. Xamarin Studio и MonoDevelop имеют одинаковую функциональность, но немного различаются пользовательскими интерфейсами. Вы можете загрузить установщик для Xamarin Studio IDE с веб-сайта Xamarin по адресу https://www.xamarin.com/download-it/.
Любая из этих трех IDE удовлетворит наши потребности в этой книге. На самом деле, если Вы просто хотите использовать vim, Вам даже не нужна IDE! Вскоре мы также рассмотрим, как скомпилировать простой пример с использованием компилятора C# командной строки, поставляемого с Mono, вместо IDE.

Простой пример


Всем, кто использовал C или Java, синтаксис C# покажется очень знакомым. C# — это строго типизированный язык, такой как C и Java. Это означает, что переменная, которую Вы объявляете в своем коде, может иметь только один тип (например, целое число, строка или класс Dog) и всегда будет этого типа, несмотря ни на что. Давайте начнем с быстрого рассмотрения примера Hello World в листинге 1-1, в котором показаны некоторые основные типы и синтаксис C#.

Hello, World.

Сразу же нам нужно импортировать namespaces, которые мы будем использовать, и мы делаем это с помощью оператора «using«, который импортирует namespaces [1].
Это обеспечивает доступ к библиотекам в программе, аналогично #include в C, импорту в Java и Python, и require в Ruby и Perl. После объявления библиотеки, которую мы хотим использовать, мы объявляем namespaces [2], в котором будут жить наши классы.
В отличие от C (и более старых версий Perl), C# — объектно-ориентированный язык, похожий на Ruby, Python и Java. Это означает, что мы можем создавать сложные классы для представления структур данных, а также методы для этих структур данных, во время написания кода. Namespaces позволяют нам организовывать наши классы и код, а также предотвращать потенциальные конфликты имен, например, когда два программиста создают два класса с одинаковым именем. Если два класса с одинаковым именем находятся в разных пространствах имен, проблем не возникнет. Каждый класс должен иметь namespaces.
Убрав пространство имен, мы можем объявить класс [3], который будет содержать наш метод [4] Main().
Как мы заявляли ранее, классы позволяют нам создавать сложные типы данных, а также структуры данных, которые лучше соответствуют реальным объектам. В этом примере имя класса фактически не имеет значения; это всего лишь контейнер для нашего метода Main(), и это действительно важно, поскольку именно метод Main() будет выполняться, когда мы запускаем наш пример приложения. Каждому приложению C# требуется метод Main(), как и в C и Java. Если Ваше приложение C# принимает аргументы в командной строке, Вы можете использовать переменную args [5], для доступа к аргументам, передаваемым приложению.
В C# существуют простые структуры данных, такие как stringsz [6], и могут быть созданы и более сложные структуры, такие как класс, представляющий дату и время[7]. Класс DateTime — это основной класс C# для работы с датами. В нашем примере мы используем его для сохранения текущей даты и времени (DateTime.Now), в переменной now. Наконец, объявив наши переменные, мы можем напечатать дружественное сообщение, используя методы Write()[8] и WriteLine()[9] класса Console (последний из которых включает в конце символ новой строки).
Если Вы используете IDE, Вы можете скомпилировать и запустить код, нажав кнопку «Выполнить», которая находится в верхнем левом углу IDE, и выглядит как кнопка «Воспроизвести», или нажав клавишу F5. Однако, если Вы хотите скомпилировать исходный код из командной строки с помощью компилятора Mono, Вы также можете легко это сделать. Из каталога с кодом Вашего класса C# используйте инструмент mcs, поставляемый с Mono, для компиляции ваших классов в исполняемый файл, например:

При запуске кода из листинга 1-1, должна быть выведена строка «Hello World!», и текущая дата в той же строке, как в листинге 1-2. В некоторых системах Unix Вам может потребоваться запустить mono ch1_hello_world.exe.

Hello World! The date is Wednesday, June 28, 2023
Поздравляем с Вашим первым приложением на C#!

На этом все. Всем хорошего дня!