Showing posts with label разработка. Show all posts
Showing posts with label разработка. Show all posts

Tuesday, 1 October 2024

Запуск PowerShell из Python.

Всем привет.

Рассмотрим простой метод интеграции Python и PowerShell.

Самое простое выглядит так что если бы мы смогли исполнять CmdLet PowerShell из Python и перехватывать результаты. Так как PowerShell является неким исполняемым процессом, тем самым мы можем применять стандартную библиотеку Python, предоставляющую возможность запуска поцессов. Это делается с применением стандартной библиотеки subprocess. В Python для применения любой стандартной или сторонней библиотеки вам следует импортировать её. В данном случае это просто:

import subprocess 

Это предоставляет доступ к методам и свойствам, содержащимся в данной библиотеке subprocess. Доступно монжество вариантов - наиболее популярным является применение метода check.output, который исполняет предписанный процесс и возвращает полученный результат. Вот некий пример:

runningProcesses = subprocess.check_output("powershell -Executionpolicy ByPass -Command Get-Process") 

Существует также аналог асинхронного варианта вызова подчинённого процесса, вызов метода await asyncio.create_subprocess_shell()), подробнее в книгах Asyncio в Python 3 Цалеба Хаттингха и Полном руководстве параллельного программирования на Python Куан Нгуена:

import asyncio

async def run(cmd):

    proc = await asyncio.create_subprocess_shell(cmd, stdout=asyncio.subprocess.PIPE,      stderr=asyncio.subprocess.PIPE

    )

    stdout, stderr = await proc.communicate()

    print(f'[{cmd!r} exited with {proc.returncode}]')

    if stdout:

        print(f'[stdout]\n{stdout.decode()}')

    if stderr:

        print(f'[stderr]\n{stderr.decode()}')

asyncio.run(run('powershell -Executionpolicy ByPass -Command Get-Process'))

Thursday, 12 September 2024

Cканер кода SonarQube

Всем привет.

Большинство кодировщиков пишут, как им часто кажется, совершенный код. Некоторые уже используют в IDE инструменты статического анализа, такие как ESLint, которые выявляют возможности улучшения каких-то частей кода в процессе его написания. Практика хорошая, и не стоит от нее отказываться.

Сегодня будет представлен инструмент для повышения качества кода, выводящий этот процесс на новый уровень - SonarQube. Вы узнаете:

  • что такое SonarQube;
  • как установить этот инструмент на локальный компьютер;
  • как сканировать файлы проекта;
  • как провести анализ проекта в SonarQube.

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


Что такое SonarQube?

SonarQube - это платформа с открытым исходным кодом, разработанная SonarSource, для непрерывной оценки качества кода путем статического анализа.

Иначе говоря, она не выполняет код, а лишь просматривает его. Причем, можете мне поверить, делает это очень тщательно. Неудивительно, что у SonarQube довольно внушительный список клиентов и репутация одного из востребованных инструментов статического анализа кода.

Завершив сканирование кода, о чем будет рассказано далее, SonarQube формирует отчет, который можно посмотреть в GUI через браузер. Все обнаруженные проблемы представляют собой “интерактивные тикеты”, позволяющие писать к ним комментарии, делегировать их другим пользователям, открывать или закрывать и т. д.


К подробному описанию проблемы сразу же прилагается соответствующий код.



SonarQube также объясняет суть проблемы при нажатии на соответствующую ссылку “Why is this an issue?” .


Friday, 17 September 2021

Регулярные выражения.

Всем привет.

Есть такая штука как Регулярные выражения. Тот кто ими пользуется знает что это как еще один язык выучить. И их знание не абы какой плюс при приеме на работу. Но все равно диалекты регулярных выражений в контексте других языков программирования могут быть разными. Я ими пока не владею, потому что "я ведь не волшебник, я только учусь".

А пока могу рекомендовать отличные курсы по регулярным выражениям, на которых страдаю сам:

1. Using Regular Expressions with Kevin Skoglund, lynda.com | Using Regular Expressions (2011).

2. Jeffrey Way - Regular Expressions - Up And Running,

http://code.tutsplus.com/courses/regular-expressions-up-and-running

И на сегодня для вас небольшая шпаргалка по использоваию регулярок с JavaScript.

<script type="text/javascript">

//Создание

var pattern = new RegExp(pattern [, flags]); //Полная форма

var pattern = /pattern/flags; //Сокращенная форма записи (литеральный формат)

//Динамическое создание регулярного выражения

var emails = ['gmail', 'yahoo', 'hotmail', 'live', 'rambler'];

var re = new RegExp(emails.join('|', 'i')); //gmail|yahoo|hotmail|live|rambler/i

/**

где pattern — шаблон регулярного выражения,

     flags — способ поиска, может принимать:

          g — глобальный поиск (обрабатываются все совпадения с шаблоном поиска);

          i — не различать строчные и заглавные буквы;

          m — многострочный поиск.

*/

</script>

Sunday, 11 April 2021

Chrome DevTools - режим анализа кода на лету.


Всем привет.

Developer Tools - инструмент по умолчанию в браузере Google Chrome и других, который предназначен для разработчиков и тестировщиков с целью отладки кода. С его помощью можно просматривать код страницы, логи, загрузку страницы, отображение в разных разрешениях, ошибки кода и многое другое. Такая информация помогает разработчикам и тестировщикам понять причины ошибок, посмотреть как они воспроизводятся не только через пользовательский интерфейс, найти ошибки в коде, воспроизвести различные ситуации в работе с сайтом, например, отсутствие сети или смена положения мобильного устройства. Информация о багах, собранная в Developer Tools, помогает также лучше оформить баг-репорты, указав полезную дополнительную информацию, например, правильные названия элементов, стилей или ошибок так, как они отображаются в коде.

Про Chrome DevTools написано много, еcть даже мини-курсы по его изучению. Согласитесь неплохо владеть таким инструментом, который, к тому же, всегда на борту вашего web-браузера.

Но сегодня я акцентирую ваше внимание только на одну его фишку, которая на мой вгзляд очень полезна как для тестировщика так и для разработчика мобильных приложений или web-сайтов. Это режим анализа кода на лету непосредственно на вашем гаджете.

Набираем на ПК в браузере Chrome:

chrome://inspect/#devices

и отмечаем "Discover USB devices".

А на своем гаджете активируем режим "Отладка по USB" и подсоединяемся к основному ПК USB-шнурком. В вариантах предложенных на гаджете выбираем как "внешнее музыкальное устройство". У вас возможны варианты, но это точно будет не МТР. Включаем на гаджете выход в интернет и запускаем Chrome. Через некоторое время на ПК в браузере Chrome вы должны увидеть свой гаджет.


Двойной клик по нему открывает Chrome DevTools в котором вы можете инспектировать сайт открытый на вашем гаджете. Причем управление им возможно как с гаджета, так и с DevTools.


Если ваше устройтво не появляется в списке Chrome DevTools, то возможна ваше проблема описана здесь.

Успехов.


Saturday, 5 September 2020

Изучаем Ansible.

Всем привет.

Среди множества систем управления конфигурациями Ansible обладает неоспоримыми преимуществами. Он минималистичен, не требует установки программного обеспечения(агента) на узлах, легок в освоении, быстро развивается. Все так и есть. Мое знакомтсво с ним началось с видео-лекций Наташи Самолейнко и Дениса Астахова. У Наташи ударение делается на управление активным оборудованием, у Дениса - на линукс и облака. Такими темпами не далек тот момент когда Ansible будет управлять вашим холодильником.

Кроме видео-лекций и практических тестов мне помогает изучение книг. Чаще электронных. Хоршее продолжение в изучении Ansible дает книга "Полное руководство Ansible", 3 изд. авторов Джеймс Фриман и Джесс Китинг, Copyright © 2019 Packt Publishing.

С первой книгой во многом перекликается новая книга "Практическая автоматизация предприятия в Linux" Джеймса Фримана, Copyright © 2020 Packt Publishing. Однако и в ней много полезного и нового.

Из бумажных вариантов могу посоветовать русский перевод "Запускаем Ansible" издательства "ДМКПресс" 2018 года. Автор: Мозер Р., Хоштейн Л. Оригинальное название: "Ansible: Up and Running" В книге подробно с примерами (код есть на сайте издательства) изложены способы автоматизации управления конфигурациями и развертывания приложений.

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

Авторы книги расскажут вам, как написать сценарий (скрипт управления конфигурациями Ansible), установить контроль над удаленными серверами, а также задействовать мощный функционал встроенных декларативных модулей. Вы поймете, что Ansible обладает всеми функциональными возможностями, которые вам необходимы, и той простотой, о которой вы мечтаете.

• Узнайте, чем Ansible отличается от других систем управления конфигурациями

• Используйте формат файлов YAML для написания собственных сценариев

• Изучите пример полного сценария для развертывания нетривиального приложения

• Администрируйте машины Windows и автоматизируйте конфигурацию сетевых устройств

• Производите развертывание приложений на Amazon EC2 и других облачных платформах

• Используйте Ansible для создания образов Docker и развертывания контейнеров Docker

И в качестве солидного бонуса я бы советовал добавить себе в копилку книгу Эрика Чоу "Полное руководство работы с сетями на Python", Copyright © 2017 Packt Publishing.

Успехов.

Tuesday, 18 August 2020

Оптимизация размеров образов Docker.

Всем привет.

Образы Docker могуть быть очень большими. Многие легко превышают 1 Гб в размере. Как они становятся такими? Должны ли они быть такими? Можем ли мы сделать их меньше, не жертвуя функциональностью?

Все дело в слоях. Образ Docker  похож на супер бигмак, где каждый инградиент этажности увеличивает его массу в килобайтах. Концепция слоев затрагивает различные низкоуровневые технические детали о вещах вроде корневой файловой системы (rootfs), механизма копирования при записи (copy-on-write) и каскадно-объединенного монтирования (union mount). Эта азбука достаточно хорошо раскрыта в другом месте, поэтому я не буду пересказывать ее здесь. Для Важным является понимание того, что каждая инструкция в Dockerfile приводит к созданию нового слоя образа. Бутерброд одним словом!

Зная, что образ - это не что иное, как коллекция других образов, можно прийти к очевидному выводу: размер образа равен сумме размеров образов, его составляющих.

Посмотрим на вывод команды docker history imagename:

$ docker history aformat

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

d1ea947a9058        6 days ago                                                          119MB               merge sha256:f1fe0e102e804d28b6ae83ba4a3d1beb730eaea48aefc5b4510a3e03e5fe1c76 to sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e

<missing>           6 days ago          /bin/sh -c tree -L 1                            0B                  

<missing>           6 days ago          /bin/sh -c echo "******************* Hello w…   0B                  

<missing>           6 days ago          /bin/sh -c rm -rf /var/cache/apk/*              0B                  

<missing>           6 days ago          /bin/sh -c apk add tree                         0B                  

<missing>           6 days ago          /bin/sh -c apk add git && apk add npm && apk…   0B                  

<missing>           10 days ago         /bin/sh -c apk --no-cache add --update bash     0B                  

<missing>           10 days ago         /bin/sh -c #(nop)  MAINTAINER Nyukers <nyuke…   0B                  

<missing>           2 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  

<missing>           2 months ago        /bin/sh -c #(nop) ADD file:c92c248239f8c7b9b…   5.57MB           

Мы можем увидеть все слои образа aformat вместе с командами, которые привели к их созданию, и их размером.

Что же следует учесть для уменьшения размера образа Docker?

Sunday, 26 April 2020

Консольный вывод в Powershell.

Всем привет.

Самый простой вариант консольного вывода в Powershell это использование командлета Write-Host. Кроме него есть еще Write-Output и Write-Verbose.

$EventSource = "Powershell CLI"
$Message = "PowerShell version 3 or higher is required!"

Пример для Write-Host:
$Message1 = 'Host:' + $Message
Write-Host $Message1

Пример для Write-Output:
$Message2 = 'Output:'+$Message
Write-Output $Message2

Write-Output генерирует выходной сигнал. Этот вывод может перейти к следующей команде после конвейера или консоли, чтобы он просто отображался. Командлет отправляет объекты по основному конвейеру, также известному как «выходной поток» или «конвейер успеха».

Еще пример:
Write-Output 'My text' | Out-File -FilePath "$env:TEMP\Test.txt"
Write-Output 'Bob' | ForEach-Object {
    "My name is $_"
}

Командлет Write-Output отправляет указанный объект по конвейеру в следующую команду.
Если команда является последней командой в конвейере, объект отображается в консоли.
Интерпретатор PowerShell рассматривает это как неявный Write-Output. Поскольку поведение по умолчанию Write-Output - отображать объекты в конце конвейера, обычно нет необходимости использовать командлет. Например, Get-Process | Write-Output эквивалентен Get-Process .

Wednesday, 8 April 2020

Регулярные выражения в PowerShell #2.

Всем привет.

Сегодня еще кое что из книги "Keith Hill, Эффективное программирование в Windows PowerShell. 2009". На сей раз еще раз про регулярные выражения. 

Известно что PowerShell основан на .NET Framework. То есть, он построен с использованием .NET Framework и предоставляет возможности .NET Framework пользователю. Одна из наиболее удобных возможностей в .NET Framework - класс Regex в пространстве имён System.Text.RegularExpressions. Это очень мощный механизм регулярных выражений. PowerShell использует его в ряде сценариев с помощью:
• оператора -match
• оператора -notmatch
• параметра -Pattern командлета Select-String.

Конечно,   чтобы   использовать   эти   операторы   и   Select-String   максимально   эффективно, необходимо хорошо понимать применение регулярных выражений. Справочная система PowerShell содержит раздел с именем "about_Regular_Expression", который вы можете вызвать так:
PS> help about_reg*

Данный раздел представляет собой лишь краткое справочное руководство по различным метасимволам, с его помощью вы не научитесь создавать мощные регулярные выражения. Чтобы узнать, как получить максимальную отдачу от регулярных выражений, и, следовательно, PowerShell, я очень рекомендую прочитать книгу Jeffrey Friedl Mastering Regular Expressions (Джеффри Фридл, Регулярные выражения). В   механизме   поддержки   регулярных   выражений   PowerShell   существует   один   недостаток,   который необходимо знать. Большинство других скриптовых языков поддерживают синтаксис, позволяющий обнаружить все вхождения шаблона в строке. Например, в Perl я могу сделать так:

$_ = "paul xjohny xgeorgey xringoy stu pete brian"; # PERL script
($first, $second, $third) = /x(.+?)y/g;

К сожалению, командлет Select-String не поддерживает эту возможность в версии 1.0. Тем не менее, вы можете обойти это ограничение, используя класс System.Text.RegularExpressions.Regex напрямую. Нет необходимости   указывать   имя   класса   полностью,   PowerShell   имеет   для   него   псевдоним   [regex]. 

Например:
PS> $str = "paul xjohny xgeorgey xringoy stu pete brian"
PS> $first,$second,$third = ([regex]'x(.+?)y').Matches($str) |
>>Foreach {$_.Groups[1].Value}
PS> $first
john
PS> $second
george
PS> $third
ringo

Одна из вещей, за которой необходимо тщательно следить - написание регулярного выражения для поиска во всей строке. Например, вы решили использовать Get-Content для получения содержимого файла и применения к нему регулярного выражения. В этом случае необходимо помнить, что Get-Content считывает файл частями - строка за строкой. Для применения регулярного выражения ко всему содержимому файла, необходимо будет преобразовать это содержимое в одну строку. Я могу сделать это в PowerShell 1.0, например, так:

PS> $regex = [regex]'(?<CMultilineComment>/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'
PS> Get-Content foo.c | Join-String -Newline | Foreach {$regex.Matches($_)} |
>> Foreach {$_.Groups["CMultilineComment"].Value}
>>

Здесь я использовал командлет Join-String, разработанный PowerShell Community Extensions, который принимает отдельные строки, выводимые Get-Content, и создаёт из них одну строку. Также в примере использован именованный захват CMultilineComment. Этот пример демонстрирует, что при отсутствии возможностей в самом PowerShell, использование среды .NET может стать замечательным "запасным выходом".

Начиная с версии PowerShell 2.0 появились новые возможности, помогающие выполнять поиск в вышеописанном случае. Во-первых,   добавлен   оператор   объединения,   с   помощью   которого   можно   соединять  многострочный текст в одну строку. Во-вторых, в Select-String появились новые параметры, такие как -Context, -NotMatch и -AllMatches. Параметр AllMatches как раз подходит для решения предыдущей задачи. Вот как можно теперь выполнить поиск комментариев:

$pattern = '(?<CMultilineComment>/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'
PS> (get-content .\foo.c) -join "`n" | Select-String $pattern -all |
>>Foreach {$_.Matches} | Foreach {$_.Value}

Использование   регулярных   выражений   -   очень   мощный   инструмент   PowerShell.   Научитесь   его использовать, и он откроет вам много возможностей поиска и обработки текстовых данных.

Saturday, 4 April 2020

Reboot of mankind.

Всем привет. На тему дня.

"Эта музыка будет вечной если я заменю батарейки"
Наутилус-Помпилиус.

В комнате совещаний было жарко. Алистер не привык к такой манере ведения разговоров. Тем более что важного незнакомца никто не представил, а на его электронном пропуске многозначительно было указано "Guest". Гость начал разговор первым и сразу пошел в атаку. Указывая пальцем на визуальную диаграмму отражающую масштабы распространения вируса по планете он явно хотел чтобы ему открыли все. Пусть выговориться - решил Алистер -, эта комната не предназначена к скандалам. Но гость не унимался...

- О чем вы говорите? Опять эти ваши эксперименты по выходным?!
- Нет, никаких экспериментов. Только то что было проекте. Мы получили результат которого добивалась вся наша команда целый год.
- А потом, как это бывает в кино, он вышел из под контроля...
- Да нет же - ничего не вышло из под контроля! Все согласно спецификации и требований заказчика. Можете проверить сами.
- Еще как проверю! Но, скажи мне другое - Как эта зараза попала к человеку? В его организм, а? Вы слышите меня, черт возьми?!
- Не знаю точно, но...
- Он не знает! Непостижимо! Вы уже год занимаетесь этим проектом, съели собаку или даже стаю на AI, в твоей команде работают лучшие кодировщики вашей кампании. И ты не знаешь? Ты вообще менеджер или кто?! Еще раз - как Это попало в человека? Вы что, чип в него вставили? Нанотехнологии? Или какую другую хрень ему ввели? Это иньекция, да? Какая, говори?!

Их разговор уже на "ты" явно переходил в информационную драку. В комнате совещаний 31-го отдела компании повисла пауза. Чашка остывшего кофе на стеклянном столике осталась нетронутой. Градус беседы явно был выше и мог без труда ее подогреть ее еще раз. Алистер еще раз взглянул на своего гостя, тяжело вздохнул и спокойно продолжил.

Wednesday, 1 April 2020

Регулярные выражения и Excel.

Всем привет.

Каждый из вас слышал про Регулярные выражения (Regexp). Они применимы в почти в любом языке программирования и многих редакторах.

Regexp представляет собой группу символов или знаков, которая используется для поиска определенного текстового шаблона. Другими словами Регулярное выражение – это шаблон, который обработчик регулярных выражений пытается сопоставить с введенным текстом. Шаблон состоит из одно-символьных или много-символьных литералов, операторов или конструкций. 


К Regexp приходят многие хотя этот путь не близкий. После того как их прочувствуешь понимаешь что как же ты их не использовал ранее. 

Regexp можно использовать даже в Excel. Но, скажете вы,  в уважаемом Excel есть же функция ПОИСК(искомый_текст;текст_для_поиска;нач_позиция).

Где Искомый_текст — это искомый текст. Можно использовать символы шаблона знак вопроса (?) и звездочка (*) в аргументе искомый_текст. Знак вопроса соответствует любому символу; звездочка соответствует любой последовательности символов. Если нужно найти символ знак вопроса или звездочку, то следует поставить перед ними знак тильда (~). Если искомый_текст не найден, то возвращается значение ошибки #ЗНАЧ!.

Текст_для_поиска — это текст, в котором нужно найти искомый_текст.

Нач_позиция — это номер символа в тексте текст_для_поиска, с которого следует начать поиск.

Если аргумент опущен, то он полагается равным 1.

Если нач_позиция не больше 0 или больше, чем длина аргумента текст_для_поиска, то возвращается значение ошибки #ЗНАЧ!.

Зачем мне что-то еще?

Saturday, 14 March 2020

Using Python for Network Forensics #1.

Hi all.

Today I would like to present for us excerpt from book "Mastering Python Forensics", Copyright © 2015 Packt Publishing, written by authors Dr. Michael Spreitzenbarth and Dr. Johann Uhrmann. It's concerning using Python for network forensics. You are welcome!

In this chapter, we will focus on the parts of the forensic investigation that are specific to the network layer. We will choose one of the most widely used Python packages for the purpose of manipulating and analyzing network trafic (Scapy) as well as a newly released open source framework by the U.S. Army Research Laboratory (Dshell). For both the toolkits, we have selected the examples of
interesting evidence. This chapter will teach you the following:
•  How to search for IOC in network traffic
•  How to extract files for further analysis
•  How to monitor accessed files through Server Message Block (SMB)
•  How to build your own port scanner

So, how we are using Dshell during an investigation.

Dshell is a Python-based network forensic analysis toolkit that is developed by the U.S. Army Research Laboratory and released as open source at the end of 2014. It can help in making the forensic investigations on the network layer a little easier. The toolkit comes with a large number of decoders that can be used out of the box and are very helpful. Some of these decoders are as follows:
•  dns: Extracts and summarizes DNS queries/responses
•  reservedips: Identifies the DNS resolutions that fall in the reserved IP space
•  large-flows: Displays the netflows that have at least transferred 1MB
•  rip-http: Extracts the files from the HTTP traffic
•  protocols: Identifies non-standard protocols
•  synrst: Detects failed attempts to connect (SYN followed by a RST/ACK).

Dshell can be installed in our lab environment by cloning the sources from GitHub at, https://github.com/USArmyResearchLab/Dshell and running install-ubuntu.py.
This script will automatically download the missing packages and build the executables that we will need afterwards. Dshell can be used against the pcap files that have been recorded during the incidents or as a result of an IDS alert. A packet capture (pcap) file is either created by libpcap (on Linux) or WinPcap (on Windows). In the following section, we will explain how an investigator can make use of Dshell by demonstrating the toolkit with real-world scenarios that are gathered from
http://malware-traffic-analysis.net.


Saturday, 16 November 2019

Супер надстройки для Excel.

Всем привет.

Я люблю Excel как самую популярную часть пакета Microsoft Office. Считаю что это самая удачное и мощное приложение для офисного работника. Но даже в таком приложении чего-то не хватает. Разумеется это касается тех операций которые часто необходимо выполнять и желательно одним  кликом. Что делать? Ставить расширение! И таки да, они существуют. Они выглядят как дополнительная вкладка на панели, и содержательны почти как второй Excel. Ниже обзор самых популярных из них. Их авторы проделали большой труд поэтому они платные, за исключением одной.

Kutools for Excel

Kutools для Excel - это удобная коллекция надстроек Microsoft Office Excel.
Разработчик ExtendOffice. Платная.

Kutools для Excel - это удобная коллекция надстроек Microsoft Office Excel, которая освобождает вас от длительных операций. Работая с Microsoft Excel, вы будете часто испытывать дискомфорт от повторяющихся операций, особенно при работе с диаграммами, таблицами, отчетами и так далее.

Если вы устали от поиска большого количества пустых листов и ячеек или разочарованы переименованием большого количества книг по очереди, то Kutools для Excel - это то, что вам нужно прямо сейчас.

Помимо часто используемых функций Microsoft Excel, он расширяет и добавляет более продвинутые функции для удобства работы. Например, вы можете объединить таблицу и ячейки, удалить пустые ячейки и пакетные операции одним щелчком мыши в Microsoft Excel. Коллекция надстроек Kutools для Excel, несомненно, является невероятно удобной надстройкой Excel, позволяющей сэкономить ваше время и усилия.

Сайт программы Kutools for Excel

Daniel’s XL Toolbox

Daniels XL Toolbox - это бесплатная надстройка с открытым исходным кодом для программного обеспечения Microsoft Excel для работы с электронными таблицами Разработчик Daniel Kraus.
Бесплатная.

Daniel XL Toolbox - это бесплатная надстройка с открытым исходным кодом для программного обеспечения для работы с электронными таблицами Microsoft Excel, которая помогает анализировать и представлять данные и повышает производительность. Его целевая аудитория - учёные-натуралисты, но она оказалась полезной и для промышленности. Набор инструментов XL выпущен под лицензией GNU General Public (GPL v2).

Thursday, 10 October 2019

Привет из прошлого.

Всем привет.

Привет приветом, но я сам в шоке. Вот сегодня мне антивирус 360 Total Security выдал вот такой вот привет на мою утилиту IEHistory из моего набора Nyukers Netwok Suite. Его исходный код доступен всем!


Что тут скажешь - наверное ребята из Borland-a были стратегами раз заложили в компилятор Delphi 5 привет из прошлого. Ну красавцы однозначно. Да и кодировщики китайского чуда 360 Total Security решили не отставать.

Я польщен.)

Культура использования программного обеспечения.

Всем привет.

В каждой фирме должна быть культура использования программного обеспечения (ПО). Для этого жизненно необходимо иметь на фирме внутренний Репозиторий офисного и прикладного ПО. Для его размещения подойдет внутренний ftp-сервер. 

Что это такое?

Репозиторий учитывает и предлагает эталоны ПО для скачивания (readonly) и установки во всех подразделениях фирмы. Репозиторий содержит эталоны ПО которые прошли проверку в службе защиты информации (СЗИ), разрешены для использования и имеют соответствующий хеш для сверки после скачивания.

Для внесения прикладного ПО в репозиторий специалист фирмы подает заявку в СЗИ где указывает его назначение, версию, тип (наличие) лицензии, наличие поддержки, контактные данные производителя ПО, описание установки (manual), требования к версии ОС и аппаратному обеспечению, возможность виртуализации на платформах HyperV, VMware или VirtualBox, перечень файлов всего пакета, документ согласно которого закуплено ПО, и хеш всего кода. 

СЗИ анализирует полученную информацию и принимает решение о размещении этого ПО в репозитории  или его нецелесообразности: морально устарело, отсутствует поддержка, нет специалистов внутри фирмы, закуплен лучший аналог, прочее.

Репозиторий также учитывает количество лицензий для лицензионного ПО для установки для каждого отдела. Репозиторий также может содержать ПО со свободной лицензией разных типов (freeware). Свободное ПО также проходит проверку  в СЗИ. Репозиторий не содержит ПО с лицензией shareware.

Tuesday, 25 June 2019

Книги по наступательной информационной безопасности.

Всем привет.

Любую достаточно развитую технологию можно сравнить с оружием: когда у врага есть ружье, а у тебя нет, поневоле хочется изменить баланс сил в свою пользу. В области IT-безопасности знания, передаваемые различными способами, и есть то самое оружие, использование которого ограничивается не столько нормами уголовного кодекса, сколько этическим выбором.

Невозможно стать профессионалом в области информационной безопасности, не понимая тонкостей проникновения и обнаружения уязвимостей. Все книги в сегодняшней подборке похожи на заряженную винтовку, которую хочется иметь в качестве защиты: они обязательны для изучения как начинающим исследователям безопасности, так и специалистам, желающим расширить границы своих знаний.

Итак поехали - 16 лучших книжек в области информационной безопасности. 

Penetration testing, A hands-on introduction to hacking



В практическом руководстве по тестированию на проникновение эксперт по вопросам безопасности Georgia Weidman рассказывает об основных методах хак-тестирования, а также проводит серию практических занятий с такими инструментами, как Wireshark, Nmap и Burp Suite. Тесты проводятся на основе платформы Kali Linux — основной операционной системе для тестов на проникновение и проверку безопасности.

Georgia Weidman профессионально занимается тестированием, является основателем компании консалтинговой безопасности Bulb Security, выступает на таких конференциях как Black Hat, ShmooCon и DerbyCon. Также она получила грант FastTrack DARPA Cyber — для продолжения работы в области безопасности мобильных устройств. К созданию книги Georgia привлекла известного в узких кругах исследователя — Peter Van Eeckhoutteaka, основателя Corelan Security Team.

Thursday, 20 June 2019

Violent Python Book.

Hi all.

It's very good news for us. I found good book "Violent Python" by TJ O’Connor for Python Programmers. Maybe is you). Python is a hacker's language evidently. It's great language. Python provides an excellent development platform to build your own offensive tools. If you are running Linux, odds are it is already installed on your system. While a wealth of offensive tools already exist, learning Python can help you with the difficult cases where those tools fail.

Note for you - it's not previous book "Python Programming for Hackers and Reverse Engineers" by author Justin Seitz. I wrote about it earlier.

Look here.

Chapter 1 introduces for us Python basics. If you are know it so you can skip this light chapter.

Chapter 2 introduces the idea of using the Python programming language to script attacks for penetration testing. The examples in the chapter include building a port scanner, constructing an SSH botnet, mass-compromising via FTP, replicating Conficker, and writing an exploit.

Chapter 3 utilizes Python for digital forensic investigations. This chapter provides examples for geo-locating individuals, recovering deleted items, extracting artifacts from the Windows registry, examining metadata in documents and images, and investigating application and mobile device artifacts.

Chapter 4 uses Python to analyze network traffic. The scripts in this chapter geo-locate IP addresses from packet captures, investigate popular DDoS toolkits, discover decoy scans, analyze botnet traffic, and foil intrusion detection systems.

Chapter 5 creates mayhem for wireless and Bluetooth devices. The examples in this chapter show how to sniff and parse wireless traffic, build a wireless key-logger, identify hidden wireless networks, remotely command UAVs, identify malicious wireless toolkits in use, stalk Bluetooth radios, and exploit Bluetooth vulnerabilities.

Chapter 6 examines using Python to scrape the web for information. The examples in this chapter include anonymously browsing the web via Python, working with developer APIs, scraping popular social media sites, and creating a spear-phishing email.

In the Final chapter, Chapter 7, we build a piece of malware that evades antivirus systems. Additionally, we build a script for uploading our malware against an online antivirus scanner.

It's cool book for cool guys.

Friday, 1 February 2019

OpenServer и SSL.

Всем привет.

SSL сертификат имеет важное значение в поисковой выдачи при продвижении и уже очень многие сайты перешли на его использование. Сам Google все больше и больше любит сайты с  префиксом https. Тестируя новый проект на локальном хостинге поднятым под OpenServer наступила необходимость проверить его работу именно как https-версией.  Хотя OpenServer и поддерживает из коробки https его еще надо подружить с самой системой на тему SSL сертификатов. которые надо создать и установить. Поэтому малость поколдуем для этого.

Для начала редактируем файл generate.bat перезаписывая нашим содержимым (дополнительно, вместо mysite.ua в двух местах прописываем свой сайт)
OSPanel\modules\http\Ваша_Версия_PHP\conf\generate.bat

@echo off

set OPENSSL_CONF=%~dp0..\conf\openssl.cnf
..\bin\openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout rootCA.key -out rootCA.crt -subj "/CN=mysite.ua/"
..\bin\openssl req -newkey rsa:2048 -nodes -days 5475 -keyout server.key -out server.csr -subj "/CN=mysite.ua/"
..\bin\openssl x509 -req -sha256 -days 5475 -in server.csr -extfile v3.txt -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt
..\bin\openssl dhparam -out dhparam.pem 2048

В той же папке OSPanel\modules\http\Ваша_Версия_PHP\conf\ создаем текстовый файл под названием v3.txt с содержимым (в dns прописываем название сайта или сайтов):

nsComment = "Open Server Panel Generated Certificate"
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = mysite.ua
DNS.2 = mysupersite.ua

Запускаем generate.bat. Ждём пару минут до завершения его работы.

Friday, 14 December 2018

Разрешить Windows исправлять размытость в приложениях.

Всем привет.

Не всем пользователям глубокое разрешение (FullHD) современного монитора в тему.

В Windows 7 была опция изменения масштаба экрана от 100% до 150%. Часто это приводило к неожиданных потерям пунктов меню или строки состояния в формах приложений которые не тестировались с такими фокусами.

Но в Windows 10 начиная с версии ядра 1803 появилась помощь в этом вопросе. А именно, на закладке "Дисплей" теперь есть опция "Дополнительные параметры масштабирования". Она может быть полезна для пользователей которые терпеть не могут современные мониторы с их разрешением и выставляют масштаб отображения всех элементов на экране больше чем 100%. При этом, как следствие, теряется резкость отображение окон как классических приложений так  и прикладного софта.



Так вот, там можно указать  "Разрешить Windows исправлять размытость в приложениях".  Результат такого шага следует оценивать лично.

Более того, можно также задать пользовательский размер масштабирования вплоть до 500%. Честно, даже экспериментировать не решаюсь.


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

Успехов.

Tuesday, 27 November 2018

Лучшие редакторы кода для PHP разработчиков, часть 2.

Всем привет.

Продолжим наш обзор редакторов кода для PHP разработчиков. В первой части обзора были Sublime Text и Atom. Сегодня затронем Rapid PHP, PHPStorm и CodeLobster.



Rapid PHP

Rapid PHP - признанный редактор PHP с расширенной функциональностью, это позволяет называть его легковесной IDE.

Включает весь набор компонентов для написания скриптов на PHP и JavaScript, а также для использования HTML и CSS.

Есть несколько полезных особенностей для того, чтобы облегчить старт программистам-новичкам, например, привычный пользовательский интерфейс, отсутствие лишних элементов управления и встроенный PHP-интерпретатор.

Сразу после запуска программы предлагается минималистичный пользовательский интерфейс, далее в процессе работы можно скрывать и показывать все открытые панели нажатием одной клавиши F4.

Модернизированный редактор с проверкой синтаксиса PHP, вставкой фрагментов, подсветкой вхождений и высокой производительностью при открытии больших файлов.

Есть удобная функция "Go to anything", позволяющая по нажатию Ctrl + G произвести быстрый поиск и перейти к любому участку кода или файлу в проекте.

Много полезных возможностей можно ещё добавить в редактор установив дополнительные плагины. Чтобы просмотреть список доступных расширений, выберите в главном меню опцию "Plugins" -> "Manage Plugins".

Работа с кодом: расширенные возможности по редактированию PHP файлов, в том числе интегрированная документация и подсказки по функциям.



Например, чтобы получить подсказку по параметрам функции, достаточно ввести её имя и нажать комбинацию клавиш Ctrl + Shift + Space.

Saturday, 24 November 2018

Лучшие редакторы кода для PHP разработчиков, часть 1.

Всем привет.

Web-кодировщики проводят массу времени в своих редакторах и IDE, поэтому и к выбору программного обеспечения относятся чрезвычайно серьёзно.

Как минимум, среда программирования должна обеспечить проверку синтаксиса и коррекцию кода, автодополнение и автозавершение - всё то, что называется "code intelligence".

Следует принимать во внимание и целый комплекс используемых технологий - HTML, CSS, JavaScript, PHP, а так же распределённый характер любого WEB-приложения.

PHP - это серверный язык программирования и в большинстве случаев скрипты пишутся на одном компьютере, а выполняются на другом - в среде хостинговой операционной системы.

Серверная часть любого сайта также может включать огромное количество SQL-запросов и интенсивно взаимодействовать с базами данных.

Если вы решили выйти за пределы хобби-проектов и программировать профессионально, то критически важно, чтобы ваша программа, кроме продвинутых возможностей редактирования, поддерживала ещё и FTP протокол, понимала синтаксис SQL и предоставляла интерфейс для подключения к базам данных.

Давайте рассмотрим, как популярные редакторы кода и IDE реализуют такие важные для PHP разработчиков функции.

Сегодня будет первая часть обзора где померяем возможности знаменитого Sublime Text и Atom. Поехали.

Sublime Text

Sublime Text - этот редактор представляет отличный пример сбалансированной функциональности и скорости, наряду с нетребовательностью к ресурсам.

Последняя версия работает эффективно и быстро, так же уменьшилось количество используемой оперативной памяти. Работает на Windows, Linux и OS X, для Windows также есть портабельная версия. 

Версия на печать

Популярное