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

Recommended Posts

КАКВО Е 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

 

Редактирано от Avatara

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

А сега малко извън настоящите разглеждания ...

Във форума почти няма да намерите материали за операционни системи, извън Linux и отчасти Android.

Нека позапълним тази празнина, защото неизбежно ще се наложи да разглеждаме и друга много популярна OS.

И така ...

Mac OS X

Mac OS X - това е Darwin ядро, събрано с PowerPC.


Реално операционната система е UNIX, но с графичен интерфейс. 

АРХИТЕКТУРА НА Mac OS X

[ AQUA ]

CLASSIC - CARBON - COCOA - JAVA

QUARTZ - OPENGL - QUICKTIME

[ DARWIN ]

 

Кое какво е?

 

AQUA - потребителски интерфейс; 
CLASSIC - емулация на Mac OS 9. Да не се бърка с AQUA. Различно е. 
CARBON - модифициран Mac OS API. С негова помощ може да създавате native Mac OS X приложения.
COCOA - modificiran NexT API (ползва Objective C). Служи за създаване на native Mac OS X приложения.
JAVA - Език за програмиране (да не се бърка с Java Script. Различно е).

QUARTZ - OPENGL - QUICKTIME - Векторна и растерна графика. Драйвери и не само. 

QUICKTIME - Мултимедия
OPENGL - Open Graphics Library - Платформено независим интерфейс. Векторна графика. Ползва се в Linux, но тук е направо част от операционната система. 
QUARTZ - Core Graphics framework - Алтернатива на DirectX.

Към Classic, Carbon и Cocoa трябва да добавим и X11.

Програми за Mac OS може да пишете на следните езици:

Delphi - от RAD Studio 2X нагоре.
C (Carbon).
Objective C (Cocoa) - Включено е в Delphi, като допълнителен unit. 
Java.

Може да ползвате освен RAD Studio и Apple Developers Tool и CodeWarrior. Въпрос на избор.
 

За сега толкова, а останалото, когато заговорим за мултиплатформените решения.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
On 4/4/2018 at 10:41 PM, Avatara said:

Това е тема в която ще пишем за това как се прави ... нещо конкретно.

Например "Kак да направим многопоточен ping" или "Как да направим собствен снифър".

Защо е нужно това?

Много често в практиката ни се налага да решаваме казуси, които изглеждат елементарни. Истината е, че често това е подвеждащо. Много често не може да намерим отговор в Google или в специализираните ресурси.

Това е тема за практиката, но практика, която ползва солидни теоретични познания.

Тук ще търсим отговори на въпроси, които не се задават в институтите и не се изучават в училищата. Тук ще се налага да обясняваме всичко, което пишем и най-вече да прилагаме примери, които да са работещи.

Всичко, което ще пишем в тази тема ще бъде подлагано на проверка.

Какво е добре да знаете от самото начало?

Преди всичко, колкото и да не се харесва на мнозина ще се наложи да се работи с Windows, като операционна система. Това важи дори (най-вече) в случаите, когато ще се налага да пишем изпълним код за Linux (за справка MSDN).

Какво налага това?

Преди всичко в момента има две развити системи за създаване на крайни приложения (не за писане на скриптове, а именно за крайни приложения), както следва:

- Visual Studio (Microsoft) - Език за програмиране C#, VB; Операционни системи: Windows, Android, iOS. 

- RAD Studio (Embarcadero) - Език за програмиране Delphi, C++, Assembler; Операционни системи: Windows, Android, iOS, Linux.

И в двата случая може да създавате крайни приложения, които да продавате в Windows Store, Google Play, cNet, Softpedia или в други масово достъпни ресурси.

И в двата случая може да създавате цялостни проекти, да генерирате dll, ActiveX или визуални компоненти, както и да добавяте скриптове на Java Script, VB Script, PHP, Python и др.. Също така можете да създавате и HTML документи и CSS.

В RAD Студио обаче мoже да ползвате FireDac и ЕМС и да работите със СУБД. Това включва генериране на конекции (conection), таблици, отчети, тригери и т.н.. Тук може да работите със всички структурирани бази данни в т.ч. Oracle, DB2, IB, SubBase, My SQL, Firebird, MS SQL и др.. Такава възможност липсва във Visual Studio. Друго предимство на RAD Studio е възможността за работа с неструктурирани бази данни и автоматичното генериране на базови REST сървъри. 

Друго предимство на RAD студио е интеграцията с Visual PHP и FireMonkey. Най-голямата сила на RAD студио си остава възможността да разработвате не само собствени контроли, но и собствени компоненти и не само.

Сега за езиците за програмиране ...

Кoгато ползвате Delphi ще може да работите с WideString, Ansi Sring, pChar, pAnsiChar, pWideChar, LongString и много други разновидности на символните низове. Това в C# и C++ не винаги е възможно да се направи. В Delphi можете да пишете директно на assembler. В C# и C++ това няма как да се случи. В Delphi  можете да работите с множества (това е много важно, когато говорим за сигурност в промишлените системи). В C# и C++ това може да правите само ако сами си напишете нужните библиотеки.  

Много често, когато се визира internet разглежданията се свеждат до потоци и пакетна обработка. Това не винаги отговаря на истината.

Никога не бива да забравяме, че internet е обвързана с модулация, което ни връща към ... модемите. А модемите това са телефоните.

Лично аз ще се придържам към следната схема в своите изложения:

- internet - Синхронни и асинхронни канали за връзка;

- мрежови комуникации - СКС и безпроводни (ефирни);

- операционна система краен потребител - Windows, Android.

- сървърна операционна система - Windows, Linux;

- средна на разработка - RAD Studio 10.2 (Tokio), Windows 10 Profesional;

- език за програмиране - Delphi, Assembler, C++ (в тази последователност);

- скриптови езици - Java Script, PHP;

- web-документи - HTML (HTML5), CSS (CSS3).

Всички примери (в т.ч. изходните кодове) ще бъдат достъпни.

Това, което обаче е нужно да знаете, че всеки един ще бъде надлежно регистриран в eCO ( https://www.copyright.gov/ )  към библиотеката на Конгреса на САЩ. 

Това означава, че кодовете ще са безплатни, но ... юридически са под защитата на EULA. 

Изпълнимите кодове са безплатни (това важи само за примерите тук).

Тук ще се пишат дълги постове (това го казвам от сега). материята е тежка (най-вече темата за POP3, SMTP, FTP, HTTP и др.)  и изисква сериозни обяснения.

Пак повтарям, че тук ще се пише неща, които няма да научите в нито един от скъпо платените курсове по програмиране и в нито един университет.

Mного от нещата няма да намерите в GitHub и в Google.

 

 

 

Доста добре подготвена тема,точно като за начинаещи които искат тепърва да навлязът в материята,описано е кои среди за разработка се използва,кои езици,и примери има което е добре.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Благодаря Ви.

 

Снощи се прибрах от двудневна научна конференция по въпросите на компютърната сигурност. Освен с два доклада в пленарната сесия ми се наложи да участвам и в работата на една от секциите.

От какво бях много приятно впечатлен (не само аз, но и моите колеги).

На първо място от практическата и теоретична подготовка на курсантите (и момичетата курсанти) от Факултет „Артилерия, противовъздушна отбрана и комуникационни и информационни системи“ - гр.Шумен. Държа да отбележа, че предстои някои от участниците да представят своите идеи на предстоящи форуми в чужбина.

За какво говоря. Преди всичко става дума за анализ на кибернетични атаки насочени към телекомуникационните системи в т.ч. и такива, които се базират на мрежова стеганография (интегриране на код в служебната част на информационните пакети). Тук не говорим само за софтуерни решения, но и за апаратни такива. Изследване на въпроси, касаещи широколентов пренос на данни, правни въпроси на киберсигурността, действащи международни актове и др..

Пак повтарям, че става дума за много сериозни знания. 

Искам специално да отбележа, участието на колеги от неправителствена организация, които са си поставили за цел да изстрелят малък (cube) спътник в ниска орбита (400 или 450 километра). Това е прекрасна идея на група млади хора, която вярвам, че ще се реализира успешно (все пак в рамките на една календарна година има само две възможни дати за подобен вид изстрелване).

Имаше и една доста весела случка. Колега от друг ВУЗ се опита да оспори една от дискутираните теми (касаеща пробиви в сигурността на Crome, Mozilla и Opera), с тезата: "Това е невъзможно.". Бе оборен от двама курсанти, които просто му показаха разделите от техническата документация на Google, която визира този тип уязвимост.

Една от темите, която обаче бе предмет на специално обсъждане бе темата за подготовката на граждански кадри.

Основният проблем е, че сред младите бе изкуствено наложена представата, че всичко може да бъде обяснено с няколко изречения и че в internet може да се намери всякакъв вид информация (мнозина не са чували за термина "информационен шум"). За съжаление това не е така.

Минималният срок за подготовка на кадри, които са в състояние да работят в реални условия е три години. Това е при условие, че вече са получили стабилна фундаментална подготовка. За огромно съжаление към момента такава липсва. Най-лошо е положението в средните училища. 

Въпросът е не в това, че са допуснати стратегически грешки. Въпросът е КАК ДА РАЗРЕШИМ ПРОБЛЕМЪТ.

Едно от решенията, което бе взето е  Факултет „Артилерия, противовъздушна отбрана и комуникационни и информационни системи“ - гр.Шумен. да стартира програма от дистанционни курсове, която да бъде достъпна за всеки желаеш. Предстои програмите да бъдат обсъдена на катедрен съвет и одобрени. Това ще бъдат курсове, касаещи въпросите на комуникациите, киберсигурността, практически решения в области като хетерегенни мрежи, разработка на специализирани приложения и др.. 

Предвижда се тези курсове да бъдат на степени. След като успешно сте преминали първата степен, преминавате към следващата. За всяка степен получавате съответния сертификат.

Предстои Република България да изгради съвременни структури за кибернетична защита. За тази цел обаче е нужно да разполагаме с подготвени кадри. Тези кадри ще трябва да решават реални проблеми, касаещи националната ни сигурност.  Това изисква много задълбочени познания в редица области като електроника, фотоника, телекомуникации, техническа и социална кибернетика, биология, неврофизиология и др.. Сами разбирате, че визирам една изключително сложна материя. 

Вероятно ще си зададете въпроса: Къде в момента се намира България като техническо развитие?

Ще бъда честен. България изостава чувствително от държавите в региона. Пред нас е Югославия, Турция, Албания, Румъния, Гърция. 

Основната причина е, че повечето млади хора следват "модерна" линия на образование, която е повече с комерсиална насоченост и не винаги води до генериране на трайни и задълбочени познания. 

Въпреки това от видяното през тези два дни аз оставам оптимист за бъдещото развитие. За съжаление в редица сфери ние ще трябва да започнем от нула, защото са пропуснати години. Вярвам, че това, което публикувам тук ще ви позволи поне за малко да се докоснете до нещо много по-голямо и мащабно. Ще се радвам ако добиете представа към въпросите пред които са изправени структурите, отговарящи за кибернетичната безопасност.  ще повече ще се радвам, ако на следващата конференция (или на други такива) срещна участници от този форум и те са лектори в някоя от работните секции. Ще ми бъде изключително приятно да обсъдим с тях всяка нова идея.

Искам само да спомена, че винаги има какво да научите. Дали човекът е преподавател с научни звания и дългогодишен опит, студент или докторант е без значение. Ако познава добре материята, я която работи и не се страхува да експериментира, винаги ще има какво да вземете от него. Има области на познанието за които дори и не подозираме. В редица сфери дефицита на кадри е огромен. Разберете, че нищо не може да замени практическият опит. 

 

Редактирано от Avatara

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Извинявам се, но се налага спешно да направя малко отклонение от темата.

Трябва тук да отговоря на въпрос, който предполагам вълнува и други.

 

КАКВО Е OBFUSCATOR

 Obfuscator, - програма, която в по-голяма и/или по-малка степен променя байт кода и/или изходния код на приложението.

 Декомпилация Java клас

 

В процеса на компилиране изходният код на Java-програмата се преобразува (трансформира в байт-код.

Обратният процес се нарича декомпилация.

Един от най-масово прилаганите декомпилатори на Java-класове е JAD.

Възпрепятстването на процеса на декомпилацията (reverse engineering) се извършва посредством програма obfuscator.

На практика става дума за шифровъчна програма и като такава би следвало базовата класификация да бъде извършвана въз основа на използваната шифровъчна технология.

Към момента са познати следните способи:

-          Базова обфускация;

-          Обфускация в хода на изпълнение на програмата;

-          Структурна обфускация.

При базовата обфускация шифратора променя структурата на програмата посредством преименуване на идентефикаторарите и/или премахване на debug информацията.

Промяната на идентефикаторите се използва както за изходния код, така и при Java байт-кода.

При промяна на Java байт-кода се извършва промяна на jar-файла (тук много трябва да внимават всички яростни подръжници на т.н. „отворен код”) или промяна на директорията, в която се съхраняват компилираните класове.

Изключването на debug информацията се извършва при използване на опцията g: none, така както е показано по-долу:

 

Javacg:none MyClass.java

 

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

При втория вид шифроване  (flow obfuscation) се променят конструкциите if и switch. Байт кода се променя така, че да бъдат избегнати всякакви аналогии с Java.

При изменение на структурните данни данных (structural obfuscators) се извършва промяна на принципите на наследяване. Често това се извършва като в йерархията се създават няколко промеждутъчни класа. Друг подход е разбиването на един клас на няколко части. Същото се използва и за масиви. За по-голяма сигурност се прибягва дори до кодиране символните константи.

Това е малка част опт защитните мерки прилагани от разработчиците.

Дори да декомпилирате даден код (в случая рагледахме Java, ащото той е най-лесен за декомпилиране), няма да получите нищо, което би ви помогнало за практическа употреба.

За да получите реален резултат ще се наложи да извършите „сух пробег” на резултатите, което по своята същност е сериозен анализ, извършван посредством лист и молив и изискващ висока квалификация.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Още едно малко отклонение, във връзка с въпрос , за който мнозина начинаещи (а и не само) не си дават сметка.

Мнозина вярват, че използваната операционна система (ако е правилно избрана) ще ги предпази. Това не просто е грешно. Това е меко казано абсурдно.

Ако някой наистина разбира от това, което прави, ще му е все тази каква ОС ползвате. Всички прихващания ще бъдат извършвани на много ниско ниво.

Вече знаем какво е OSI, но е много по-интересно как се контролира самият компютър.

Няма да повярвате, колко е елементарно. Достатъчно е да прочетете ... техническата документация.

Като начало няма да е зле да се научите да "прислушвате" централния процесор. Преди да го направите обаче ще ви се наложи да накарате процесора да каже всичко за себе си, а едва след това да изградите стратегия, която ще го принуди да ви докладва за всяко действие, което потребителя върши. И пак повтарям:

ТОВА НЯМА НИЩО ОБЩО С ОПЕРАЦИОННАТА СИСТЕМА, КОЯТО ПОЛЗВАТЕ!

Ако щете си сложете не знам какъв Linux, пак ще ви слухтят и няма как да се спасите.

Но, стига думи. Тук показваме как се правят нещата. И сега малко от "висшия пилотаж" на науката за проследяване.

 

КАК ДА НАКАРАМЕ ЦЕНТРАЛНИЯТ ПРОЦЕСОР ДА НИ ПРЕДОСТАВИ ДОСТОВЕРНА ИНФОРМАЦИЯ ЗА СЕБЕ СИ?

 

procedure GetCpuInfo;
var
   eax_value: LongWord;
   ebx_value: LongWord;
   ecx_value: LongWord;
   edx_value: LongWord;

   I: Integer;
   B: Byte;

   S1: String;
   S2: String;
   S3: string;

 begin

    // МАЛЪК КОД НА АСЕМБЛЕР, НО МИСЛЯ, ЧЕ ТРЯБВА ДА ЗНАЕТЕ КАКВО СА РЕГИСТРИТЕ И ЗА КАКВО СЛУЖАТ.

   // АКО НЕ ЗНАЕТЕ ТОВА, ПО ДОБРЕ, НЕ СЕ ЗАНИМАВАЙТЕ СЪС СЕРИОЗНИ АНАЛИЗИ.


    asm                      //  asm call to the CPUID inst. ( За тези, които не разбират написаното на български).
      mov eax, 0         //  sub. func call
      db $0F, $A2        //  db $0F, $A2 = CPUID instruction
      mov ebx_value, ebx
      mov ecx_value, ecx
      mov edx_value, edx
    end;

    for I:= 0 to 3 do   //  Extract vendor ID ...
      begin
        B := lo(ebx_value);
        s1:= S1 + chr(B);
        B := lo(ecx_value);
        S2:= S2 + chr(B);
        B := lo(edx_value);
        S3:= S3 + chr(B);

        ebx_value:= ebx_value shr 8;
        ecx_value:= ecx_value shr 8;
        edx_value:= edx_value shr 8;

      end;

    CpuVendorNo:= S1 + S3 + S2 + ' - ' + IntToStr(B);

   // СЛЕДВАЩАТА ПОРЦИЯ ПОЛЕЗНА ИНФОРМАЦИЯ.

    asm
      mov eax, 1
      db $0F, $A2
      mov eax_value, eax
      mov ebx_value, ebx
      mov ecx_value, ecx
      mov edx_value, edx
    end;

    // НАУЧЕТЕ СЕ ДА МИСЛИТЕ ТАКА, КАКТО МИСЛИ МАШИНАТА. ДВОИЧНИЯТ КОД НИ КАЗВА МНОГО.

    //  06B1
    //  |0000| |0000 0000| |0000| |00| |00| |0110| |1011| |0001|

    B:= lo(eax_value) and 15;  // Stepping ID
    CpuSteppingID:= IntToStr(B);

    B:= lo(eax_value) shr 4;
    CpuModelNumber:= IntToHex(B, 1);

    B:= hi(eax_value) and 15;
    CpuFamilyCode:= IntToStr(B);

    B:= hi(eax_value) shr 4;
    CpuProcessorType:= IntToStr(B);

 

    // 31.   28. 27.   24. 23.   20. 19.   16.
    //  0 0 0 0   0 0 0 0   0 0 0 0   0 0 0 0

    B:= lo((eax_value shr 16)) and 15;
    CpuExtendedModel:= IntToStr(B);

    B:= lo((eax_value shr 20));
    CpuExtendedFamily:= IntToStr(B);

    B:= lo(ebx_value);
    CpuBrandID:= IntToStr(B);

    B:= hi(ebx_value);
    CpuChunks:= IntToStr(B);

    B:= lo(ebx_value shr 16);
    CpuCount:= IntToStr(B);

    B:= hi(ebx_value shr 16);
    CpuApicID:= IntToStr(B);

 end;
 

Това е малка част от това, което може да извлечем от централния процесор. На практика може да го накараме да ни информира за всичко, което става на машината и той ще го направи. Съвсем друг е въпросът как тази информация да достигне до нас, ако сме на 1000 км (примерно) от наблюдавания обект.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Това ще бъде последното "отклонение" от основната тема, но считам, че то е важно с оглед на примерите които давам и не само.

Дълго време не можех да разбера от къде е тази фанатична привързаност към Linux, Java Script и пр.. Не можех да проумея как нормални хора не правят разлика между web-документ и web-базирано приложение. Не ми беше ясно как така не се познават елементарни неща, касаещи комуникационните процеси и пр..

Във същото време обаче масово се използва понятието "хакер", "хакерски атаки" и "хибридна война" без да се разбира смисъла на тези термини.

Ще започна отзад напред.

Терминът "хибридна война няма нищо общо с компютрите. Терминът е въведен в употреба от военният експерт Франк Г. Хофман (Hoffman F.G.). Повече по въпроса ще прочетете в неговите произведения Conflict in the 21st century: the rice of hibrid war и Hibrid vs. Compound War: The Janus Choice of MOdern War.

Ако отделите време и прочетете тези две произведения не само ще научите нещо, но и няма как да не разберете, че на практика сте принудени да следвате определен модел на поведение (и познание).  

В този модел присъства и думата "хакер" заобиколена от ореола на кибер-пънк културата и градския фолклор. И двете както знаем са далеч от реалността, но това в случая е без значение.

Както знаем един от сериозните проблеми на съвремието е въпроса с кибернетичната сигурност. Лично аз и до сега не разбирам какво точно има кибернетиката (наука за управление на процеси, създадена от самият Аристотел, който е бил учител на Александър Македонски), с интернет измамите и цифровата престъпност. 

Сега обаче ви предлагам да погледнем въпроса под един различен ъгъл.

Голяма част от хората тук са системни администратори и зайклети привърженици на Linux във всичките му форми. Някои от ппо-старото поколени си спомнят за Novell, но младите едва ли са и чували за тази компания. Това е много интересна компания, повярвайте. Ако я нямаше Novell едва ли някой щеше да е чувал за SuSe Линуь, но нека бъдем последователни.

Novell бе изградена посредством поглъщане на Micro Focus. Не сте чували за тази компания? Жалко. Това са основните идеолози на отворения код и не само.

През 2014 година британците от Micro Focus International plc заплатиха на Attachmate Group скромната сума от 1,2 милиарда USD (а вие си вярвайте в безплатните неща) и придобиха всички базови активи на Novell в т.ч. и  ... Linux.

Знам, че ще се чуят куп възражения, че това не е така и пр. и колко е хубаво да има отворен код и "безплатен" софтуер и колко са лоши онези от Microsoft, но ... фактите говорят за нещо съвсем различно. Каквото и да си говорим Microsoft от години тихо и мирно се договаря с тези, които реално контролират развитието на Linux (не е зле да прочетете един от най-яростните критици на това тясно сътрудничество http://techrights.org/home/ ). 

Но все пак защо се прави всичко това?

Елементарно. За много пари. За много пари, които компанията извлича от системно манипулирани индивиди. Както казваше един мой познат: Когато финансовите документи говорят, дори железните глави би следвало да замълчат ( https://investors.microfocus.com/media/1437/annual-report-2017-v1.pdf ).

Все пак в мен остават някакви неясни съмнения ...

Има нещо, което ми убягва.

Познавайки структурата на Linux Foundation ( https://www.linuxfoundation.org/ ), Mozilla Foundation ( https://www.mozilla.org/bg/ ) и др. знаех, че няма как да става дума просто за пари.

Прекалено елементарно и някак не се вписваше в случващото се. Парите и властта имат различна логика, независимо кой какво твърди.

Уместно възниква въпросът: Все пак какво поражда тази фанатична привързаност към една операционна система, която граничи с друг вид фанатизъм, който се преследва (разбираемо) от закона? Какво поражда буря от емоции по форуми, блогове и др., когато някой колега (който наистина разбира за какво става дума) си позволи да зададе елементарен въпрос?

Повярвайте наистина за мен това бе загадка. Всичко бе лишено от логика, а мащабите на тази истерия бяха плашещи, но ... по необясними причини засягаха само определени географски ширини.

Наложи се да се върна назад във времето в далечната 1992 година, когато бе дадено началото на най-големият сблъсък във виртуалното пространство. Всичко започва с Директива TS.3600.1 на МО на САЩ. Съмнявам се, че едва ли някой от пишещите (и четящи) в този форум е чувал за този документ. 

Едва ли имате и най-малка представа, че много от нещата, които правите и с които се занимавате са подчинени на основната логика на този прекрасен документ. За първи път в него се въвежда понятието "информационна война", като самостоятелна категория. 

Вероятно някой ще ми възрази с познатата фраза: Да, ама мен лично какво ме касае това?

Повярвайте касае ви и още как. При това ви касае лично. Много по-лично отколкото предполагате.

 За какво става дума?

На 30 януари 1999 година е приета Директива PDD-68. Това е изключително интересен документ. Според него се създава структура IPI, чиято задача е, цитирам: " ... да оказва влияние на емоциите, мотивите и поведението, на чужди правителства, организации и отделни граждани при използване на специализирани разузнавателни структури.".

Не знам дали ви направи впечатление терминът "емоциите". Въздействие над емоциите. Това е гениално. 

Спомняте ли си "Матрицата"? А сега се замислете, какво би се случило, ако главният герой бе избрал синьото хапче? 

Внимавайте много добре. Може да ви прозвучи ужасно абсурдно, но червеният цвят (официалният цвят на Novell - "добрите") подсъзнателно се асоциира с ... Linux (не, не са "глупости" а обследване на много сериозен научен институт). Синият цвят е ... Microsoft (а както знаем те трябва да са "лошите").

В този ред на мисли не е зле да направите справка кои са основните инвеститори в "Матрицата". Това е много забавно.

Но нека продължим.

Едва ли мнозина имат и най малка представа какво правят организации като DISA, JIOK, IOTK, JTF - CND и др..

Чували ли сте за тях? 

Само ще ви помоля да не бъркате DISA (управление на информационните системи към МО на САЩ)  с  Direct Inward System Access или Dial-In System Access (DISA), макар може да се каже, че има някакви допирни точки. 

През 1996 година влиза в сила Устав СВ FM. 100-6. Не би било зле да се запознаете с този документ. Само не си мислете, че касае стрелковата подготовка. На практика това е ръководство за провеждане на информационно-психологически мероприятия.

Но да се върнем към основната теза.

Към момента много от излаганите твърдения са подчинени по-скоро на емоционални, отколкото на логически съждения. Този процес е контролиран и неговата цел е да ви направи неефективни (а не каза "невежи", защото звучи много обидно). Емоциите не са факти. Кратките постове и използването на съкращения и сленг не е излагане и защита на теза. Твърдението "В internet всичко има." е не само погрешно, но и вредно.

Дълбоко се съмнявам, че сте прочели този материал внимателно и задълбочено, но преди да ме ругаете се опитайте да направите по-сериозна справка за "учрежденията" които съм визирал. Мога да изброя още куп документи и много бих се радвал ако намерите поне 10% от тях в internet, но се страхувам, че това би имало доста сериозни последствия, а аз искам да гледам серияли и да се грижа за котката.

 

 

 

 

 

Редактирано от Avatara

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Ако ми позволите един интересен материал от една доста симпатична колежка.

Мисля, че може да ви бъде от полза. Темата е:

 

КАК ДА ИЗГРАДИМ СОБСТВЕНА МАРКА В СФЕРАТА НА КИБЕРНЕТИЧНАТА СИГУРНОСТ?

https://www.youtube.com/watch?v=N998Rk1_xbM

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

И ако ми позволите една малка забележка специално за Кестена, който много обича определен вид термини.☺️

Exploit - По дефиниция това е компютърна програма и/или програмен код, чиято цел е да реализира атака над изчислителният ресурс, като използва уязвимост в програмното обезпечение.

Patch - Допълнение към съществуващ програмен код с цел подобряване функционалността или ефективността на това, което изпълнява. На практика това е автоматизирана корекция в съществуващ файл. Ако става дума за легален софтуер е редно да се използва термина "обновяване" или UPDATE

 

В internet не всички програми са нови версии на съществуващи решения. За пореден път повтарям: Не бъркайте скриптовете с код, който е компилиран. Има огромна разлика.

Компилираните кодове и инсталационни пакети изискват строго регламентирани процедури за идентификация.

При скриптовете това просто го няма и всеки може да добавя каквото му харесва защото кодовете са достъпни.

 

Пример:

В една от темите тук бяха подложени на дискусия предимствата на конкретен snifer (анализатор на пакети). 

Забавното е да се види на официалния сайт на това "чудо" колко програмисти са работили и работят по създаването му. Аз лично не можах да повярвам. ☺️

В същото време много по мощен snifer е даден като пример от Felix Colibry, в неговия блог. Да не споменавам за мега елитарните решения на Gaich, които са наистина блестящи. За разлика от тълпата програмисти тези двамата дават не просто крайно решение, но и го придружават с много детайлни описания на това кое как работи и защо се прави точно така. Така е и при Canty и Dobs. 

За разлика от групата програмисти, Canty, Felix, Gaich, Dobs гарантират за това, което са направили и носят персонална отговорност за това, което прави.

Това е много съществена разлика, която може да бъде разбрана само и единствено, ако ви се наложи да продавате софтуер на свободния пазар.

 

Истинската информация е тази, която може да бъде потвърдена. за да бъде потвърдена има изисквания, които трябва да бъдат спазени. Това е важно.

Когато казваме нещо или твърдим, че нещо е така понякога се налага да се аргументираме. 

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

ОТГОВОР НА ВЪПРОСА НА KESTENA

 

Разгледай внимателно тази ... картинка. Обърни внимание на заграденото в червено. Мисля, че и на слепите ще им стане ясно какво може да прави и за какво може да се използва. От това по-добра илюстрация не мога да дам.

За да не предизвикам скандал и да си навлека омразата на тези, които все още вярват, че между Microsoft и Linux няма нищо общо ще премълча какво означава 215 UNIX Type: L8 и каква е операционната система на сървъра.

Все пак обърни внимание колко послушно сървърът си е казал за port 56681 и за директорията /mysql ... 😉

 

ANALYZE_001.png.2a5b8b74547226a87987583896adc112.png

 

Забележка: Така приложеното изображение е с образователна цел и е публикуването му е съгласувано със собствениците на web-ресурса.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

И понеже бях обещал на един колега тук, ето един съвсем мъничък модул, който позволява геолокация на IP адрес, както и сканиране на списък с адреси.

Pic_001.png.4f3eedbd6568c69bda7cf526ddcdd8dc.png

Ще се радвам ако и на някой друг му върши работа. При желание лесно може да се преработи в сървърна версия. За сега е ограничено само за Windows. Изискванията са:

    - Windows® NT X/2000, XP, Vista, Win7, Win8, Win10 System
    - 512 MB RAM Memory
    - 24 Bit High Color recommended 
    - Modem/ISDN or ADSL Adapter
    - 20 MB Hard Disk Space
    - TCP/IP Protocol

Инсталационният пакет може да се изтегли от тук:

bsping-be.exe

 

Ако някой проявява интерес има и версия, която поддържа сканиране на интервали, бързо сканиране на портове, traceroot и др..

Един от колегите тук предложи да се направи и версия за Android, което считам за много разумно предложение. 

И пак повтарям, това е абсолютно безплатно. Правено е за конкретен човек, с конкретна молба.  😉

Лицензионният договор е в пакета. Можете да си правите колкото си искате инсталации. Няма ограничения.

Ако някой има нужда от нещо, което не нарушава закона, разумно е и върши работа, винаги може да разчита на помощта ми.

 

P.S. Разликата между конзолните приложения и това тук е не само в сокетите. Има куп аналитични функции (в тази версия не са включени, но ги има), които са наистина интересни. Корелационен анализ, статистическа обработка, data mining и пр.. Там определено има за какво да говорим.

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Ако ми позволите ще публикувам резултатът от тестване на BS Ping в Softpedia. Правя това, защото все пак допускам, че е възможно някой да има притеснения.

Softpedia.png.f5cf9535934cb74262c5e5cfa524da85.png

 

Може да си го изтеглите и от cNet, където също е проверен.

 

https://download.cnet.com/BS-Ping-BE/3000-2085_4-77824457.html

 

Ще се радвам ако споделите какви функции бихте желали да бъдат активирани за ползване.  Благодарен съм и за всякакви забележки. Все пак не забравяйте, че това е продукт, чието основно предназначение е подпомагане на учебния процес.

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Доста си се потрудил, много добра и полезна информация, благодаря!  😊

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Много благодаря, но откровено признавам, че зад това стои труда на колеги от Русия, Китай, Япония, Австралия, Франция, Израел, САЩ, Бразилия, Швеция (специални благодарности на колегите ми там), Югославия (Гаич е велик), Холандия, Турция, Румъния (признавам, че колежката ни там е ослепително създание, невероятно красива), Испания, Нова Зеландия, Малайзия, Индонезия, Филипинете и др. държави. 

Дължим ужасно много на Едуард II. Признавам, че йезуитите винаги са ме изумявали с тяхното отношение към науката и технологиите.

Това, което виждате тук няма и 1% от това, което може да се извади. Визирам системи, които са прости, но изключително ефективни за които много служби биха могли само да мечтаят. 

Но ...

Не мога да се преборя с това, което се прави от МОН и "академичната" общност (за това напуснах тези среди) ... 😉

Сами ми кажете как да обясня на хората, че освен битове има и натове, че освен двоична може да се ползва и троична бройна система (все пак тригерите имат три състояния: единица, нула и състояние на неопределеност, което е междинно). 

Как да обясня, че цифровата схемотехника не е панацея и че има огромни недостатъци, за които се мълчи и пр. и пр. и пр..

Та това са базови истини.

Как градим нещо ако нямаме здрави основи?

Сега просто се опитвам леко да открехна вратата и да покажа ПОЗНАТИ до болка неща, но под един различен ъгъл. Не знам какво ще се получи, но ще опитам. 

А ако все пак има интерес ще преминем към много по-интересни теми ... 😉

 

 

LOGO_001.png.fe8dd074e6736ed93b07740f3d896974.png

Alteri vivas oportet si vis tibi vivere. 

 

 

Alteri vivas oportet si vis tibi vivere - Трябва да живееш за другите за да живееш за себе си.

Редактирано от Avatara

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

ИЗВЪН КОНТЕКСТА ...

Както знаете от 25 май тази година е в сила една директива, която лично аз бих квалифицирал като "твърде спорна".

Та съгласно този документ някой би следвало да защитава "личните данни потребителите" (да се чете "това, което чайниците са споделили за себе си") от някакви хипотетични много, ама много лоши "хакери" (и не само), които виждате ли злоупотребявали с тях.

Извинявайте, но ако следваме подобна логика, граничеща с абсурда е най-добре да премахнем internet (за да не се мъчим).

Не знам дали "пишман законодателите" някога са чували за един протокол, чието име е Finger. Дълбоко се съмнявам, че много от "експертите" разработвали тази концепция имат и най-малка представа за какво служи този протокол, как функционира и каква е връзката му със социалните мрежи.

Ако беше само Finger как да е. Все някак щяхме да го преживеем. Проблемът обаче е, че непрекъснато се забравя нещо много важно:

ВСИЧКИ ТЕХНОЛОГИИ, СВЪРЗАНИ С INTERNET СА РАЗРАБОТВАНИ В УНИВЕРСИТЕТИ С ВСИЧКИ ПРОИЗТИЧАЩИ ОТ ТОВА ПОСЛЕДСТВИЯ!

Разбирате ли ме за какво говоря?

Едва ли.

Какви са основните приоритети на студента (не само на българския)?

1. Да се напие (ако може безплатно).

2. Да оправи колежката (ако може и приятелката й).

3. Да повтори това няколко пъти (без това да има някакви сериозни последици).

В тези три основни приоритета, някъде да видяхте думата "сигурност"?

Сега да помислим за образа на средностатистическата потребителка на Facebok.

Каката. Тя е около 30 годишна. Семейна или разведена. Има поне едно дете. Сравнително материално осигурена. Работи в офис. Сексуално и емоционално незадоволена. Скучаеща. Изпитваща остра нужда от внимание. Готова да покаже каквото е редно и каквото не е само и само за да бъде забелязана. Задължително е да е умна и най-вече красива. Всички трябва да го оценят. Много обича да се тагва и да споделя. Обожава междуметията и винаги мрази чалгата (което обаче не и пречи след третата водка да мята яростни гибеци). 

Това е.

Има и друга група, които могат да се квалифицират като "малките припадки", които всячески се стремят да подражават на големите каки, но са много по-алчни и глупави (не, че другите не са).

Третата категория е мъжка и повярвайте там е страшно. Де що е сган от специализираните форуми за запознанства, чиито речник се свежда до "Здр. Кво прайш. Мноо си готина. Добави ме за приятел.", е намерила втори роден дом в социалните мрежи.

От тук следва уместният въпрос:

КАК ВЪЗ ОСНОВА НА ТОВА ПОЗНАНИЕ СЕ ПРАВИ "СОЦИАЛЕН ИНЖЕНЕРИНГ"?

Елементарният отговор е: При толкова много дебили, които не знаят какво искат и защо, защо да се занимаваме с подобен вид дейност?

За какво са ми личните данни на подобни недоразумения? Това е като да се ровя във фекалийната канализация, просто заради спорта. Извинявайте, но някак не изпитвам влечние.

И кого от кого да пазим? Да пазим възрастни хора с инфантилно поведение от тях самите? Моля ви. Това е несериозно.

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

ДА ПОГОВОРИМ ПРОСТО ЗА СЛОЖНИТЕ НЕЩА

(специално за kestena, който не спира да задава въпроси)

Преди да се борим с нещо, ние трябва да знаем с какво се борим и да имаме ясно дефинирана цел.

Да се опитаме да систематизираме видовете мрежови атаки, които би следвало да предотвратяваме.

Не, Не съм сбъркал. Точната дума е да не допускаме да се случат, а не да коригираме последствията от една успешна атака.

Сун Дзъ ясно е казал, че е нужно да познаваме противника и да се научим да мислим като него.

 

АНАЛИЗ НА КИБЕРНЕТИЧНАТА СИГУРНОСТ

За осъществяване на мрежова комуникация в нееднородна среда се използва набор от протоколи, чиято задача е да обезпечат съвместимостта между различни компютърни и операционни системи. С масовото навлизане на Internet все по-очевидни стават слабите страни на подобен подход. Най-често обект на кибератаки са разпределените системи за обработка на данни. Основна причина за това е използването на открити канали за пренос на информация. Това позволява не само провеждане на пасивно проследяване на конфиденциална информация, но също така и нейното манипулиране с цел организиране на активни дезинформационни мероприятия.

Колкото по-сложна е една система, толкова по уязвима е тя на слаби външни и вътрешни въздействия. Съвременните информационни системи се характеризират с изключително висока функционална сложност. За разлика от тях, използваните за провеждане на кибернетични атаки средства се отличават с простота и висока ефективност. 

Идеята, че системите с отворен код са в състояние да решат този проблем доведе до създаване на редица принципно нови направления в разработката на средства за получаване на несанкциониран достъп като пакетната и текстова стеганография, атака над фрагментацията на данни, използването на когнитивно-психологични прийоми и др..

Отчитайки това бе направена класификация на основните видове атаки, които би следвало да бъдат предотвратени.

Атаките бяха класифицирани в шест основни групи както следва:

 

I. По характер на въздействие

•    Пасивни атаки – Изключително трудни за откриване, но нарушаващи сериозно общата политика на безопасност;
•    Активно въздействие – Сравнително лесни за откриване, но в състояние да нанесат сериозни материални и инфраструктурни щети.

 

II. По цел на упражняваното въздействие

•    Отказ от обслужване - Нарушаване на нормалното функциониране на системите (нарушаване на достъпа);
•    Нарушаване целостта на информационните ресурси – Това вклюва умишлена частична или пълна подмяна на  информационен ресурс;
•    Нарушаване на конфеденцианалноста на използваната информация – Получаване на достъп до информацията без значение от характера на въздействие.

 

III. Според наличие на обратна връзка

•    Атаки с обратна връзка – При които се осъществява обратна връзка с атакувания обект. При този вид атака нападателят реагира на всяка една промяна в атакуващият обект;
•    Еднопосочни атаки – При които към обекта на атака се изпращат единични заявки. Типичен пример за подобен вид атаки са DoS-атаките.

 

IV. В зависимост от условията, при които се провежда атаката

•    Атака в резултат на завка от атакувания обект – Атаката се осъществява в резултат на подадена заявка от страна на атакувания обект. Такъв тип атаки се базират на DNS, ARP и SAP - заявки;
•    Атака в резултат на настъпило събитие -  Атакуващият извършва постоянен контрол над обекта на атака. Началото на атаката е инициирано от събитие, възникнало в резултат на действие предприето от атакувания обект;
•    Безусловна атака - Това са атаки насочени към използваната операционна система и целящи нарушаване на нейната функционалност.

 

V. Според разположението

•    Междусегментна атака – Източникът на атаката, без значение дали е физическо лице, апаратно средство или програма, се намират в различни сегменти на междумрежова свързаност. В този случай говорим за външен източник на атака;
•    Вътрешносегмента атака – При нея обектът и субектът на атаката се намират в един сегмент от мрежата. Те могат дори да ползват едно апаратно средство (работна станция, сървър или мобилно устройство).


VI . Според нивото в еталонният модел ISO/OSI

•    Атаки на ниво физически слой;
•    Атака на ниво канален слой;
•    Атака на ниво мрежови слой;
•    Атака на ниво транспортен протокол;
•    Атака на ниво управление на сеансите;
•    Атака на представителния слой;
•    Атака на приложно ниво.
 

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

ЗА ЗАПЛАЩАНЕТО НА ПРОГРАМИСТИТЕ, ПРОГРАМНИТЕ ЕЗИЦИ И ОЩЕ НЕЩО ...

Хайде сега да погледнем на темата под един друг ъгъл.

Това, което виждате по-горе е направено за около три часа от един човек.

На практика за четири часа сме получили готово приложение (е вярно, че е версия 1.0.0.0, но работи и прави всичко, което се изисква от него).

Приложението има приличен интерфейс, надеждно е и най-вече ... РАБОТИ ВЯРНО:)

Да добавя още 72 часа за оформяне на HElP файловете, EULA i Readme, инсталационните пакети, PAD файловете, разпространението на продукта и други съпътстващи операции.

Дори няма да ползвам помощта на други хора. 

Хайде сега да помислим какво би се случило ако това нещо го правехме на Python, Java, C++ или друг език?

Дали щяхме да се справим за четири часа?

Колко човека ще трябва да го правят (трябва да добавяме дизайнери, тестъри, проджект мениджъри и пр.).

Да кажем , че след месец (22 работни дни) може би щяхме да имаме завършено приложение, готово за масови продажби (или безплатно раздаване, според идеята на маркетолозите).

Искам да подчертая, че сами се убеждавате, че това, което правя се чете лесно и е МНОГО ДОБРЕ ДОКУМЕНТИРАНО.

Да кажем, че бях на заплата като CSA към някоя БЪЛГАРСКА фирма (за което ми плащаха минимума от 5 000 BGL, за заеманата длъжност). Да добавим разходите за осигуровки, за офиси, за материали, текущи разходи (ел.енергия, вода и пр.). Да добавим към това и заплатите на другите в екипа.

Мдаааа ...

Сега да разгледаме ситуацията от друг ъгъл.

Аз съм на свободна практика и ми възлагат да направя пакетен sniffer.

ДА, НО МИ СЕ ЗАПЛАЩА НА ЧАС. :$

Представяте ли си колко ще получа за добре свършената работа?

ЕДНО ГОЛЯМО ... НИЩО! :D

Е, как мислите дали пак ще им работя? 

Че и за капак на всичко ще поискат да имат пълен контрол над работната станция, на която работя. И да не забравяме, че ползвам лични лицензи (за Windows, за RAD Studio, за Real Draw Pro и пр.). Лицензи, за които съм заплатил от собствения си джоб. И да не забравяме за техниката, за която също съм си платил.

ЗАПОЧВАТЕ ЛИ ДА РАЗБИРАТЕ ЗА КАКВО ГОВОРЯ?

IT сферата, в този й вид, е тотално прецакана, при това двустранно. :$

И знаете ли защо е така?

Липса на елементарни познания. Следване на морално остарели модели и клиширано поведение.

Да. Много неща се случват и много неща се правят. Много неща са успешни, но каква е цената за това? 

Робски труд, много нерви, огромни разходи и ... викове, кавги, обиди, интриги, загуба на време, ресурси и познания.

Ако има успех, той се дължи на щастливо стечение на обстоятелства, а не на планирана програма.

Така не става.

Така е трудно и неблагодарно. Така всички ние сме потърпевши. Така трудно ще създадем БЪЛГАРСКА световноизвестна марка (а защо не няколко),

Ако имате време помислете над думите ми. Ще се радвам ако ме оборите.

 

P.S. Извинявам се но темата е особено болезнена за мен. Вижте какви глупости се публикуват в jobs.bg и на други места. Вижте как масово се ползва английски език (да не коментирам термините, че там е страшно), като че ли сме нечия колония. На практика липсват обяви за работа в IT сферата на български език. Вижте изискванията и добре помислете. Не може да се иска да получиш завършен специалист наготово. Специалистите се създават. Създават се с постоянство, търпение и внимание. Създавт се с ясна цел и визия за развитие. Всичко друго е просто информационен шум. 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Искам да внеса малко пояснение, по темата "Как се прави пакетен снифър".

Това, което показвам НЯМА НИЩО ОБЩО С Wireshark. Ако някой не вярва nе е проблем да публикувам кодовете, върху които е изграден Wiresnake и сами ще се убедите, колко е голяма разликата.

Общото е, че и в двата случая се анализира трафик (съдържание на входящи и изходящи пакети), но начина по който това се прави е ... просто различен.

Е, понякога има и разлики в крайния резултат (там където има пакетна стеганография), но ... по тази тема по-късно.

Визирам изпълнението на "ниско ниво" (макар лично аз да си работя от високо). За да го разберете е нужно да сте детайлно запознати с различните видове сокети.

Ако ми позволите ще цитирам думите на великият Марку Канту, които е написал на стр.34 с много големи букви в книгата си  "Indy в дълбочина" (Indy in Depth).

ЗАБРАВЕТЕ ЗА ВСИЧКО, КОЕТО ЗНАЕТЕ.

Pic_002.png.03484d6699cad9cda10851e857ebfb20.png

 

Написал го е точно така. С много големи букви. И повярвайте има защо.

Това, което обяснявам е различно от всички, което масово се преподава и което ще научите в сертификационните курсове. Някъде ще намерите отделни парченца или фрагменти код и толкова. Просто е много различно. Принципите, върху които са базира са различни.

Никога не забравяйте, че 

INTERNET Е ВОЕННА ТЕХНОЛОГИЯ, ЧИЯТО ЗАДАЧА Е ДА СЪХРАНИ ВЪЗМОЖНОСТТА ЗА КОМУНИКАЦИЯ В СЛУЧАЙ НА ЯДРЕНА ВОЙНА.

Ако някой ден го забравите направете следния експеримент. Бързо извадете и включете мрежовия кабел, който ви свързва с вашия провайдер. След това помислете върху това, което се случва с компютъра ви, но мислете много внимателно. Това е тема, на която ще бъде отделено много специално внимание.

 

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

КАК ДА НАПРАВИМ НАЙ-ГОЛЯМАТА ДИВОТИЯ В ЖИВОТА СИ?

 

Много често съм се опитвал да обясня, защо програмирането на C++ (C#, Python, Ruby и пр.) не е нещо, с което трябва да се започне.

Не знам кой е казал, че така ще се научи нещо. Повярвайте ще се научите да допускате грандиозни грешки. Фундаментални. 

Може би не ви се вярва? Добре, нека разгледаме един елементарен пример:

 

ЗАДАЧА:

Кажете какво е сбъркано в следния код:

char ar[N];
for (unsigned int i = N-1; i >= 0; --i){
      ar = i; 
}

Повярвайте. Лично аз не бях виждал по-голяма дивотия. За съжаление обаче подобни дивотии се преподават на студентите, от които се очаква да бъдат бъдещи програмисти.

И така ... КАКВО СБЪРКАНО ИМА В КОДА И ДО КАКВО ЩЕ ДОВЕДЕ ТАЗИ ГРЕШКА?

Пак повтарям, че става дума за фундаментална грешка, която граничи с безумие.

Като се замисля въпросът има много общо с друг въпрос, който зададох в чата. :D

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Здравейте, 

Аз не съм използвал С++ в практиката  си и ще нахвърлям само някои идеи от пръв поглед.

Ако приемем, че в С++ подобно деклариране на масив   char ar[N] ;  се приема, то написаното наподобява код за обхождане на масив. В този случай грешката е при

 ar = i;  и би трябвало да бъде  ar= ..... нещо се случва за този елемент.

Другата ми идея (нямам възможност да я проверя в момента) е, че така написано декларирането на масива никъде не ограничава стойността на N.

При опит за изваждане на единица от нула и резултата да се запише в променлива от тип insigned int, там може да се запише  максималното число зависимост от това колко битов е insigned int за конкретната машина.  В случая на обхождане с този  for цикъл и стойност на i, която не отговаря на дължината масив, ще се стигне  до достъп до части от паметта извън масива.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Абсолютно правилно. 

Unsigned означава цяло число без знак. Достигайки до 0, на практика машината (за разлика от човека) ще отчете следващата стойност като 1 (положителна единица) и ще върти цикъл до безкрайност.

Между впрочем този код често се използва при създаване на зловреден код. На практика, антивирусната програма няма да реагира, защото от гледна точка на анализа на синтаксиса, всичко е коректно.

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Здравейте! Искам да попитам възможна ли е по някакъв начин геолокация по IP адрес ако не точна, поне приблизителна? Пробвах с модула препоръчан от господин Avatar, но нищо не стана. Може би аз не съм направил нещо като хората.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Quote

Здравейте! Искам да попитам възможна ли е по някакъв начин геолокация по IP адрес ако не точна, поне приблизителна? Пробвах с модула препоръчан от господин Avatar, но нищо не стана. Може би аз не съм направил нещо като хората.

TLDR: Не

 

Редактирано от Cvetomirg

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

И още един може би лаишки въпрос. Да речем, че съм абонат на А1 и ползвам техен мобилен интернет. В деня Х IP-то ми е било примерно 78.83.18.135. Възможно ли след няколко дена или още дори в същия ден други абонати на мобилния интернет на А1 да бъдат със същото това IP?

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 3 часа, kankardam написа:

И още един може би лаишки въпрос. Да речем, че съм абонат на А1 и ползвам техен мобилен интернет. В деня Х IP-то ми е било примерно 78.83.18.135. Възможно ли след няколко дена или още дори в същия ден други абонати на мобилния интернет на А1 да бъдат със същото това IP?

Ако съм разбрал правилно въпросът ти,  ще отговоря. Да, възможно е един ип адрес ползван от теб след това да го ползва друг абонат. Сега някои може би ще кажат "всеки ип адрес е уникален" така е но може да го ползват различни абонати в някои случаи. Но при твоят случай или въпрос говорим за динамичен ип адрес, твоят ип адрес се сменя но го ползва някои друг.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Отговорете в темата...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Потребители разглеждащи страницата   0 потребители

    No registered users viewing this page.

×
×
  • Създай нов...

Important Information

За да посещавате този уебсайт е необходимо да се съгласите с 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.