Мониторинг работы TaskSequence в SCCM Сергей Болдин select SMS_StatusMessage.*, SMS_StatMsgInsStrings.*, SMS_StatMsgAttributes.*, SMS_StatMsgAttributes.AttributeTime from SMS_StatusMessage left join SMS_StatMsgInsStrings on SMS_StatMsgInsStrings.RecordID = SMS_StatusMessage.RecordID left join SMS_StatMsgAttributes on SMS_StatMsgAttributes.RecordID = SMS_StatusMessage.RecordID where SMS_StatMsgAttributes.AttributeID = 401 and SMS_StatMsgAttributes.AttributeValue = "DDM0005E" and SMS_StatMsgAttributes.AttributeTime >= ##PRM:SMS_StatMsgAttributes.AttributeTime## order by SMS_StatMsgAttributes.AttributeTime DESC ----------------------------------------------------------------------------------------- Большой сетевой вопрос для малого бизнеса. Постановка задачи и тестирование решения Алексей Бережной show run configure terminal ----------------------------------------------------------------------------------------- Автоматизация работы в интернете, или Как «легально» спамить. Часть 2. Авторегистрация Сергей Болдин {-Profile.Login-}@yandex.ru---{-Profile.Password-} {-Variable.num_id-} {-Profile.Login-}@mail.ru---{-Profile.Password-} Aktywuj konto (?<=href=")https://www\.olx\.pl/konto/confirm/\?email=.*(?=style=") ----------------------------------------------------------------------------------------- Построение регулярных выражений с помощью синтаксических диаграмм. Часть 2 Владимир Царьков #!/usr/bin/perl print "Результаты поиска телефонных номеров в тексте:\n"; while(<>){ foreach $phone (m/([1-9]\d\d-\d\d\d) |([1-9]\d-\d\d-\d\d) |([1-9]\d\d\d\d\d) |([1-9]\d\s\d\d\s\d\d)/g){ if(defined($phone)){ print "\t$phone\n"; } } } ./ИМЯ_ФАЙЛА.pl ИМЯ_ТЕКСТОВОГО_ФАЙЛА chmod 0755 ИМЯ_ФАЙЛА.pl #!/usr/bin/perl print "Результаты поиска:\n"; $i=0; $j=0; while(<>){ foreach $phone (m/(<(p)(\s+)(class="[aA-zZ]+")>(.+)(<\/p>))/g){ if(defined($phone)){ $line1[$i] = $1."\n"; $i++; } } foreach $phone (m/(<(p)(\s+)(class="[aA-zZ]+")>(<\/p>))/g){ if(defined($phone)){ $line2[$j] = $1."\n"; $j++; } } } sub uniqum{ my %duplicate = (); my @uniqReturn = (); foreach $line (@_){ if ($duplicate{$line} == 0){ push(@uniqReturn, $line); $duplicate{$line} = 1; } } return @uniqReturn; } print uniqum(@line1), uniqum(@line2); ----------------------------------------------------------------------------------------- Генерируемая ASCII-графика в 1С Кирилл Ткаченко ЦветЯчейки ← Если ПринадлежитКругу(x,y,x04,y04,R4) Тогда ЧЕРНЫЙ ИначеЕсли ПринадлежитКругу(x,y,x05,y05,R5) Тогда БЕЛЫЙ ИначеЕсли ПринадлежитКругу(x,y,x01,y01,R1) Тогда Если ПринадлежитКругу(x,y,x02,y02,R2) Тогда БЕЛЫЙ ИначеЕсли ПринадлежитКругу(x,y,x03,y03,R3) Тогда ЧЕРНЫЙ ИначеЕсли x<0 Тогда БЕЛЫЙ Иначе ЧЕРНЫЙ КонецЕсли Иначе ПУСТО КонецЕсли ЦветЯчейки ← Если ПринадлежитКругу(x,y,0,yI,RII) Тогда ЧЕРНЫЙ ИначеЕсли ПринадлежитКругу(x,y,0,yI,RII) Тогда БЕЛЫЙ ИначеЕсли ПринадлежитКругу(x,y,0,0,R) Тогда Если ПринадлежитКругу(x,y,0,yI,RI) Тогда БЕЛЫЙ ИначеЕсли ПринадлежитКругу(x,y,0,yI,RI) Тогда ЧЕРНЫЙ ИначеЕсли x<0 Тогда БЕЛЫЙ Иначе ЧЕРНЫЙ КонецЕсли Иначе ПУСТО КонецЕсли Функция КвадратЧисла(x) Возврат x * x; КонецФункции Функция ПринадлежитКругу(x, y, x0, y0, Радиус) Возврат КвадратЧисла(x – x0) + КвадратЧисла(y – y0) <= КвадратЧисла(Радиус); КонецФункции Функция ИньЯн(Радиус) Перем ЦВЕТ_БЕЛЫЙ, ЦВЕТ_ЧЕРНЫЙ, ЦВЕТ_ПУСТО; Перем x, y; Перем РадI, РадII; Перем yI, yII; Перем x2; Перем Рез; ЦВЕТ_БЕЛЫЙ = "."; ЦВЕТ_ЧЕРНЫЙ = "o"; ЦВЕТ_ПУСТО = " "; РадI = Цел(Радиус / 2); РадII = Цел(Радиус / 6); yI = -РадI; yII = РадI; Рез = ""; Для y = -Радиус По Радиус Цикл Для x = -2 * Радиус По 2 * Радиус Цикл x2 = Цел(x / 2); Если ПринадлежитКругу(x2, y, 0, yI, РадII) Тогда Рез = Рез + ЦВЕТ_ЧЕРНЫЙ; ИначеЕсли ПринадлежитКругу(x2, y, 0, yII, РадII) Тогда Рез = Рез + ЦВЕТ_БЕЛЫЙ; ИначеЕсли ПринадлежитКругу(x2, y, 0, 0, Радиус) Тогда Если ПринадлежитКругу(x2, y, 0, yI, РадI) Тогда Рез = Рез + ЦВЕТ_БЕЛЫЙ; ИначеЕсли ПринадлежитКругу(x2, y, 0, yII, РадI) Тогда Рез = Рез + ЦВЕТ_ЧЕРНЫЙ; ИначеЕсли x < 0 Тогда Рез = Рез + ЦВЕТ_БЕЛЫЙ; Иначе Рез = Рез + ЦВЕТ_ЧЕРНЫЙ; КонецЕсли; Иначе Рез = Рез + ЦВЕТ_ПУСТО; КонецЕсли; КонецЦикла; Рез = Рез + "" ""; КонецЦикла; Возврат Рез; КонецФункции Сообщить(ИньЯн(8)); Сообщить(ИньЯн(16)); ----------------------------------------------------------------------------------------- Энигмоподобная система на школьном алгоритмическом языке Кирилл Ткаченко лит Алфавит = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; цел МаксНомерКолеса = 6; цел МаксНомерСимвола = 32; цел СемяГПСЧ = 0; алг Энигма нач цел таб Ротор[0 : МаксНомерКолеса, 0 : МаксНомерСимвола]; цел МойКлюч; лит СтрокаИсходная; лит СтрокаЗашифрованная; лит СтрокаРасшифрованная; цел i, j, k, l; МойКлюч := 1; СтрокаИсходная := "ААААААААМАМАМЫЛАРАМУАААААААА"; СтрокаЗашифрованная := ""; СтрокаРасшифрованная := ""; НовыйРотор(МойКлюч, Ротор); нц для i от 1 до длин(СтрокаИсходная) k := АлфавитНомер(СтрокаИсходная[i]); нц для j от 0 до МаксНомерКолеса k := Ротор[j, k]; кц СтрокаЗашифрованная := СтрокаЗашифрованная + Алфавит[k + 1]; Поворот(Ротор); кц НовыйРотор(МойКлюч, Ротор); нц для i от 1 до длин(СтрокаЗашифрованная) k := АлфавитНомер(СтрокаЗашифрованная[i]); нц для j от МаксНомерКолеса до 0 шаг -1 нц для l от 0 до МаксНомерСимвола если Ротор[j, l] = k то k := l; выход все кц кц СтрокаРасшифрованная := СтрокаРасшифрованная + Алфавит[k + 1]; Поворот(Ротор); кц вывод СтрокаИсходная, нс; вывод СтрокаЗашифрованная, нс; вывод СтрокаРасшифрованная, нс; кон алг НовыйРотор(цел МойКлюч, рез цел таб Ротор[0 : МаксНомерКолеса, 0 : МаксНомерСимвола]) нач цел i, j; цел t1, t2; СемяГПСЧ := МойКлюч; нц для i от 0 до МаксНомерКолеса нц для j от 0 до МаксНомерСимвола Ротор[i, j] := j; кц нц для j от 0 до МаксНомерСимвола t1 := int(ГПСЧ * МаксНомерСимвола); t2 := Ротор[i, j]; Ротор[i, j] := Ротор[i, t1]; Ротор[i, t1] := t2; кц кц кон алг Поворот(аргрез цел таб Ротор[0 : МаксНомерКолеса, 0 : МаксНомерСимвола]) нач цел i, j, t; нц для i от 0 до МаксНомерКолеса t := Ротор[i, 0]; нц для j от 1 до МаксНомерСимвола Ротор[i, j - 1] := Ротор[i, j]; кц Ротор[i, МаксНомерСимвола] := t; кц кон алг вещ ГПСЧ нач СемяГПСЧ := mod(106 * СемяГПСЧ + 1283, 6075); знач := СемяГПСЧ / 6075.0; кон алг цел АлфавитНомер(сим а) нач цел k, l; k := 0; нц для l от 0 до МаксНомерСимвола если Алфавит[l + 1] = а то k := l; выход все кц знач := k; кон ----------------------------------------------------------------------------------------- Комплекс для анализа сетевого трафика Александр Романенков WSADATA wsadata; WSAStartup(MAKEWORD(2, 2), &wsadata); SOCKET s = socket(AF_INET, SOCK_RAW, IPPROTO_IP); CHAR szHostName[16]; gethostname(szHostName, sizeof szHostName); HOSTENT *phe = gethostbyname(szHostName); SOCKADDR_IN sa; ZeroMemory(&sa, sizeof sa); sa.sin_family = AF_INET; sa.sin_addr.s_addr = ((struct in_addr*)phe->h_addr_list[0])->s_addr; bind(s, (SOCKADDR*)&sa, sizeof SOCKADDR); DWORD flag = TRUE; ioctlsocket(s, SIO_RCVALL, &flag); case IDC_BUTTON_START: CHAR szFileName[_MAX_FNAME]; GetDlgItemText(hwndDlg, IDC_EDIT_LOG_FILENAME, szFileName, _MAX_FNAME); hLogFile = CreateFile(szFileName, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, 0, 0); if (hLogFile == INVALID_HANDLE_VALUE) { //… } else { //… SetFilePointer(hLogFile, 0, NULL, FILE_END); //… //Связываем событие FD_READ с окном WSAAsyncSelect(s, hwndDlg, WM_RECV, FD_READ); //… } break; #define WM_RECV (WM_USER + 1) case WM_RECV: if (WSAGETSELECTEVENT(lParam) == FD_READ) { CHAR btBuffer[65536]; //Получаем входящие данные if (recv(s, btBuffer, sizeof(btBuffer), 0) >= sizeof(IPHeader)) { IPHeader* hdr = (IPHeader*)btBuffer; //определяем размер, в сети используется обратный порядок байт //если не обратный, то придется поменять байты местами. WORD size = (hdr->iph_length << 8) + (hdr->iph_length >> 8); if (size >= 60 && size <= 1500) { //Проверяем протокол if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_PROTO_ALL) != TRUE) { if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_PROTO_IP) == TRUE && hdr->iph_protocol == IPPROTO_IP) { //Функция обработки сообщений диалогового окна INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HANDLE hLogFile; static SOCKET s; static HWND hStartButton; static HWND hStopButton; static HWND hIDC_CHECK_PROTO_IPWnd; static HWND hIDC_CHECK_PROTO_ICMPWnd; static HWND hIDC_CHECK_PROTO_IGMPWnd; static HWND hIDC_CHECK_PROTO_GGPWnd; static HWND hIDC_CHECK_PROTO_TCPWnd; static HWND hIDC_CHECK_PROTO_PUPWnd; static HWND hIDC_CHECK_PROTO_UDPWnd; static HWND hIDC_CHECK_PROTO_IDPWnd; static HWND hIDC_CHECK_PROTO_IPv6Wnd; static HWND hIDC_CHECK_PROTO_NDWnd; static HWND hIDC_CHECK_PROTO_ICLFXBMWnd; static HWND hIDC_CHECK_PROTO_ICMPv6Wnd; static HWND hIDC_CHECK_PROTO_ALLWnd; static HWND hIDC_CHECK_OPTION_LOG_TARGET_IPWnd; static HWND hIDC_CHECK_OPTION_LOG_SENDER_IPWnd; static HWND hIDC_CHECK_OPTION_WRITE_PROTO_NAMEWnd; static HWND hIDC_CHECK_OPTION_WRITE_PACKET_LENWnd; //Устанавливаем текущую директорию CHAR szCurDir[MAX_PATH]; GetModuleFileName(NULL, szCurDir, MAX_PATH); *strrchr(szCurDir, '\\') = 0; SetCurrentDirectory(szCurDir); if (IsCurrentUserAdmin() == FALSE) { MessageBox(0, "У Вас нет прав администратора. Вы не сможете включить promiscuous mode.", "sniff", MB_ICONEXCLAMATION); } //Создаем главное окно программы if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc) != 0) { MessageBox(0, "Не удается создать главное окно сниффера.", "sniff", MB_ICONERROR); return 0; } return 0; } -----------------------------------------------------------------------------------------