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

Avatara

Moderators
  • Content Count

    348
  • Joined

  • Last visited

  • Days Won

    58

Avatara last won the day on May 26

Avatara had the most liked content!

Community Reputation

206 Excellent

About Avatara

  • Rank
    Advanced

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Благодаря. Много полезна информация.
  2. Здравейте, Ако говорите за алгоритми, предполагам, че визирате програмен език, който да ползвате за описание и тестване на алгоритми. Към момента по-добър от ALGOL в това направление няма, но доколкото съм запознат едва ли сте го изучавали. Ако се интересувате от криптография без assembler няма как да минете, ако решите да се занимавате професионално в това направление. Лично аз ползвам комбинация от Delphi и assembler. Защо C, C++, Java и други езици са абсолютно неподходящи за използване при реализиране на системи за защита на критична информация, съм се обосновал с доста аргументи в доклада си "Съвременни методи за защита на информацията", Причината за това е в наличието на специфичен информационен излишък, който прави системите уязвими. С особена сила това важи при използването на C и C++ за криптиране на текстова информация. За да ме разберете, вижте как компилаторите на тези два езика (между C и C++ има съществени различия) представят текстовата информация в машинен код. За съжаление това се оказа много сериозен проблем, който към момента не може да бъде преодолян по никакъв начин (проблемът е от времето на Керниган и Ричи), но пък умело се използва от криптографите в Негев за дискредитиране на един или друг алгоритъм. Ако послушате съвета ми преди да тръгнете да избирате "език за програмиране" е добре да се запознаете с теоретичните основи на криптографията като наука. Повярвайте има форми на защита, за които най-малко сте предполагали (като така наречените "цветни шумове"). Още по интересни са пакетната стеганография и защитата на аналогови сигнали. Друг важен момент е динамиката на развитие на апаратните средства. В момента предстои Intel да пуснат модули, базирани на "когнитивни" процесори. Там се програмира по друга логика. Да не споменавам за фотонните компоненти (има и такава наука "фотоника", която не бива да се бърка с "квантовата"), които спокойно могат да се закупят от Али. Ако сте се насочили към блокчейн ... няма да мога да Ви помогна. 🙂 🙂 Каквото и да си говорим атака от вида "51%" си е напълно реална. Разбирам, че е "модерно", но имам редица възражения, които за сега никой не успя да обори. Ще се опитам да Ви помогна, но ... Кажете ми какво точно искате да постигнете? Каква е крайната Ви цел? Хубаво е, че задавате въпроси, но темата наистина е много сериозна и изисква обсъждане.
  3. Здравейте, Преди всичко е добре да се знае следното: Ако вярваме на това, което твърдят от Google то би следвало да не може да се ползва директно java.sql.DriverManager, Connection. На пръв поглед в това има някаква логика, защото по подразбиране Android поддържа СУБД SQLight. От това следва, че ако искате да използвате база данни в Android e е добре да ползвате SQLLight (така е и в iOS и Windows и къде ли не, но там се ползват други бази). За Postgres трябва да се разработят сървърно приложение и API-методи, които да комуникират с Android. Звучи много страшно, но дали наистина е така? 🙂 Като начало нека разгледаме един конкретен пример взет от internet: static final String JDBC_DRIVER = "org.postgresql.Driver"; static final String DB_URL = "jdbc:postgresql://localhost:5432/user1"; // STEP 1: Database credentials static final String USER = "root"; static final String PASS = "root"; public static void main(String[] args) { Connection conn = null; Statement st = null; try{ // STEP 2: Register JDBC driver Class.forName("org.postgresql.Driver"); // STEP 3: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection("jdbc:postgresql://domain.com:5432/databaseName", "username", "password"); // STEP 4: Execute a query System.out.println("Creating statement..."); st = conn.createStatement(); String sql; sql = "SELECT first, last FROM Employees"; ResultSet rs = st.executeQuery(sql); // STEP 5: Extract data from result set while(rs.next()){ //Retrieve by column name String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print(", First: " + first); System.out.println(", Last: " + last); } // STEP 6: Clean-up environment rs.close(); st.close(); conn.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); } finally { //finally block used to close resources try{ if(st!=null) st.close(); }catch(SQLException se2){ }// nothing we can do try{ if(conn!=null) conn.close(); } catch(SQLException se){ se.printStackTrace(); }//end finally try } } Обърни специално внимание на текста, който съм маркирал. Важно е да знаеш, че databaseName е ФИЗИЧЕСКИЯТ адрес, в смисъл не "псевдонима на базата" а името на реалния файл, така както се чете от операционната система (например StupidDB.sql или нещо подобно) Има и още. Вместо domain.com може да използваш IP адрес. Ако правиш разработка на лаптопа си или на локална станция може спокойно да го замениш с 192.168.1.1 или (ако ползваш Android SDK за да не се тормозиш с различията в хардуера) пишеш 10.0.2.2 или каквото си указал в настройките. Username и password са потребителското име и паролата за достъп до базата данни. Този код работи на 100% ако си конфигурирал работната си станция както трябва. Сега още малко полезни съвети от internet, за любители на Java и други подобни недоразумения. 🙂 Ако искаш да внасяш изменения в потребителския интерфейс е добре да използваш runOnUiThread. Ето как някои правят това: private void setAsyncText(final TextView text,final String value){ runOnUiThread(new Runnable() { @Override public void run() { if (value == null) text.setText("null"); else text.setText(value); } } } Имай в предвид, че в случая се ползва JDBC, нещо, което лично аз посмъртно не бих направил (както и не бих ползвал Java за подобни цели), но това е мое виждане. Лично аз бих ползвал Datasnap (за да си създам собствен REST сървър) в комбинация с FireDAC, за да получа пълен физически достъп до SUBD без да съм зависим от благоволението на Google или на някой друг. И за да завършим темата ... 🙂 Отново малко информация, какво биха направили тези, които са решили да вървят по пътя на индийските програмисти и да ползват Java. 🙂 Те биха добавили следния код: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dbactivity); pgsqlcon pgcon = new pgsqlcon(); pgcon.execute(); } А ти не се притеснявай да питаш. Въпросите тук се насърчават и няма да те наругаем (както се прави в други форуми). Тук сме възпитани и отзивчиви. Ако има нещо, което не си разбрал от това, което съм ти написал виж тук: https://jdbc.postgresql.org/documentation/head/prepare.html Бъди здрав и не спирай да се учиш.
  4. Да има. Все пак би следвало да е ползвал някакво устройство. Най-малко може да се прихване, кой доставчик е ползвал. От там RIPE информацията и ако е случай на психически тормоз или заплахи ... Тогава ще се следва стандартната процедура. Опитахте ли със сигнал в ГДБОП? Там има специално изграден ресурс за това.
  5. Мисля, че е изключително важно да се разясни какво е компилатор, транслатор и интерпретатор. Според мен (това е лично мое мнение) е много важно да се обясни защо изучаването на базовите принципи на програмирането (не на програмните езици, а на програмирането като такова) е от огромна полза за всички, които се занимават с киберсигурност. Повярвайте в целият свят няма да намерите нито един ВУЗ, в който определени въпроси, имащи непосредствено отношение към кибернетичната сигурност да се изучават. Изучава се информационната сигурност, но тя е просто един малък елемент от цялото.
  6. Обърни специално внимание на следния код: WkSht_Src.UsedRange.Copy WkSht_Dest.Cells(1, LngColumn) Машината прави това, което се иска от нея. Ясно е указано, че клетките от една колона се прехвърлят в клетки от един ред. Всяка клетка има номер на ред и номер на колона. Не може номерът на реда да е фиксиран. Той трябва да е променлива. Това е често срещата логическа грешка.
  7. Котарака ми изгледа този клип и след това взе, че изяде питбула на съседа. Сега гледам, че от два часа дебне един доберман. 🙂
  8. ПРОГРАМНИ ЕЗИЦИ И СИСТЕМИ (кратко описание на използваната терминология) I. СРЕДИ ЗА ПРОГРАМИРАНЕ 1 .NET и използваните в нея езици за програмиране Когато говорим за .NET програмиране трябва да знаем, че реално визираме Common Language Runtime (CLR), или казано с прости думи - общоезикова среда на изпълнение. Това е среда за изпълнение на Common Intermediate Language (CIL или MSIL - асемблер от високо ниво) байт-кодове, в които се компилират изходните кодове, написани на някой от .NET съвместимите езици. 1.1 .NET съвместими езици 1.1.1. Delphi - Императивно структуриран обектно-ориентиран език за програмиране със строга статична типизация на променливите. Позволява паралелно програмиране, както и изграждане на програми работещи в реално време. Използва структури за директно интегриране на асемблерен код. Използва се за проекти от клас А до клас АААА+. Утвърден като стандартен език за програмиране при системите със специално предназначение; 1.1.2. Visual C# - Обектно-ориентиран език за програмиране създаден от Андерс Хайлсберг и Скот Вилтаум. Обединява много от елементите на Pascal, Modula и Smalltalk, но е със C-синтаксис. За разлика от C++ не подържа множествено наследяване на класовете. Използва се за проекти от клас А до клас ААА+ 1.1.3. Visula Basic .NET - Обектно-ориентиран език за програмиране. Няма съвместимост с Visual Basic, независимо от сходството в имената. Използва се за проекти от клас А до клас АА+; 1.1.4. Visual J# - Специално създадена от Microsoft за .NET Framework интегрирана среда за разработка при използване на Java-подобен език. Няма нищо общо с Java, просто обезпечава Java-синтаксис и мнемонтика. Използва се за проекти от клас А до клас АА+; 1.1.5. Visual F# - Мултипарадигмален език за програмиране. Ползва както компилатор така и интерпретатор. Възможностите му са уникални и се използва за проекти от клас AAA. 1.2. Допълнения към езиците от високо ниво използвани в .NET 1.2.1. Managed Extensions for C++ - набор от допъслнения към езика за програмиране C++, позволяващ програми написани на C++ да се преработват за CLR и да работят върху платформана Microsoft .NET. 2. Embarcadero RAD Studio Среда за бърза разработка на крайни приложения (Rapid Application Development - RAD) на фирмата Embarcadero Technologies, обединяваща в едно Delphi и C++ Builder в единна интегрирана среда за разработка. RAD Studio позволява създаване на 32 и 64 битови надплатформени, апаратно-независими приложения (един програмен код се компилира без никакви изменения за Windows, UNIX, Linux, Android, iOS и OS X). 2.1. Основни възможности Пълна поддръжка на 64-разрядни универсални и iOS приложения Визуализация на различни апаратни устройства и форм-фактори (планшети, смартфони, смарт часовници, 3D системи за виртуална реалност и др.) Информационни системи за движение и локация на местоположението beacons. AppAnalytics за Windows, OS X, Android и iOS. GetIt пакетен менажер. Enterprise Mobility Services (EMS). 2.2. Допълнителни възможности C++ 11, базиран на CANG архитектура (пълна обратна съвместимост с Java, Objective-C, C#, Xcode, Xamarin и Visual Studio). Паралелна компилация за C++; Тестване на iOS 64x приложения; Пълна поддръжка на iOS 8.4; Пълна поддръжка на Android 5.1.1; Пълна поддръжка на всички функции на Android; Модулно тестиране за DUnitX за Android и iOS; Пълна поддръжка DirectX 12; Пълна поддръжка на API WinRT; Пълна поддръжка на FireDAC за NoSQL MongoDB бази данни; Поддръжка на MultiView интерфейсни решения; VCL компоненти; Пълна поддръжка на Beacon; Редакция и интегриране на стилове; Диспечер на библиотеки GetIt; Разшитрени IDE възможности; Директна интеграция с Microsoft Store, Google Play и Apple Store; Пълна поддръжка на Windows 10 VCL, Windows 10 FMX, WinRT/UWP и др. интерфейсни решения. Създаване на изключително мощни REST сървъри, които могат да работят както като процес, така и като приложение или библиотека; Независими и Apch интегрирани сървъри; Подръжка на над 200 вида телекомуникационни протоколи и др.. . . . следва продължение P.S. Уважаеми колеги, За да можем заедно да работим ефективно и пълноценно в областта на IT технологиите е нужно да се разбираме и да общуваме на един език. Голямата ми молба е като начало нека се научим да се изразяваме на български език, защото явно е, че англоезичната терминология, която ползвате, силно се отличава от тази, която е утвърдена. Ако сте обърнали внимание, в пасажа за .NEТ никъде не се споменава за HTML, SCC, Java Script, Python, Ruby и др.. Всички те са тема на друг вид разглеждания, а именно дизайна на web-документи и приложения. Това е друга област, която ще обсъждаме в последващите ни разглеждания.
  9. Здравейте, Извинете ме за закъснелия отговор. Доколкото разбирам визирате как се извършва изтриването на файлове и до колко това е важно за процеса на шифроване като цяло. Тук имате няколко различни функции, които работят по много различен начин. ИЗТРИВАНЕ: - Преместване на информацията за файла в кошчето (Recycle Bin) - Стандартна процедура, при която файлът може да се възстанови. - Изтриване на файла - Малко по-добър вариант. При него имаме "зачистване" на секторите (записваме 0), но ... това може да породи съмнения. - Манипулативен подход - На мястото на файла се записва друг. В случая става дума за физическо ниво. Това е типичен подход от използването на IOUtils. - Black Screen изтриване - Достъпно е само в Enterprice версиите, но там се изисква разрешение за придобиване. Изтриването на файловете е много важно за процеса на шифроване. То е толкова значимо, колкото и генерирането и унищожаването на динамичните , секретни ключове. ШИФРОВАНЕ: - Записване на файла на ново място - Стандартен подход, който не е никак надежден. - Записване на файла върху самия себе си - По-добро решение, но ... методът е по-бавен и не се препоръчва за големи масиви от файлове. - Записване на ново място с последващо изтриване на изходните файлове - Има го като функционалност във всички версии, но изтриването е различно. - Използване на защитени "куфарчета" (Protected Data Case) - Това е много мощно решение, но изисква допълнителен хардуер. За сега е най-търсено като решение. - Използване на "супер сейфове" (Super Safe) - Много мощна технология. Достъпна е от версия РЕ (Profesional Edition). Мисля, че не се продава на частни лица. Ето как изглеждат "куфарчетата" (protected data case) в някои от по-ниските версии. Забавно е как те обработват файловете и на това определено ще отделим време. Външно имат сходство със сейфовете, но то е само външно (в интерфейса). Различията са в генерацията на секретния ключ (ключове, ако се шифрова по BS-6192), синхронизацията, съхранението на файлове и пр.. А въпросът е много правилен. Както се знае дори след форматиране на диска информацията може да бъде възстановена. По принцип имаме договорка с Intel за използване на едни малки, но много ефективни устройства (цена под 200 лв.). Използват се за качествени телевизори, но ние им намерихме още едно приложение. Идеята е да имаме много бързи, много защитени и със защита IP64 устройства, които да ползваме. Пак повтарям, че въпросът е изключително важен и правилен и определено ще публикувам малко информация какво как се прави. Мисля, че след това ще може да дискутираме предимствата и недостатъците на различните подходи. Още веднъж ви благодаря.
  10. Здравей, Напълно те подкрепям. Трябва да се знае английски, защото за езиците от високо ниво това е огромно предимство. Не знам дали сте запознати, но в Малайзия (и не само там) използването на английски език в много сфери е забранено със закон от 1985 година. Бяха ми нужни три години за да разбера защо това е направено. Повярвайте има желязна логика. Преди години имах сериозен проблем при работата си с японци. Те не признават никаква техническа документация на английски език. Само на японски и само на катакана. Никакъв компромис. С датчаните е още по-страшно. Там изискват да знаете писмено и говоримо датски. Английският език в Дания не се използва в работни взаимоотношения. Пиша това въз основа на горчив, личен опит. Ако искаме развитие в технологичната сфера е нужно да имаме солидна база. Не може да изучаваме програмиране, а да не знаем какво е алгоритъм. Друга много сериозна грешка е, че битува схващането, че трябва да си добър математик за да си добър програмист. Да, но числените методи в програмирането са доста далеч от фундаменталната математика. Да не споменавам, че съществува огромен набор от математически прийоми, създадени от програмисти, за които математиците не са и чували. Мисля, че най-напред би следвало да се научим да общуваме. Това е много трудно. Още по-трудно е да се научим да водим дебат (дискусия). Най-трудно от всичко е да обменяме знания. Признавам, че и до момента ми е трудно да се справя с това. Това, което ми харесва в този форум е, че има дискусия. За разлика от много други тук се спазва добрият тон, а това е едно много хубаво начало.
  11. Здравейте, Горещо ви препоръчвам следния документ: http://nao-rozhen.org/astrocalendar/2016/Astronomical_calendar_2016.pdf В него има доста подробни описания и таблици, които биха могли да бъдат коригирани. Има и много полезни коефициенти и формули. Проблемът е, че този процес е динамичен като характер (поне така споделиха колегите). Ще потърся още информация по темата.
  12. Ако ми позволите да изкажа скромно мнение. Идеята да се преподава технологична материя на английски е меко казано ... лишена от логика. И за да не бъда голословен, ще приведа съвсем елементарен пример, как използването на "английски" (или "англоезични") термини може да ви направи за смях. Нека разгледаме думата "ДИГИТАЛЕН". Според мнозина думата има английски произход и означава "цифров". За съжаление, това е напълно погрешно схващане. Думата "дигитален" се използва още от Аристотел (все пак освен учител на Александър Македонски той е и бащата на кибернетиката, като наука, а информатиката е раздел от кибернетиката), а тогава не е имало Великобритания, да не говорим за английски език. Думата има древногръцки произход и означава, задълбочено познаване на отделните детайли (няма точен превод на английски). Към момента думата "дигитален" е основен термин в съвременната психология и означава определен вид личностна характеристика. За първи път думата "дигитален" (digital - дижитъл) на английският език се използва за дискретни процеси, но дискретните процеси не винаги имат цифров характер. Много от дискретните процеси са аналогови. Идеята, че "дигитален" означава "цифров" идва от латинското значение на думата "digitus". На латински това означава "пръст на ръката". Под digitus, в древен Рим се разбират цифри от 1 до 10 (или от 0 до 9, както е модерно) защото някога са броели на пръсти. Тук би следвало да възкликна като Ян Хус (да не се бърка с герой от комикси) "Santa Simplicitas!". Няма да го направя. Причината е, че от историята знаем, че този, който е изрекъл тези думи са го изгорили жив, защото си е позволил да изказва мнение, различно от модерното за онова време. Правилно е да употребяваме думата "цифров процес", а не "дигитален процес" (на български "дискретен процес"). Да. Не е модерно, но е правилно. За справка "Англо-български технически речник". Съществува и обратна логика в превода. Как например ще преведете на български думата subtle, но така, че да запазите нейното значение, така както то се ползва в английския език? Искам да спомена, че английският език е най-сложният език в света (над 350 000 думи). Имайте в предвид, че дори най-високо ерудираните хора употребяват максимум 3500 думи. А останалите? За съжаление английският език, който масово се е наложил в момента няма нищо общо с английския език, който познавам (този на който е писал Оскар Уайлд, примерно). Мисля, че причината е, че аз съм го учил в католическа църква, а сега се преподава къде ли не. Презрително това, което масово се говори като английски се нарича "кокни" и повярвайте употребата на подобен разговорен език не ви прави по-привлекателни. На такъв език разговарят хората "втора ръка" във Обединеното кралство и red necks (червените вратове) в САЩ. На практика някой може да се почувства creepy, ако чете кратки (задължително кратки) текстове, изпълнени с жаргонни фрази (сленг). Мога да ви дам още един пример, който е доста забавен. В България се казва "ЕЙПЪЛ" и с това много се гордеем. Ако в САЩ кажете това за компанията Apple, по този провлачен начин, ще станете за посмешище (не всички американци са тактични и възпитани). Американците изговарят името на фирмата като "АПЪЛ" (оказва се, че било жаргон свързан с две отделни думи APPLication и Electronics - APPLE). Все пак употребяваме "апликейшън", а не "ейпликейшън". За бит и нант съм писал. Но не е зле никога да не забравяте, че думата адитивен (произхожда от addivitus) има латински, а не английски произход. А без тази дума няма съвременна информатика. Забележка: Не знам колко знаят какво е адитивна логаритмична мярка, но повечето хора знаят какво е "бит" (което си е адитивна логаритмична мярка за измерване на единица информация). Та в този ред на мисли "киоска" е руска дума и буквално означава павилионче, на което се продават вестници. "Киоска" също е термин от съвременните IT-технологии, но не съм чувал призиви да изучаваме комуникационни технологии на руски език. Все пак си спомням за едно незабравимо произведение от българската драматургия. Надявам се да сте чували за "Криворазбраната цивилизация", написана в далечната 1871 година от Добри Войников. Та като чета понякога някои чуждици си спомням с умиление за Мадам Злата (съпругата на Хаджи Коста) и дъщеря й Анка. Разликата от тогава и сега е само в езика. Тогава е било "францужки" а сега е "енгелизки". Ерго, някои определено още живеят в 1871 година и се изживяват, като прототипи на Маргариди, в стремежа си да се "европейчат" (американчат и пр.). А после ".. поради що се срамиш ...". Ами заради таквизи се срамим. Но като се замисля по едно време бяхме готови и от кирилицата да се отречем. В този ред на мисли ... Направи ли ви впечатление на какъв чист и изискан български език говореше българският актьор, спечелил Оскар? Обърнахте ли внимание на богатат му езикова култура? И това е човек, който живее и работи в Холивуд и в ежедневието си комуникира само и единствено на английски език. Помислете сериозно над това.
  13. Благодаря за прекрасния материал. Ако ми позволите бих добавил и още нещо, което е малко известно. А знаете ли, че може да напишете един програмен код, който да се изпълнява без проблем на Windows, Linux, iOS и Android? Да. От години Microsoft и Embarcadero, независимо един от друг работят в направление One Platform. На практика конфликт между Linux и Microsoft никога не е имало. Точно обратното. Microsoft винаги активно са подкрепяли развитието на Linux и то не само финансово. Много от потребителските версии на Linux, ползват патенти на Microsoft. Има и още нещо, което е много малко известно, но за което съм писал. А да знаете, че всички операционни системи поддържат нещо, наричано IOUtils? На практика точно това е ядрото на много мощен код, който позволява с лекота да преминавате от една ОС в друга. Изключително полезен инструмент, който прави с файловите системи неща, за които дори не сте мечтали. Между другото в Microsoft Store има много приложения за Linux и това си е съвсем в реда на нещата. Още веднъж благодаря на Linuxmaster за прекрасният материал.
×
×
  • 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.