اپلیکیشن Native Keyboard ابزاری برای ، افزودن کیبورد فارسی به ویندوز فون 7 است ، این ابزار دارای مشکلات متعددی همچون عدم پشتیبانی از رام های سری Deepshining و گوشی های نوکیا است و نیز تمامی کاراکتر ها در یک صفحه جا سازی نشده اند و برای استفاده از برخی کاراکتر ها بایستی به بخش دوم سوئیچ کرد.
برای حل این مشکل یک برنامه کوچک تدارک دیده ام که اکثر مشکلات Native Keyboard را رفع میکنه و درتمامی رام ها و گوشی های ویندوز فون سری 7 به درستی عمل میکنه.
دانلود در ادامه مطلب
طی هشت پست گذشته به معرفی و آموزش استفاده از کتابخانه قدرتمند Pcap.Net پرداختیم.در این پست تمامی مطالب مربوط به Pcap.Net را بصورت یک فایل PDF برای دانلود در اختیار علاقه مندان قرار می دهم. امیدوارم بهره لازم را ببرید.
حجم : 892 کیلوبایت
ارسال پاکت ها
هرچند که نام Pcap.Net هدف آن را ضبط پاکت ها معرفی می کند سایر ویژگی های سودمند برای شبکه سازی اولیه نیز در آن تدارک دیده شده است.از جمله آنها وجود مجموعه ی کاملی از توابع برای ارسال پاکت هاست.
نکته: کتابخانه اصلی Libpcap امکانی برای ارسال پاکت ها تدارک ندیده است.از اینرو تمامی توابع نشان داده شده در اینجا از ملحقات Pcap.Net مبتنی بر Wincap است و تحت Unix کار نخواهد کرد.
ارسال بسته تکی با استفاده از SendPacket()
ساده ترین روش ارسال پاکت ها در کد بعدی نشان داده شده است.پس از باز کردن آداپتور SendPacket() برای ارسال پاکت دست ساز فراخوانی شده است.SendPacket() پاکت شامل داده را به عنوان پارامتر می گیرد تا آن را ارسال کند.توجه داشته باشید پاکت به همان شکلی که هست به شبکه ارسال می شود ، بدون هیچ گونه دستکاری ای.این بدین معنا است که برنامه مجبور است برای ارسال چیزی معنی دار سرآیند های پروتکل را به صورت صحیح و به ترتیب ایجاد کند.
ذخیره پاکت ها درون فایل رونوشت
پیش از هرکاری بیایید ببینیم چگونه می توان پاکت ها را در فرمت Libcap نوشت.مثال بعدی پاکت ها را از واسط تعیین شده می خواند و آنها را درون یک فایل می نویسد، نام فایل را کاربر تعیین می کند.
using System;
using System.Collections.Generic;
using PcapDotNet.Core;
namespace SavingPacketsToADumpFile
{
class Program
{
static void Main(string[] args)
{
// Check command line
if (args.Length != 1)
{
Console.WriteLine("usage: " + Environment.GetCommandLineArgs()[0] + " <filename>");
return;
}
// Retrieve the device list on the local machine
IList<LivePacketDevice> allDevices = LivePacketDevice.AllLocalMachine;
if (allDevices.Count == 0)
{
Console.WriteLine("No interfaces found! Make sure WinPcap is installed.");
return;
}
// Print the list
for (int i = 0; i != allDevices.Count; ++i)
{
LivePacketDevice device = allDevices[i];
Console.Write((i + 1) + ". " + device.Name);
if (device.Description != null)
Console.WriteLine(" (" + device.Description + ")");
else
Console.WriteLine(" (No description available)");
}
int deviceIndex = 0;
do
{
Console.WriteLine("Enter the interface number (1-" + allDevices.Count + "):");
string deviceIndexString = Console.ReadLine();
if (!int.TryParse(deviceIndexString, out deviceIndex) ||
deviceIndex < 1 || deviceIndex > allDevices.Count)
{
deviceIndex = 0;
}
} while (deviceIndex == 0);
// Take the selected adapter
PacketDevice selectedDevice = allDevices[deviceIndex - 1];
// Open the device
using (PacketCommunicator communicator =
selectedDevice.Open(65536, // portion of the packet to capture
// 65536 guarantees that the whole packet will be captured on all the link layers
PacketDeviceOpenAttributes.Promiscuous, // promiscuous mode
1000)) // read timeout
{
// Open the dump file
using (PacketDumpFile dumpFile = communicator.OpenDump(args[0]))
{
Console.WriteLine("Listening on " + selectedDevice.Description + "... Press Ctrl+C to stop...");
// start the capture
communicator.ReceivePackets(0, dumpFile.Dump);
}
}
}
}
}
تفسیر پاکت ها
حال که قادر به ضبط و فیلتر کردن ترافیک هستیم ، می خواهیم دانش خود را برای کار بر روی یک برنامه دنیای واقعی به کار ببندیم.
در این بخش از بخشی از کد های درس های قبل برای ساخت برنامه بسیار کاربردی تر بهره خواهیم گرفت ، هدف اصلی برنامه جاری نشان دادن تجزیه سرآیند پاکت دریافت شده و تفسیر آن است. برنامه خروجی UDPDump نامیده می شود و خلاصه ترافیک UDP شبکه را چاپ می کند.
ادامه مطلب ...