السبت، 13 أكتوبر 2012

حل مشكلة الملفات المخفية في الفلاش المصابة بفيروس

بسم الله الرحمن الرحيم

تقوم معظم فيروسات التي تصيب الفلاش (Flash drive) بأخفاء الملفات و وضع أختصارات لتشغيل الفيروس عند عرض الملف .

و لقد واجهت هذه المشكلة لدى عدد من المدرسين في مدرستي و تكررت لدى كثير منهم , لذاسوف يكون هذا الموضوع عن حل هذه المشكلة , طبعا بعد إزالة الفيروس بأستخدام برنامج الحماية ( أو أقرأ هذا المقال ) .

الأحد، 7 أكتوبر 2012

برمجة sniffer بواسطة البايثون (الجزء الثالث )

بسم الله الرحمن الرحيم

هذا رابط الجزء الثاني , و الجزء الأول و سيكون الجزء الثالث من هذه السلسة هو الدرس الأخير في كيفية برمجة sniffer بسيط بواسطة لغة بايثون .

و في هذا الدرس سوف نعتمد على المكتبة القياسية struct التي تستخدم لترميز البيانات الثنائية , و يتواجد على هذا الرابط شرح مبسط لهذه المكتبة .

 و هذا النص البرمجي الكامل لبرنامج sniffer بسيط :

#!/usr/bin/python

import socket

import struct



def packet_ip(data):

    ip_header=data[:20]

    iph=struct.unpack('!BBHHHBBH4s4s',ip_header)

    version_ihl=iph[0]

    version=version_ihl>>4

    ihl=version_ihl & 0xf0

    tos=iph[1]

    Tlength=iph[2]

    ID=iph[3]

    Flage=iph[4] >> 13

    offset=iph[4] & 0xe

    ttl=iph[5]

    protocol=iph[6]

    s_addr=socket.inet_ntoa(iph[8])

    d_addr=socket.inet_ntoa(iph[9])

    print """

Version : %s

IP Header Length : %s

TOS: %s

Total length : %s

Identification : %s

Flags : %s

Fragment offset : %s

TTL : %s

Protocol : %s

Destintation Address: %s

Soruce Address : %s

"""
% (str(version),str(ihl),str(tos),str(Tlength),str(ID),str(Flage),str(offset),str(ttl),str(protocol),str(s_addr),str(d_addr))



sos=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)

while 1:

    data=sos.recv(10245)

    packet_ip(data)

طبعاً على النص البرمجي للتوضيح و إيصال الفكرة فقط , و إذا إردت تطوير هذا النص يجب بأن تصمم class يحتوي على وظائف برمجية لأستخلاص كل قيمة في حزمة برتوكول IP .