html

четверг, 29 марта 2012 г.

Ошибка Outlook. Ошибка сокета: 10054. Код ошибки: 0x800CCC0E

1. Ошибка при попытке передать почту на почтовый ящик. 
Описание ошибки
Ошибка Outlook. Ошибка сокета: 10054.
 Код ошибки: 0x800CCC0E
Ошибка при соединении с сервером. Учетная запись: 'КартинаM', Сервер: 'smtp.mail.ru', Протокол: SMTP, Порт: 25, Защита (SSL): Нет, Ошибка сокета: 10054, Код ошибки: 0x800CCC0E

1.1 Собрал файлы, описывающие ошибку сокета 10054  и другие ошибки Winsock. Также собрал файлы описывающие код ошибки 0x800CCC0E и другие почтовой программы Outlook. Все в одном файле - здесь: 10054-800CCC0E.rar или здесь : 10054-800CCC0E.rar

2.   Ошибка сокета: 10054
2.1 Вот что говорит Help  Microsoft Windows Sockets 2 Reference 

WSAECONNRESET      (10054)      Connection reset by peer.

A existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host used a "hard close" (see setsockopt for more information on the SO_LINGER option on the remote socket.)
 

2.2   Без описаний список  кодов всех ошибок WinSock  можно найти из файлов WinSock.pas и winsock.h 

2.3   Список кодов ошибок и краткое описание ошибок от Microsoft MSDN  Windows Sockets Error Codes и  от Microsoft Support   Windows sockets error codes, values, and meanings

2.4   На русском языке   Коды ошибок TCP/IP    описывают ошибку 10054 следующим образом :

10054   
WSAECONNRESET   Connection reset by peer (Соединение сброшено удаленной системой).

Существующее соединение принудительно закрыто удаленной стороной. Обычно это случается в случае неожиданного останова приложения на удаленной стороне, при перезагрузке удаленной машины, или в случае, когда удаленный хост использует "жесткое закрытие" ( setsockopt(SO_LINGER)) удаленного сокета.

2.5 По ссылке  Socket error 10054 when testing email alerts  описана ошибка и несколько возможных причин

This error happens when a connection is started (and working), but then closed by the other side of things before the SMTP conversation is completed


There are several common reasons:
  • The wrong SMTP server was specified (Edit -> Options, Email). Check your email client to see what it's using for an SMTP server, or talk to your system administratory.
  • There is a firewall or antivirus package running that's aborting the SMTP conversation. This might be something running on your machine (like Norton Antivirus), or some hardware firewall that does stateful inspection. If other software works, but PingPlotter/MultiPing does not, then it's probably local to your machine - something that is filtering by which application is sending data.
  • There might be something wrong with the SMTP server. Try using another email client and make sure the same SMTP server works with that.
2.6   По описанию ошибки сокета 10054   можно сделать предварительный вывод, что соединение начинает работать,  следовательно ,скорее всего,  с сетью проблем нет. Однако какие то проблемы с сервером 'smtp.mail.ru'  (в данном конкретном случае).Если ошибка не устраняется сама через некоторое время, то скорее всего, ошибка в настройках SMTP - сервера  Надо внимательно проверить настройки SMTP- сервера.


3. Код ошибки: 0x800CCC0E

3.1. Поддержка Microsoft  в описании  Коды ошибок Windows Mail и Windows Live Mail  говорит следующее :

0x800CCC0E     IXP_E_FAILED_TO_CONNECT       Не удается подключиться к серверу

3.2. В интернет документе   Коды ошибок электронной почты  приведены некоторые методы устранения  этой и некоторых других ошибок:

0x800CCC0E     FAILED_TO_CONNECT. Не удается подключиться к серверу


--Если Нортон Антивирус установлен, то возможно проблема в нем .

--Можете ли вы открыть веб-страницы? Если это так, то вы может просто неправильно ввели адрес почтового сервера  на учетной записи или сервер именно сейчас может быть недоступен.

--Если вы не можете открыть веб-страницы, то разорвите интернет соединение и попробуйте подключиться снова

--Перезагрузите компьютер и повторите попытку.

--Если он по-прежнему не работает, и вы не получаете любые веб-страницы, то данные могут передаваться через сеть надлежащим образом. Проверить настройки DNS, удалить и переустановить TCP / IP в Панель управления> Сеть (Control Panel > Network).

--Можно попробовать удалить кэш DNS командой ipconfig /flushdns (Пуск -> Все программы -> Стандартные -> Командная строка. Вести в командную строку ipconfig /flushdns)


--Эта ошибка может появиться, если у вас есть опция ‘уведомьте меня, если есть какие-нибудь новые группы новостей’ выбран, но не имеете созданной учетной записи новостей. Зайдите в меню Сервис> Свойства обозревателя> Общие TAB (TOOLS > OPTIONS > GENERAL TAB) и отключите эту опцию.


3.3 В описаниях ошибки сказано , что возможно вы неправильно ввели адрес сервера в учетной записи . Так что в совокупности ошибок сокета и Outlook –а , вероятнее всего какая то ошибка в настройках  сервера 'smtp.mail.ru'.


4. Причина ошибки.
--Оказалась в настройках сервера 'smtp.mail.ru'  Надо было заменить порт сервера на 587.Раньше стоял 25. Видимо, на mail.ru  решили отключить 25 порт, на котором работал сервер раньше
Правильная настройка

5. Повторю . Собрал файлы, описывающие ошибку сокета 10054  и другие ошибки Winsock. Также собрал файлы описывающие код ошибки 0x800CCC0E и другие почтовой программы Outlook. Все в одном файле - здесь: 10054-800CCC0E.rar  или здесь : 10054-800CCC0E.rar 

суббота, 24 марта 2012 г.

Программа для анализа PE файлов PE Tools

0. Скачать PE Tools версий   v1.5.400.2003 и  v1.5.800.2006 : PE Tools v1.5.rar

1.Общее описание программы.  

PE Tools - полезный набор инcтрументов для работы с PE/PE+ файлами. Включает  в себя: редактор PE файлов – PE Editor , Task Viewer, оптимизатор PE файлов - PE Rebuilder
,  детектор компилятора/упаковщика PE Sniffer  и  другие возможности.

Перечислим основные возможности программы PE Tools:

---- Task Viewer
Утилита Task Viewer
Утилита Task Viewer

  - Дампы процессов
    - Dump Full
    - Dump Partial
    - Dump Region
  - Автоматическое снятие защиты "Anti Dump Protection"
  - Загрузка процесса в PE Editor и PE Sniffer
  - Изменение приоритета процесса
  - Завершение работы процесса
 
---- PE Sniffer
Утилита PE Sniffer
Утилита PE Sniffer

  - Определение типа компилятора/упаковщика
  - Возможность обновления базы сигнатур
   
---- PE Editor
Утилита PE Editor
Утилита PE Editor
  - Редактирование  заголовков
  - Поддержка нового формата PE+(64bit)
  - Заполненик секции любыми символами (очистка секции)
  - Корректирование CRC
  - Просмотр и редактирование таблиц импорта/экспорта


---- PE Rebuilder
  - Оптимизация PE файла
  - Изменение базового адреса PE файла

---- Plug-ins Manager
Утилита Plug-ins Manager
Утилита Plug-ins Manager

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


пятница, 23 марта 2012 г.

Монитор ASUS VH192D

1.  Краткое руководство - инструкцию  к монитору ASUS VH192D  в том числе и на русском языке скачать можно здесь:  VH192-Manual-Quick Start Guide.pdf

Монитор ASUS VH192D
2. Базу знаний  на монитор ASUS VH192D, а также инструкции на другие модели ASUS можно найти на сайте производителя   http://support.asus.com/ServiceHome.aspx?SLanguage=en или здесь http://support.asus.com.tw/default.aspx?SLanguage=ru-ru

воскресенье, 11 марта 2012 г.

Программа для анализа PE файлов PE Explorer

0.Скачать PE Explorer rus 1.99 R6 :PE-Explorer-setup-1-99-R6.rar  или отсюда : PE-Explorer-setup-1-99-R6.rar
Окно программы PE Explorer
Окно программы PE Explorer

1.Общее описание программы.
PE Explorer - удобная программа для изучения, просмотра, редактирования и анализа внутреннего устройства исполняемых файлов. С помощью PE Explorer вы можете исследовать любые программы как те к которым у вас есть исходный код, так и приложения от сторонних разработчиков, к чьим исходным кодам у вас нет доступа. Сюда же относится изучение устройства вирусов, троянов и прочих вредоносных программ,где PE Explorer будет незаменимым помощником.

PE Explorer позволяет открывать, смотреть и редактировать 32-битные PE (Portable Executable) файлы для Windows любого типа: EXE, DLL и ActiveX, SCR (скринсейверы), CPL (Control Panel Applets), SYS, DRV, MSSTYLES, MUI, BPL, DPL, и многие другие. Поэтому рекомендуется PE Explorer rus скачать

2. Сайты программы:
http://www.heaventools.ru/  - на русском
http://www.heaventools.com/ - на английском

3. Журнал и папка проектов программы PE Explorer rus

3.1. Местонахождение журнала программы PE Explorer : Вид - Настройки - Журнал :
Установки журнала программы PE Explorer
Установки журнала программы PE Explorer

3.2. Местонахождение папки проектов программы PE Explorer :
Вид - Настройки- Главные. 

Посты по теме :

суббота, 10 марта 2012 г.

Принтер EPSON Stylus Photo R800

1. Драйвер на принтер EPSON Stylus Photo R800 для XP  и 2K версии 5.51  скачать можно здесь: EPSON-R800-XP-2K-5.51.rar . Язык драйвера русский.

Принтер EPSON Stylus Photo R800
Принтер EPSON Stylus Photo R800
2. Драйвера на принтер EPSON Stylus Photo R800 к другим операционным системам  можно найти на  сайте производителя  http://epson.ru/



Руководство по языку ESC/P
Руководство по языку ESC/P
3.  Полное руководство по языку ESC/P от фирмы EPSON  : EPSON-ESC-P.pdf 
  
ESC/P (Epson Standard Code for Printers) — это язык команд, разработанный EPSON, для управления принтерами. Используется при разработке драйверов. ESC/P используется в основном в матричных и  струйных принтерах. Во времена преобладания матричных принтеров ESC/P использовался и  другими производителями, не только EPSON. 

воскресенье, 4 марта 2012 г.

Антивирусные сигнатуры

1.  Анализ показывает, что подавляющее большинство антивирусов используют сигнатурный поиск с жесткой привязкой к точке входа или физическому смещению в файле. Что все это значит? Не вдаваясь в неразбериху терминологических тонкостей, отметим, что сигнатурой называется уникальная последовательность байт, однозначно идентифицирующая вирус. Сигнатура может быть как сплошной (например, "DE AD BE EF") или разряженной (например, " DE ?? ?? AD ?? BE ** EF", где знак "??" обозначает любой байт, а "**" любое количество байт в данной позиции). Поиск по разряженной антивирусной  сигнатуре иначе называется поиском по маске и это наиболее популярный алгоритм распознавания на сегодняшний день.
Для достижения приемлемой скорости сканирования, антивирусы практически никогда не анализируют весь файл целиком, ограничиваясь беглой проверкой одной-двух ключевых точек (например, окрестностей точки входа в файл, т. е. тех ячеек, с которых и начинается его выполнение). Реже используются привязка к смещению антивирусной сигнатуры относительно начала файла.


      Тут есть различные методики. Как вариант — использовать сигнатуру, составленную из N байт вредоносного объекта. При этом можно сделать не тупое сравнение, а сравнение по некоторой маске (типа искать байты EB ?? ?? CD 13). Или задавать дополнительные условия вроде «такие-то байты должны находиться у точки входа в программу» и так далее. Сигнатура именно малвари — это частность.
      Точно так же описываются некоторые признаки, по которым можно определить, что исполняемый файл упакован тем или иным криптором или упаковщиком (например, банальным ASPack). Если ты внимательно читаешь наш журнал, то точно слышал о такой тулзе как PEiD, способной определять наиболее часто используемые упаковщики, крипторы и компиляторы (в базе есть большое количество сигнатур) для переданного ей PE-файла. Увы, новые версии программы давно не выходят, а недавно на официальном сайте и вовсе появилось сообщение, что дальнейшего развития у проекта не будет. Жаль, потому что возможности PEiD (особенно учитывая систему плагинов) вполне могли оказаться мне полезными. После недолгого анализа все-таки стало ясно, что это не вариант. Но покопавшись в англоязычных блогах, я быстро нашел то, что мне подошло. Проект YARA (code.google.com/p/yara-project).


3. Для окончания  короткого обзора темы сигнатур можно предложить программу, помогающую найти сигнатуры для отдельных случаев.   Это программа  SignDetect версии 0.5.0.0  и 0.5.2.0. Скачать можно здесь:  SignDetect-05.rar. В архиве сами программы, некое подобие хелпа от автора,  рисунки с результатами проверки службой VirusTotal и главных окон программ. Смысл программы в затирании части файла исследуемой программы и проверки на срабатывание по сигнатуре.
Окно программы SignDetect 0.52
Окно программы SignDetect 0.52
                     

четверг, 1 марта 2012 г.

Динамический массив в Delphi

1. Динамические массивы в Delphi не имеют фиксированного размера . Чтобы объявить такой массив необходимо  записать:

var da_MyArray : array of integer;

Как  видим , мы просто говорим Delphi, что нам нужен одномерный массив типа Integer, а об его размере мы скажем  когда нибудь потом.

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

2. Для выделения памяти для динамического массива в Delphi используется процедура SetLength:

SetLength(da_MyArray,20);
 
После вызова этой процедуры будет выделена память для 20 элементов массива, которые будут проиндексированы от 0 до 19 (обратите внимание: индексирование начинается с нуля, а не с единицы!).
После этого можно работать с динамическим массивом- присваивать ему значения, производить с элементами различные вычисления, вывод на печать и т.д.
Например

   da_MyArray[0] :=  5 ;
   da_MyArray[9] :=  9 ;
   da_MyArray[1] :=  da_MyArray[0]+ da_MyArray[9] ;


3. Как только динамический массив был распределен, вы можете передавать массив стандартным функциям Length, High, Low и SizeOf Функция Length возвращает число элементов в динамическом массиве, High возвращает самый высокий индекс массива (то есть Length - 1), Low возвращает 0. В случае с массивом нулевой длины наблюдается интересная ситуация: High возвращает -1, а Low - 0, получается, что High  меньше  Low.  :) Функция SizeOf всегда возвращает 4 - длина в байтах  памяти указателя на динамический массив


   iHigh   := High (da_MyArray3);
   iLow    := Low  (da_MyArray3);
   iLength := Length (da_MyArray3);
   iSizeOf := SizeOf (da_MyArray3);

4. Доступ к данным динамических массивов с помощью низкоуровневых процедур типа ReadFile или WriteFile , или любых других подпрограмм, получающих доступ сразу ко всему массиву, часто выполняется неправильно. Для обычного массива (его часто называют также статическим массивом - в противоположность динамическому массиву) переменная массива тождественна его данным. Для динамического массива это не так - переменная  это указатель. Так что если вы хотите получить доступ к данным динамического массива - вы не должны использовать саму переменную массива, а использовать вместо неё первый элемент массива.

правильно
WriteFile(FHandle, da_MyArray02[0], Length(da_MyArray02), dwTemp, nil)


неправильно
WriteFile(FHandle, da_MyArray02, Length(da_MyArray02), dwTemp, nil)

5. Рассмотрим  пример присваивания динамических массивов одного другому
var
  da_A,da_B: array of integer;
begin
  SetLength(da_A,2);
  SetLength(da_B,2);
  da_A[0]:=2;
  da_B[0]:=3;
  da_A:=da_B;
  da_B[0]:=4;
end;

После этих манипуляций da_A[0] равно 4. Дело в том , что  при присвоении da_A:=da_B не происходит копирование т.к. da_A, da_B, это всего лишь указатели на область памяти. Для копирования необходимо использовать функцию Copy.

6.  Рассмотрим  пример копирования динамических массивов с использованием функции Copy

var
  da_A,da_B: array of integer;
begin
  SetLength(da_A,2);
  SetLength(da_B,2);
  da_A[0]:=2;
  da_B[0]:=3;
  da_A:=Copy (da_B);
  da_B[0]:=4;
end;

После этих манипуляций da_A[0] равно 3. После функции Copy da_A и da_B указывают на разные области памяти, поэтому при изменении da_B в da_A ничего не происходит и его значения остаются неизменными.

7. Динамические массивы (например, array of Integer) в Delphi в памяти расположены следующим образом. Библиотека runtime добавляет специальный код, который управляет доступом и присваиваниями. В участке памяти ниже адреса, на который указывает ссылка динамического массива, располагаются служебные данные массива: два поля - число выделенных элементов и счётчик ссылок (reference count).
Расположение динамического массива в памяти
Расположение динамического массива в памяти

Если, как на диаграмме выше, N - это адрес в переменной динамического массива, то счётчик ссылок массива лежит по адресу N - 8, а число выделенных элементов (указатель длины) лежит по адресу N - 4. Первый элемент массива (сами данные) лежит по адресу N.
Для каждой добавляемой ссылки (т.е. при присваивании, передаче как параметр в подпрограмму и т.п.) увеличивается счётчик ссылок, а для каждой удаляемой ссылки (т.е. когда переменная выходит из области видимости или при переприсваивании или присваивании nil) счётчик уменьшается.

8. Написал 2 программы, которые иллюстрируют теоретические сведения по динамическим массивам , приведенным в посте.
Окно программы примера 1
Окно программы примера 1

Окно программы примера 2
Окно программы примера 2

Скачать программы- примеры с исходными кодами  здесь : Dynamic-Array.rar

Использовались функции SetLength, High, Low, Length, SizeOf, OpenFile, WriteFile, SetFilePointer, ReadFile, CloseHandle, ShellExecute, IntToStr, IntToHex, Integer, Copy, Ptr

9. Полезные ссылки:

-- Работа с указателями
-- ReadFile & Array of Byte, Можно так делать и как правильно?
-- Динамические массивы 4 

  Посты по теме :