﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>http://wiki.occc.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.146.11.35</id>
	<title>OCCC Wiki - مشارکت‌های کاربر [fa]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.occc.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.146.11.35"/>
	<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%D9%88%DB%8C%DA%98%D9%87:%D9%85%D8%B4%D8%A7%D8%B1%DA%A9%D8%AA%E2%80%8C%D9%87%D8%A7/2.146.11.35"/>
	<updated>2026-06-10T16:40:14Z</updated>
	<subtitle>مشارکت‌های کاربر</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=Scapy&amp;diff=13923</id>
		<title>Scapy</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=Scapy&amp;diff=13923"/>
		<updated>2016-02-05T10:02:29Z</updated>

		<summary type="html">&lt;p&gt;2.146.11.35: /* مراجع */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[پرونده:Network layers model.jpg|بندانگشتی|چپ|مدل های لایه بندی شبکه]]&lt;br /&gt;
&lt;br /&gt;
اسکپی (Scapy) ابزاری متن باز و تحت زبان برنامه نویسی [[پایتون]] است که به کمک آن میتوان فعالیت هایی را در زمینه کار با بسته (Packet) های موجود در شبکه های کامپیوتری نظیر ایجاد بسته ، مشاهده و ثبت بسته های شبکه، تغییر و ارسال بسته ها در شبکه را انجام داد.&lt;br /&gt;
&lt;br /&gt;
آشنایی با لایه های شبکه برای کار با این ابزار ضروری است. مدل های لایه ای شبکه در تصویر مقابل نشان داده شده است. برای اطلاعات بیشتر میتوانید به [http://www.tamos.net/~rhay/overhead/ip-packet-overhead.htm] یا [http://en.wikipedia.org/wiki/Internet_protocol_suite] مراجعه نمایید.&lt;br /&gt;
&lt;br /&gt;
== ساختار یک بسته ==&lt;br /&gt;
در شکل زیر ساختار لایه بندی یک بسته در شبکه نشان داده شده است.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Pkt-layers.png|ساختار بسته در شبکه]]&lt;br /&gt;
&lt;br /&gt;
== شروع کار با اسکپی ==&lt;br /&gt;
برای مشاهده لیست دستورات اسکپی در حالت تعاملی دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 lsc() &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
لیست این دستورات بصورت زیر است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lsc()&lt;br /&gt;
arpcachepoison      : Poison target's cache with (your MAC,victim's IP) couple&lt;br /&gt;
arping              : Send ARP who-has requests to determine which hosts are up&lt;br /&gt;
bind_layers         : Bind 2 layers on some specific fields' values&lt;br /&gt;
corrupt_bits        : Flip a given percentage or number of bits from a string&lt;br /&gt;
corrupt_bytes       : Corrupt a given percentage or number of bytes from a string&lt;br /&gt;
defrag              : defrag(plist) -&amp;gt; ([not fragmented], [defragmented],&lt;br /&gt;
defragment          : defrag(plist) -&amp;gt; plist defragmented as much as possible &lt;br /&gt;
dyndns_add          : Send a DNS add message to a nameserver for &amp;quot;name&amp;quot; to have a new &amp;quot;rdata&amp;quot;&lt;br /&gt;
dyndns_del          : Send a DNS delete message to a nameserver for &amp;quot;name&amp;quot;&lt;br /&gt;
etherleak           : Exploit Etherleak flaw&lt;br /&gt;
fragment            : Fragment a big IP datagram&lt;br /&gt;
fuzz                : Transform a layer into a fuzzy layer by replacing some default values by random objects&lt;br /&gt;
getmacbyip          : Return MAC address corresponding to a given IP address&lt;br /&gt;
hexdiff             : Show differences between 2 binary strings&lt;br /&gt;
hexdump             : --&lt;br /&gt;
hexedit             : --&lt;br /&gt;
is_promisc          : Try to guess if target is in Promisc mode. The target is provided by its ip.&lt;br /&gt;
linehexdump         : --&lt;br /&gt;
ls                  : List  available layers, or infos on a given layer&lt;br /&gt;
promiscping         : Send ARP who-has requests to determine which hosts are in promiscuous mode&lt;br /&gt;
rdpcap              : Read a pcap file and return a packet list&lt;br /&gt;
send                : Send packets at layer 3&lt;br /&gt;
sendp               : Send packets at layer 2&lt;br /&gt;
sendpfast           : Send packets at layer 2 using tcpreplay for performance&lt;br /&gt;
sniff               : Sniff packets&lt;br /&gt;
split_layers        : Split 2 layers previously bound&lt;br /&gt;
sr                  : Send and receive packets at layer 3&lt;br /&gt;
sr1                 : Send packets at layer 3 and return only the first answer&lt;br /&gt;
srbt                : send and receive using a bluetooth socket&lt;br /&gt;
srbt1               : send and receive 1 packet using a bluetooth socket&lt;br /&gt;
srflood             : Flood and receive packets at layer 3&lt;br /&gt;
srloop              : Send a packet at layer 3 in loop and print the answer each time&lt;br /&gt;
srp                 : Send and receive packets at layer 2&lt;br /&gt;
srp1                : Send and receive packets at layer 2 and return only the first answer&lt;br /&gt;
srpflood            : Flood and receive packets at layer 2&lt;br /&gt;
srploop             : Send a packet at layer 2 in loop and print the answer each time&lt;br /&gt;
traceroute          : Instant TCP traceroute&lt;br /&gt;
tshark              : Sniff packets and print them calling pkt.show(), a bit like text wireshark&lt;br /&gt;
wireshark           : Run wireshark on a list of packets&lt;br /&gt;
wrpcap              : Write a list of packets to a pcap file&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای مشاهده لیست پروتکل هایی که در اسکپی پشتیبانی می شود دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 ls() &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همچنین می توانید لیست پروتکل ها را به تفکیک لایه مورد نظر مشاهده نمایید که دستور زیر را برای نمونه وارد کنید:&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 ls(IP) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
لیست این پروتکل ها بصورت زیر است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 version    : BitField             = (4)&lt;br /&gt;
ihl        : BitField             = (None)&lt;br /&gt;
tos        : XByteField           = (0)&lt;br /&gt;
len        : ShortField           = (None)&lt;br /&gt;
id         : ShortField           = (1)&lt;br /&gt;
flags      : FlagsField           = (0)&lt;br /&gt;
frag       : BitField             = (0)&lt;br /&gt;
ttl        : ByteField            = (64)&lt;br /&gt;
proto      : ByteEnumField        = (0)&lt;br /&gt;
chksum     : XShortField          = (None)&lt;br /&gt;
src        : Emph                 = (None)&lt;br /&gt;
dst        : Emph                 = ('127.0.0.1')&lt;br /&gt;
options    : PacketListField      = ([])&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای شروع، جهت دریافت یک نمونه بسته از روی کارت شبکه دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 pkts = sniff(count=100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای مشاهده پیش نمایشی از بسته های دریافت شده، دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 pkts.show()&lt;br /&gt;
&lt;br /&gt;
یا&lt;br /&gt;
&lt;br /&gt;
 print pkts&lt;br /&gt;
&lt;br /&gt;
یا&lt;br /&gt;
&lt;br /&gt;
 hexdump(pkts)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای مشاهده آمار بسته های دریافت شده از نظر پروتکلی دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
 pkts.summary&lt;br /&gt;
&lt;br /&gt;
یا &lt;br /&gt;
&lt;br /&gt;
 pkts&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== کار با یک بسته ==&lt;br /&gt;
&lt;br /&gt;
برای مشاهده یک بسته، میتوانید اندیس یا شماره بسته مورد نظر را بصورت زیر وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
pkts[10]&lt;br /&gt;
&lt;br /&gt;
یا نمایش بصورت هگز &lt;br /&gt;
&lt;br /&gt;
hexdump(pkts[10])&lt;br /&gt;
&lt;br /&gt;
یا نمایش بصورت اسکی&lt;br /&gt;
&lt;br /&gt;
print pkts[10]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای مشاهده اطلاعات خلاصه ای درباره یک بسته، دستور زیر را وارد کنید:&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
pkts[10].summary()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای مشاهده '''ساختار کامل یک بسته بصورت سلسله مراتبی''' دستور زیر را وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
pkts[10].show()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-01-scapy-introduction-and-overview/ مروری بر  قابلیت های اسکپی]&lt;br /&gt;
*‌ [http://thepacketgeek.com/series/building-network-tools-with-scapy/ نصب پایتون و اسکپی]&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-03-scapy-interactive-mode/ کار با اسکپی در حالت تعاملی]&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-04-looking-at-packets/ مشاهده داخل یک بسته]&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-05-sending-our-first-packet-arp-response/ ارسال یک بسته نمونه (بسته ARP)]&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-06-sending-and-receiving-with-scapy/ ارسال و دریافت بسته با اسکپی]&lt;br /&gt;
* [http://thepacketgeek.com/scapy-p-07-monitoring-arp/ مشاهده بسته های ARP]&lt;br /&gt;
* http://www.secdev.org/projects/scapy/doc/usage.html&lt;br /&gt;
* http://doc.scrapy.org/en/latest/topics/request-response.html&lt;br /&gt;
* http://www.scmdt.mmu.ac.uk/blossom/downloads/byDoing/PythonScriptingwithScapyLab.pdf&lt;br /&gt;
&lt;br /&gt;
* [http://packetlife.net/media/library/36/scapy.pdf Visiopscapy]&lt;br /&gt;
* [http://www.secdev.org/conf/scapy_hack.lu.pdf Presentation]&lt;br /&gt;
* [https://coderwall.com/p/2es5jw/docker-cheat-sheet-with-examples  Docker Cheat Sheet with examples ]&lt;br /&gt;
* [http://www.secdev.org/projects/scapy/build_your_own_tools.html ساخت چند ابزار کاربردی شبکه: پینگ، مانیتورینگ]&lt;/div&gt;</summary>
		<author><name>2.146.11.35</name></author>
	</entry>
</feed>