Jump to content
¯\_( ツ)_/¯
  • TAD GROUP are currently hiring penetration testers. Please read the topic in Career Central subforum.
  • Sponsored Ad

Search the Community

Showing results for tags 'операционни системи'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • За форума / About the forum
    • Условия за ползване, препоръки и работа с форумите
  • Информационна сигурност / Information Security
    • Пенетрейшън тестове
    • Тестове за социално инженерство
    • Експлойти
    • Инструменти
    • Вируси
    • Програмиране
    • Криптография
    • Сертифициране
    • След дъжд-качулка :)
    • Безжични мрежи, мобилни устройства и друг хардуер
    • Физическа сигурност
  • Ресурси / Resources
    • Новини: По света и у нас
    • Уроци
    • Състезания за хакери
    • Книги, филми, списания
    • Интересни събития
  • Други / Others
    • Кариерно развитие
    • Продавалник (Купува/Продава, Търси/Предлага)
    • Съответствие, наредби и стандарти
    • Уеб дизайн
    • Оф-топик
  • TAD GROUP's Careers
  • Old school hackers's Topics
  • BG-Soft's Регистриране на крайни приложения
  • BG-Soft's Как и къде да продаваме крайни приложеня
  • BG-Soft's Инструменти за изграждане на крайни приложения
  • BG-Soft's Полезни съвети
  • Assembly x86's Какво е асембли и защо трябва да ни интересува?

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 1 result

  1. КАКВО Е pHostEnt ? Нека започнем с най-важното. Когато работите с някаква операционна система вие трябва много добре да я познавате. Много често съм се сблъсквал с напълно необосновани твърдения относно Windos. Най-често те се дават от лица, които не познават операционната система или я познават на ниво потребител. Това, което е важно да се знае за Windows е, че това е операционна система, която е създадена от инженери за инженерни нужди. Повечето "пробиви" в Windows (обективно погледнато са в пъти по-малко отколкото в други ОС, но това е тема за други разглеждания) се дължат най-вече на неправилно администриране и свободата, с която се ползва крайния потребител. Това, което обаче трябва да се признае като безспорно предимство е, че Windows е наличието на перфектна документация и изключителна поддръжка. Ако сте разработчик, вие ползвате почти всичко напълно безплатно. Това означава и включване в редица програми и подкрепа за всеки един, ако е решил да работи честно. След тези кратки разяснения се връщаме на въпроса: КАКВО Е pHostEnt? ВАЖНО: Всяка една програма, която пишем на практика осъществява комуникация с апаратната част и операционната система, която ползваме. Това взаимодействие се реализира на език, който е разбираем за процесора, системните контролери, интерфейсите BIOS, DOS и ОС. Програмата е общуване с машините (или комуникационните средства) на език, който те разбират. За да може това общуване да е пълноценно ние трябва да научим добре този език. Както всеки друг език и този се учи с практика. Tрябва да знаете, че това, което ще обсъдим днес има повече теоретична отколкото чисто практическа стойност. Проблемът е, че ако материята не бъде усвоена ние няма да можем да направим нищо. Все още не сме обсъждали какво е winsock и как се ползва. Нямаме представа защо е толкова важно да можем да работим със сокети и т.н.. Но се налага да започнем от някъде. Както се вижда от горния пост, нашата задача е да получим IP адреса на хоста по зададено име. КОГАТО АДРЕСЪТ Е СТАТИЧЕН, ТОВА НЕ Е ОТ КОЙ ЗНАЕ КАКВО ЗНАЧЕНИЕ. ЗА СЪЖАЛЕНИЕ МНОГО ОТ СЪРВЪРИТЕ ПОЛЗВАТ ДИНАМИЧНИ АДРЕСИ (НАЙ-ДОБРЕ ТОВА МОЖЕ ДА СЕ ВИДИ ПРИ АНАЛИЗ НА GOOGLE). В ТОЗИ СЛУЧАЙ Е ДОБРЕ ДА СЕ ИЗПОЛЗВАТ Winsock API ФУНКЦИИ ЗА ТЯХНОТО ПРАВИЛНО ОПРЕДЕЛЯНЕ. В Winsock API съществуват две функции: gethostbyname (в Delphi може да я изпишете и като GetHostByName) - връща IP адрес; Може да се ползва ето така: C++ struct hostent FAR *gethostbyname(const char FAR *name ); gethostbyaddr (в Delphi може да я изпишете и като GetHostByAddr) - връща ни името на машината (на хоста). Може да се ползва ето така: C++ DWORD ip_address = inet_addr ("192.168.1.1"); host_name = gethostbyaddr ((char* )&ip_address, 4, AF_INET); Както виждате отново се сблъскваме с pHostEnt. pHostEnt е структура на Windows, която има следният вид: C++ typedef struct hostent { char FAR *h_name; char FAR FAR **h_aliases; short h_addrtype; short h_length; char FAR FAR **h_addr_list; } HOSTENT, *PHOSTENT, FAR *LPHOSTENT; Искам да подчертая нещо важно. Прието е голяма част от документацията за Windows да е илюстрирана с кодове написани на C++ или C# (който е език с логиката на Delphi, но със синтаксис, обединяващ C и Basic). Това е следствие от първоначалното развитие на операционните системи (нарича се "атавизъм"). Езикът за програмиране C (моля да не се бърка със C++, защото има съществени различия) е създаден от Керниган и Ричи като поддържащ език за ОС UNIX. Тъй като е добил популярност (в Станфорд и не само там са ползвали студенти за системни администратори, защото са липсвали кадри) е нормално да се търси подход, който да се разбира от повечето специалисти. Езикът C++ е много близък като синтактична структура (обратен Полски запис и пр.) до C. Това го прави "четим". Ние ще следваме тази схема, но успоредно с това, че видим защо Delphi e по-ефективен при разработката на специализирани приложения. И така да разгледаме всеки един от елементите на структурата phostent. h_name - ТОВА Е ИМЕТО НА ХОСТА (МАШИНАТА, СЪРВЪРА) В МРЕЖАТА. И ако някъде срещнете термина Full Qualified Domain Name (FQDN) ще знаете за какво става дума. h_aliases - ТОВА Е МАСИВ, СЪДЪРЖАЩ СПИСЪКА С АЛТЕРНАТИВНИ ИМЕНА. Мисля, че всеки знае какво е алтернативно име на домейн. За тези които не знаят ще обясня простичко: mainsite.com e алтернативно име на mainsite.net или mysite.com. Темата с алтернативните имена е доста интересна и ще бъде дискутирана на един по-късен етап. ВАЖНО! h_aliases ВИНАГИ ЗАВЪРШВА НА 0. h_addrtype - ТОВА Е ВИДЪТ НА ВЪВЕДЕНИЯ АДРЕС. За TCP/IP това е AF_INET. Важно е да се знае защото освен TCP/IP имаме и други протоколи, които ще обсъдим на един по-късен етап. h_length - ДЪЛЖИНА НА ВЪВЕДЕНИЯ АДРЕС. За TCP/IP V4 тя е 4 Byte (max. 1111.1111.1111.1111 - 4 Byte, записа е в двоичен код за да се добие представа как изглежда) h_addr_list - МАСИВ С АДРЕСИ. ВАЖНО! Mасивът винаги завършва на 0. Това, което е от значение е, че това е масив със всички достъпни адреси, което може да бъде изключително полезно на един по-късен етап. Обърнете внимание, че тук разгледахме само една малка част от една конкретно взета функция. Помислете си, колко неща, на които рядко обръщаме внимание научихме. Повече информация по темата може да намерите на адрес: https://msdn.microsoft.com/en-us/library/windows/desktop/ms738552(v=vs.85).aspx
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.