導航:首頁 > 程序命令 > tfa命令

tfa命令

發布時間:2024-03-02 04:30:31

① 發包長度大於1518的發包工具

三款常用IP發包工具介紹
SENDIP 可在各種UNIX 或LINUX 版本中運行,本人使用的是SLACKWARE 8.0 和
REDHAT 9.0 兩個版本。
可在網站http://www.earth.li/projectpurple/progs/sendip.html 中下載最新的源代碼或RPM
包,目前版本為2.5,源碼包大小隻有54K。
2.1.1. 安裝過程
SENDIP 的安裝過程非常簡單,首先從前面介紹的網站中下載最新的源代碼包,目前為
sendip-2.5.tar.gz。
在LINUX 系統中執行:
#tar –xzvf sendip-2.5.tar.gz
#cd sendip-2.5
#make
#make install
在系統的/usr/local/bin 目錄下會產生一個SENDIP 命令文件,同時,在/usr/local/lib 目錄
下建立一個sendip 目錄,並在其下放置ipv4.so、ipv6.so、tcp.so 等與協議相關的模塊文件。
通過在命令行下運行這個文件,我們可以產生各種各樣我們需要的IP 包,還可以通過運行
腳本自動發送大量的IP 包。
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第3 頁共14 頁
2.1.2. 發包方法
SENDIP 可以發送NTP, BGP, RIP, RIPng, TCP, UDP, ICMP、IPv4 和IPv6 等各種格式的
數據包,SENDIP 本身是以模塊的方式發送各種協議的數據包,用-p 參數指定協議類型,要
發送每種協議的數據包, 必須對該協議的數據包格式有一定的了解。通常發送
TCP/UDP/ICMP 數據包時,都必須以IP 包進行封裝,然後才可以發出去。本節我們將以TCP
數據包為例進行講述。
下面介紹一下SENDIP 的命令行格式,以下為直接執行SENDIP 時的輸出:
Usage: sendip [-v] [-d data] [-h] [-f datafile] [-p mole] [mole options] hostname
-d data add this data as a string to the end of the packet
Data can be:
rN to generate N random(ish) data bytes;
0x or 0X followed by hex digits;
0 followed by octal digits;
any other stream of bytes(以指定位元組的隨機數據填充包中的數據段)
-f datafile read packet data from file(以指定數據文件中的內容填充包中的數據段)
-h print this message(輸出幫助信息)
-p mole load the specified mole (see below)(指定協議類型)
-v be verbose(運行時輸出詳細運行信息,如不指定,運行時不輸出信息)
(協議類型是以模塊的方式指定的,用-p 參數指定)
Moles are loaded in the order the -p option appears. The headers from
each mole are put immediately inside the headers from the previos model in
the final packet. For example, to embed bgp inside tcp inside ipv4, do
sendip -p ipv4 -p tcp -p bgp ....
Moles available at compile time:
ipv4 ipv6 icmp tcp udp bgp rip ntp(支持的協議類型)
通常執行格式如下:
#sendip –v –d r64 –p ipv4 –iv 4 –ih 5 –il 128 –is 10.0.0.1 –id 30.0.0.1 –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1
-v:運行時輸出詳細運行信息,如不指定,運行時不輸出信息
–d r64:用64 位元組的隨機數值填充IP 包中的數據段
–p ipv4:指定協議類型為IP 協議(IP 協議有自己的相應參數,以i 開頭)
–iv 4:協議版本為4,即IPV4
–ih 5:指定IP 頭的長度為5×4=20 位元組
–il 128:指定IP 包的總長度為128 位元組
–is 10.0.0.1:指定IP 包的源地址
–id 30.0.0.1:指定IP 包的目的地址
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第4 頁共14 頁
–p tcp:指定IP 包中封裝的包的協議類型(TCP 協議有自己的相應參數,以t 開頭)
–ts 1379:指定TCP 包的源埠1379
–td 23:指定TCP 包的目的埠為23
-tt 8:指定TCP 包的偏移量即TCP 頭的長度,沒有TCP 選項時為5,即20 字
節,有TCP 選項時需要增加。
30.0.0.1:指定發包的目的主機
以上部分為利用SENDIP 發送一個簡單的TCP 數據包的方法,下面結合IP 和TCP 數據
包的格式詳細介紹IP 和TCP 協議的各種參數。
具體各種協議的數據包格式可參考TCP/IP 協議中對各種協議數據包格式的介紹,下面
我們只介紹IP 數據包的格式和TCP 數據包的格式:
IP 數據包的格式:
根據IP 數據包的格式,SENDIP 有如下命令行參數可以指定對應的IP 數據包中參數的
值。
Field name
Size
(bits)
SendIP
option
Description
Version 4 -iv Always 4(對應「4 位版本」,通常值為4,表示IPV4)
Header length 4 -ih
IP header length, measured in 32bit words, 5 if there are
no options(對應「4 位首部長度」,表示以32 位即4
位元組為單位的IP 首部長度,如果沒有IP 參數的話,
通常為5,表示首部長度為20 位元組,如有IP 參數的
話,需要調整該值)
Type of
Service/Differentiated
Services
8 -iy
服務類型(TOS)欄位由8 位組成,其中包括3 位的
優先權欄位(現已被忽略)、4 位的TOS 子欄位和1
位未用位但必須置0,4 位TOS 子欄位分別代表最小
時延、最大吞吐量、最高可靠性和最小費用。4 位只
能置其中1 位,使用時只要將設置相應位後運算出十
進制值即可。如要設置最大吞吐量位(00001000),只
需添加參數iy 8 即可。
Total Length 16 -il Total length of IP packet including header and data,
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第5 頁共14 頁
measured in octets(指定IP 包的總長度,包括IP 頭部
分和數據部分,以8 位位元組為單位,最長為65535)
Identification 16 -ii
Used to help reassembled fragmented packets(指定IP
包的標識號,用來幫助重新組裝分段的IP 包)
-ifr 1 bit: reserved, should be 0
-ifd 1 bit: don't fragment(可指定-ifd x,下可為0、1 或r) Flags 3
-ifm 1 bit: more fragmets(可指定-ifm x,下可為0、1 或r)
Fragment offset 13 -if
Where in the reconstructed datagram this fragment
belongs, measured in 64bit words starting from 0(以8
位元組長度為單位,指定段偏移量)
Time to Live 8 -it
Number of routers the packet can pass through before
being discarded(值的范圍從0 到255,指定TTL,表
示該包可通過的路由器的數目,用於防止包在循環路
徑上無休止地傳遞)
Protocol 8 -ip
Protocol associated with the data. See iana for an
uptodate list of assigned numbers(用於定義IP 包內部
封裝的上層協議的協議號,如TCP 為6,可在IANA
的網站上
http://www.iana.org/assignments/protocol-numbers
獲得最新的協議號表)
Header checksum 16 -ic
Checksum of the IP header data (with checksum set to
zero)(可指定IP 首部校驗和的值,通常由SENDIP 自
動生成,不指定該參數,除非要發出帶有錯誤校驗和
的包)
Source Address 32 -is Duhh...(源地址,以點分十進制方式表示)
Destination Address 32 -id Cabbage(目的地址,以點分十進制方式表示)
Options Variable -io...
No options are required. Any number can be added. See
below for details(定義各種IP 選項,如果定義了IP
選項,則前面的IP 頭的長度值要包括IP 選項的長度,
不帶IP 選項時,該值為20,帶IP 選項時,可設定該
值,如果要故意製造不匹配的包,可不符合規范。)
如果有IP 選項,還可指定IP 選項的值,SENDIP 支持的IP 選項如下表所示。
Name
SendIP
option
RFC Copy Class Number
Type
(see
above)
Length
(0 not
present)
Description
EOL -ioeol 791 0 0 0 0 0
Used as padding if needed
(使用該選項後,會自動在IP 頭
中未用到的位補0)
NOP -ionop 791 0 0 1 1 0
Do nothing. Often used as padding
so the next option starts on a 32 bit
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第6 頁共14 頁
boundary
RR -iorr 791 0 0 7 7 variable
Used to record the route of a
packet.(記錄包走過的每個路由
器, 通常用法是: -iorr
0f:ff.ff.ff.ff:10.0.0.234 –ioeol,其中
iorr 表示記錄路由,此時系統會自
動將IP 選項號置為07,0f 表示指
針,即記錄的最後一個IP 地址的
指針,系統會自動運算該IP 選項
的長度)
TS -iots 791 0 2 4 68 variable
Used to record the time at which a
packet was processed by an
intermediate system
LSR -iolsr 791 1 0 3 131 vairable
Loose Source Route - let the
source specify the route for a
packet.
SID -iosid 791 1 0 8 136 4
Rarely used, carries the SATNET
stream identifier.
SSR -iossr 791 1 0 9 137 variable
Strict Source Route - same as LSR,
but extra hops are not allowed.
SEC
791,
1108
1 0 2 130 variable Security, rarely used
E-SEC 1108 1 0 5 133 variable Extended Security, rarely used
通常在SENDIP 中指定IP 選項時,格式比較特別,下面我們以RR 記錄路由選項為例
介紹一下,如果要發送一個記錄三個IP 的數據包,需要考慮如下,一是指定IP 頭的長度要
包括IP 選項的長度,而是要指定RR 記錄路由選項的指針位置和IP 地址(本來是由系統自
動記錄IP 和更新指針位置,但現在必須手工指定),那麼記錄三個IP 包後,指針的位置應
是3+4×3+1=16,造好後,數據包的格式應該如下:
IP 頭07 15 16 10.0.0.234(IP1) 20.0.0.234(IP2) 30.0.0.234(IP3) 00(ioeol) tcp
20B RR len ptr 4bytes 4bytes 4bytes Ptr
具體命令行如下:
#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234
–ioeol –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1
-ih 10 表示IP 頭的長度為10×4 為40 個位元組,去除標準的20 個位元組長度,為IP
選項預留為20 個位元組
-iorr 10:10.0.0.234:20.0.0.234:30.0.0.234 中第一個10 表示用16 進製表示的指針的
位置,後面為用冒號分隔的三個用點分十進製表示的IP 地址
-ioeol 表示用00 結束IP 選項,並用隨機數填充後面未用的IP 頭位置
以上部分只是以RR 記錄路由IP 選項為例,介紹了sendip 中指定IP 選項的方法,當然
也可以根據自己的要求發送IP 選項不符合常規的數據包。其他的IP 選項與此雷同,但發送
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第7 頁共14 頁
前需要詳細了解IP 選項的格式,才可正確發送。
TCP 數據包的格式:
根據TCP 數據包的格式,SENDIP 有如下命令行參數可以指定對應的TCP 數據包中參
數的值。
Field name
Size
(bits)
SendIP
option
Description
Source port 16 -ts
Source port number for the connection
(以十進制的方式指定TCP 原埠)
Destination port 16 -td
Destination port number
(以十進制的方式指定TCP 目的埠)
Sequence number 32 -tn
Number of the first data octet in this packet. If SYN bit is
set, this is the number of the first data octet of the stream
too.(指定TCP 序列號,如果不指定則隨機產生)
Acknowledgment
number
32 -ta
If ACK bit is set, the next sequence number the sender is
expecting to receive.
Data offset 4 -tt
Length of TCP header in 32 bit words(指定TCP 頭的長
度,單位是以32bits 也就是4 位元組為單位)
Reserved 4 -tr
Should be 0. Note, rfc793 defines this as a 6 bit field, but
the last 2 are used by rfc2481 for ECN as below.
Flags: ECN 1 -tfe
Flags: CWR 1 -tfc
ECN extension flags, see rfc2481. (指定TCP 標志位,
如果要打開哪一位,就在命令行參數中指定相應位的
值,如要設置SYN 狀態,只需在命令行加入-tfs 1 即可

Flags: URG 1 -tfu Urgent pointer is significant(同上)
Flags: ACK 1 -tfa Acknowledgment field is significant(同上)
Flags: PSH 1 -tfp Push function(同上)
Flags: RST 1 -tfr Reset the connection(同上)
Flags: SYN 1 -tfs Synchronize sequence numbers(同上)
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第8 頁共14 頁
Flags: FIN 1 -tff No more data from sender(同上)
Window 16 -tw
Number of octet starting from the one in the
Acknowledgement field that the sender is willing to
accept
Checksum 16 -tc
Checksum of the TCP header (with checksum set to 0),
data, and a psuedo-header including the source and
destination IP addresses, IP protocol field and a 16 bit
length of the TCP header and data.
Urgent pointer 16 -tu
If URG bit is set, tHe offset of the last octet of urgent data
in this packet.
Options Variable -to...
No options are required. Any number can be added. See
below for details.
如果有TCP 選項,還可指定TCP 選項的值,SENDIP 支持的TCP 選項如下表所示。
Name
SendIP
option
RFC Type
Length (0
not
present)
Description
EOL -toeol 793 0 0
Used as padding if needed(用00 填充,表示TCP
選項結束,把TCP 頭後面的位置用隨機數填充)
NOP -tonop 793 1 0
Do nothing. Often used as padding so the next
option starts on a 32 bit boundary
MSS -tomss 793 2 4
Specify the maximum recieve segment size of the
sender as a 16 bit number. Only valid when SYN is
also set
WSOPT -towscale 1323 3 3
The window size should be leftshifted by the value
of the option (an 8 bit number). Only valid when
SYN is also set.
SACKOK -tosackok 2018 4 2
Selective Acknowledgement is permitted on this
connection
SACK -tosack 2018 5 variable
Selective Acknowledgement of non-contiguous
blocks of data. The data in the option is a series of
(left edge)-(right edge) pairs giving, respectively,
the first sequence number the has been recieved and
the first that hasn't.
TSOPT -tots 1323 8 10
Timestamp. The first 4 bytes (TSval) are the time
that the packet was sent, the remaining 4 (TSecr)
echo the TSval of a packet that was recieved. TSecr
is only valid when the ACK bit is set.
從上表所示,可以看出,TCP 選項可能只有一個單位元組參數,如-toeol 和-tonop,也可
能由一個Type 號和一個length 長度以及該length 長度指定的位元組數的數據組成的參數,使
用時sendip 會自動運算length 的長度,所以,不能隨意設定TCP 選項的長度,但需要設定
TCP 選項的值。
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第9 頁共14 頁
在設定TCP 選項時,同樣要考慮到TCP 頭的長度要包括TCP 選項的長度。
TCP 選項數據包的格式大致如下:
Kind=3 Len=3 數據:移位數
TCP 選項號TCP 選項長度TCP 選項數據佔一個位元組,總長度為三個位元組
具體命令行格式可參照如下格式:
#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234
–ioeol –p tcp –ts 1379 –td 23 –tt 8 –tfa 0 –tfs 1 –towscale 0 –toeol 30.0.0.1
-towscale 0 :指設置TCP 選項3,長度為自動3,TCP 選項的值即移位數為0
-toeol :表示TCP 選項結束,後面用隨機數填滿TCP 頭
因為用SENDIP 設定TCP 選項時,不能設定長度,所以,如果要設定長度不正確的包,
還要藉助其他工具,如SNIFFER,用SNIFFER 抓到SENDIP 發送的包後,再將對應的TCP
選項的長度改為不規則的值即可。
根據前面介紹的內容,我們已經基本可以掌握用SENDIP 發送各種協議數據包的方法,
當然我們還可以利用他發送各種不符合標準的數據包,如校驗和錯誤、長度不正確、狀態位
不正確等各種我們需要的數據包,在使用時,建議與SNIFFER 搭配使用,以驗證SENDIP
發出的包是否正確,進行有針對性的測試。
2.2. NESSUS 工具
NESSUS 是一個非常龐大的工具,它可以提供功能完善的安全掃描服務,還可以提供全
面的發包功能,用以構造各種格式的網路通信包。本篇只關注NESSUS 的發包功能。
NESSUS 由兩個部分組成,一部分是伺服器,通常運行在POSIX 系統如LINUX/UNIX
系統中,負責掃描和攻擊,並收集數據,另一部分是客戶端,可以運行在LINUX/UNIX 系
統或WINDOWS 系統中,負責接收和顯示數據。
如果只是用來發包,則只需要服務端即可。
NESSUS 有專門的維護網站,可以隨時到http://www.nessus.org 網站下載最新的源代碼,
並獲得全面的幫助。目前,NESSUS 最新的版本為2.0.8a。
2.2.1. NESSUS 安裝方法
安裝NESSUS 前要知道NESSUS 可能需要的支撐軟體包,一個是GTK,通常POSIX
系統下的NESSUS 客戶端需要GTK,如果你的系統安裝了GTK,則必須確保安裝了
gtk-config 程序,可到ftp://ftp.gimp.org/pub/gtk/v1.2 網站下載最新的GTK 程序,如果只在
LINUX/UNIX 系統下安裝服務端,則可以不需要GTK 包;另一個是OPENSSL 包,如果希
望客戶端和服務端的通信採用SSL 方式,則需要OPENSSL 包,可到http://www.openssl.org/
下載最新的OPENSSL 包,OPENSSL 包是可選的。
NESSUS 有三種安裝方法:第一種是利用LINUX 下的LYNX 工具直接從網上安裝,這
種方法很容易,但安全性低,在此不予詳細介紹,可到NESSUS 網站上獲取相關信息。第
二種方法是使用NESSUS 提供的nessus-installer.sh 工具,直接安裝,這種方法簡單且安全性
比較高。第三種方法是獲取源碼包,然後分別編譯再進行安裝。下面分別介紹第二種和第三
種方法。
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第10 頁共14 頁
2.2.1.1. 採用nessus-installer.sh 方式安裝
從NESSUS 網站下載最新的nessus-installer.sh 文件到本地LINUX 目錄,然後執行
#sh nessus-installer.sh
系統會自動安裝NESSUS 到你的系統中,中間會需要你提供相關的提示信息,一直按
回車即可。
2.2.1.2. 採用源碼包方式安裝
如果採用源碼包方式進行安裝,需要下載四個軟體包,並按順序進行安裝。四個軟體包
分別如下:
nessus-libraries
libnasl
nessus-core
nessus-plugins
安裝時必須按順序安裝這四個軟體包。
安裝前,我們必須獲得上面所說的四個軟體包,目前版本為2.0.8a:
nessus-libraries-x.x.tar.gz
libnasl-x.x.tar.gz
nessus-core.x.x.tar.gz
nessus-plugins.x.x.tar.gz
然後開始進行安裝。
1. 安裝nessus-libraries
#tar –xzvf nessus-libraries-x.x.tar.gz
#cd nessus-libraries-x.x
#./configure
#make
#make install
2. 安裝libnasl-x.x.tar.gz (執行與上面相同的操作)
3. 安裝nessus-core.x.x.tar.gz(執行與上面相同的操作)
4. 安裝nessus-plugins.x.x.tar.gz (執行與上面相同的操作)
5. 如果使用的是LINUX 系統,必須確保/usr/local/lib 路徑在/etc/ld.so.conf 文件中,如
果是SOLARIS 系統, 必須執行export LD_LIBRARY_PATH=
$LD_LIBRARY_PATH :/usr/local/lib 命令。
6. 執行ldconfig 命令
7. 如果不想或不能使用GTK 的客戶端,可強制使用命令行方式,這時,在執行第三
步編譯nessus-core 時,可以使用如下命令:
#tar –xzvf nessus-libraries-x.x.tar.gz
#cd nessus-libraries-x.x
#./configure --disable-gtk
#make
#make install
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第11 頁共14 頁
執行以上命令後,NESSUS 就已經安裝在您的系統中了。
2.2.2. NESSUS 的發包方法
NESSUS 通常採用腳本方式控制發出的包,下面我們以發送聖誕老人攻擊包為例,來介
紹如何利用NESSUS 發送數據包。
聖誕老人包是通過發送TCP Flag 中同時有SYN 和FIN 標志的數據包,穿透防火牆,
來達到攻擊的目的。
為使用NESSUS 發送攻擊包,首先要定義一個腳本,在LINUX 下,執行vi sendp 命令,
輸入如下內容:
srcaddr=this_host(); 註:自動獲取當前主機的IP 地址
ip = forge_ip_packet( ip_v : 4, 註:IP 協議版本為IPV4
ip_hl : 5, 註:IP 頭的長度為5×4=20 位元組
ip_tos : 0,
ip_len : 40, 註:在這里輸入實際的長度40,因為IP 頭和TCP 頭都為20
ip_id : 0xABA,
ip_p : IPPROTO_TCP, 註:內部數據包協議為TCP
ip_ttl : 255,
ip_off : 0,
ip_src : srcaddr); 註:可在此直接輸入IP
port = get_host_open_port(); 註:自動獲取當前主機上的可用埠
if(!port)port = 139; 註:如果沒有可用埠,就自動使用139 埠
tcpip = forge_tcp_packet( ip : ip, 註:表示IP 層協議採用前面定義的IP 協議包
th_sport : port, 註:可在這里直接輸入埠
th_dport : port, 註:可在這里直接輸入埠
th_flags : TH_SYN|TH_FIN, 註:設置TCP 狀態的SYN 和FIN 標志位
th_seq : 0xF1C,
th_ack : 0,
th_x2 : 0,
th_off : 5, 註:TCP 頭的長度位5×4=20 位元組
th_win : 512,
th_urp : 0);
result = send_packet(tcpip,pcap_active:FALSE);
編輯完上面的腳本後,保存退出,運行如下命令:
#nasl –t 目的IP 地址測試腳本
如:
#nasl –t 10.0.0.227 sendp
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第12 頁共14 頁
通過Sniffer 抓包,就會發現有相應的聖誕老人包。
在我的使用過程中,發現NESSUS 好像不支持發送帶有IP 或TCP 選項的包。
具體發包的參數可參考http://www.nessus.org/doc/nasl.html
2.3. SNIFFER 工具
用SNIFFER 發包時,有兩種方式,一種是直接利用Packet Generator 工具,從0 開始用
16 進制的方式造一個數據包,這種方法難度較高,因為要自己算出校驗和,除非需要重現
在網路上抓到的一個16 進制格式的數據包,另外一種方式是利用已經抓到的數據包修改一
下,再發送出去,具體實現方法分別如下。
2.3.1. 利用Packet Generator 直接造包
在SNIFFER 中,選擇Tools|Packet Generator 菜單,系統彈出窗口如下:
按圖中的紅色框中的按鈕,系統會彈出一個構造包內容的對話框,如下所示:
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第13 頁共14 頁
在上圖中可輸入包的內容,還可規定發包的個數和包的長度。
2.3.2. 利用已抓的包發包
利用已抓的包進行修改,可以避免大量的運算和輸入,只需要更改自己需要更改的地方,
然後發出去即可。
如上圖所示,按包的大致要求,用其他工具造好包後,用SNIFFER 抓包,或者直接將
網路上的可疑包抓過來,然後,用滑鼠郵件單擊該包,彈出如上圖所示的快捷菜單,從中選
擇Send Current Frame 菜單,系統就會彈出如下圖所示的發包窗口:
AntPower 版權所有&; 2003 技術文章
http://www.antpower.org 第14 頁共14 頁
按要求更改包的內容,即可發送。需要注意的是如果更改了IP 地址或其他頭中的內容,
則需要更新校驗和,對MAC 或選項的更改不需要更改校驗和。
3. 總結
通過對比前面的三種發包工具,我們發現每種工具都有自己的優點和缺點,SENDIP 比
較短小而且功能較齊全,比較適合在日常測試中使用,SNIFFER 發包工具最自由,可以發
出任何可能的數據包,NESSUS 工具功能比較全面,但在發包方面不如SENDIP,所以,建
議如果是測試需要的話,應該採用SENDIP 和SNIFFER 相結合的方式,如果同時還要使用
掃描等其他功能,可以採用NESSUS 工具。

② 向玩PS模擬的高手請教

概述:
ePSXe的全稱是enhanced PSX emulator,雖然這是個新的Ps模擬器,但它的作者可並不是模擬器界的新手。大家對他們應該不陌生:主力成員_Demo_,就是可以被稱為最好的超任模擬器的ZSNES的作者之一~~!另外兩個成員分別是calb和Galtor。前者是來自超任模擬器ESNes小組的經驗豐富的程序員(看來模擬器真的是相通的,能編出好的超任模擬器的coder來寫ps模擬器也這么的專業啊~~!)後者雖然是新人,但也有很高超的編程技巧。由於模擬器採用的是Psemupro的插件系統,所以要運行模擬器的話需要:主程序epsxe.exe,模擬器兼容的Ps主機的bios,PSEmuPro的圖形聲音和光碟機插件。模擬器的最低配置為P200或同級的cpu,32兆內存,快速的圖形加速卡(例如voodoo2)CDROM x 16,Win9x和DirectX 7a(只裝了DirectX7的朋友千萬要注意,不升級是玩不了的哦),推薦的配置是PII 400或者更好的cpu,64兆內存,高速的支持DirectX, Opengl或者Glide的圖形加速卡,高速的CD-ROM,Win9x和DirectX 7a。模擬器目前的模擬完成度:完全的r3000指令集,不完善的COP0協處理器模擬,充滿Bug的GTE協處理器模擬,Sio模擬,支持記憶卡,支持ISO鏡像,支持PSEmuPro的視頻、音頻、光碟機插件,充滿Bug的Mdec解碼(新的版本將會重寫代碼)支持CDDA和部分的XA音源,有圖形界面,就一個剛出爐的模擬器來說已經相當不錯了。

(三)上手指南及注意事項:
首先下載模擬器的1.00版的壓縮包並解壓,如果你的機器裡面有Psemupro的話就簡單多了,直接把plugins目錄和bios目錄拷貝過來覆蓋同名目錄。如果機器裡面沒有,就到我們站去下載一個(EmuZone http://lone2.yeah.net)完全插件包和所有的bios的壓縮包,解壓到相應的目錄。之後運行模擬器主程序進行設置。(圖標是一個Ps手柄的模擬器主程序很精悍,才103k,一方面是作者高超的編程功力所致,另一方面也是因為使用了插件系統的緣故,主程序只管調用插件嘛:)))

模擬器的主界面很清爽簡潔,功能一目瞭然(見圖:模擬器界面.JPG)。依次說起吧:
File菜單有5個選項:
(*) Run CDROM:運行一張Ps游戲碟
(*) Run BIOS:運行Ps主機的bios(Ps主機的播放CD的功能還未實現,現在主要用來管理記憶卡,可以進行復制移動刪除之類的簡單操作)
(*) Run ISO:運行Ps碟的iso鏡像文件,選擇一個iso鏡像後按ok啟動模擬器
(*) Run PSX-EXE:運行Ps碟上的EXE文件(看看Ps碟吧,很多碟里都有exe文件的)
(*) Exit:退出模擬器

Run菜單有2個選項:
(*) Continue:繼續先前用Esc中斷的cdrom/iso/psx-exe/bios游戲
(*) Reset:重起模擬器

Config菜單有6個選項,這個是模擬器的核心喔:)
(*)Video:(見圖:視頻配置.JPG),從下拉菜單裡面選擇對應你的顯卡的插件後用「config」來設置。開發小組推薦大家使用Pete的圖形插件(Opengl、D3d或軟加速),因為經內部測試它們具有最好的兼容性。不過要是你的顯卡跟我一樣也是Voodoo1&2系列的話,哈哈,恭喜恭喜,那麼在較為低檔的機器上就有福了!!用Lewpy的1.19版的glide插件真是讓我們的老機器重現青春啊!!(※需要注意的是:Voodoo卡要用支持DX7的最新驅動;Frameskip要Enable;還有Off-screen Drawing一定要關閉,這樣可以快不少幀!!!那個Tratax的glide renderer不好用,大家不用嘗試了。如果你的卡是Voodoo3或者更高級的,並且使用Pete的D3d插件的話,注意不要選擇32位色深因為Voodoo3不支持超過16位色的顯示!)要是你使用Tnt系列顯卡的話就用Pete\' Opengl Driver 1.37(※需要注意的問題是:按照配圖(見圖:Tnt插件設置.jpg)設置得到的「速度/畫質比」最高,實在慢的話還可以把Texture quality改為「R4G4B4A4」)。另外在游戲中大多數的插件都支持按Del鍵來顯示當前的FPS。
(*)Sound:(見圖:音頻配置.JPG)在新的窗口中有一個聲音插件下拉菜單,選擇你准備使用的聲音插件吧,選定後不要忘了配置,因為有的插件默認是無聲的
如Seal Audio 0.8,不要到時候游戲不出聲就怪模擬器哦~~:)在下面的5個復選框中我們可以使用或者禁用相應的聲音選項--因為模擬器比較成功的模擬出了Playstation主機使用的3種不同的音源:ADPCM,XA和CDDA。
* Enable Sound - 用來使用ADPCM音源,如果想聽到游戲中的XA音樂的話就必須選中該框。
* Enable CDDA Sound - 選中後可以播放CD音軌(主要是游戲中的背景音樂)
* Enable XA sound - 選中後可以聽到過場動畫的音樂,並打開整體的XA音源支持
* Enable XA read - 選中後可以在游戲中聽到XA音源的聲音(前提是游戲本身使用XA音源)還得先選中Enable Sound和Enable XA sound兩項。不過該功能還有很大的Bug並且很慢,大家要有心理准備:)
* Enable SPU IRQ -使用SPU中斷,玩某些游戲必需

經過我的初步測試,和模擬器兼容的最好的聲音插件當屬Seal Audio 0.8!!尤其在中、低檔音效卡上(如筆者的yamaha724),玩大部分游戲的聲音近乎完美(不過播放動畫和在個別的2d格鬥游戲中除外)!!要是你的音效卡是什麼SBlive之類的高檔卡的話可以嘗試一下Kazzuya Directsound Driver 0.6,根據測試可以使游戲的速度有2到3幀的提高,但是游戲時的聲音會有一些偏小,也就是說不管是cd的音軌的聲音還是游戲中的音樂音效的音量都會降低。如果你是配合著用Pete的Opengl的插件來做視頻輸出的話,Pete\'s Midas Audio Driver 1.6也是個不錯的選擇(這個插件和別的視頻插件的兼容性也不錯,不過同樣存在音量不足的問題)。
(*)Cdrom:(見圖:光碟機配置.JPG)在彈出的窗口裡有兩個下拉菜單和一個選擇框。在插件下拉菜單裡面選擇你要使用的光碟機插件,在盤符下拉菜單裡面選擇你光碟機的盤符,一定要記住這個盤符要和你剛才在光碟機插件裡面設定的盤符一致!經過測試我認為兼容性最好且速度最快的光碟機插件是cdrTsgMSCD.dll(Tanishige Ryus的插件)使用時注意注意subTsgMSCD16.dll和subTsgMSCD32.dll這兩個文件必須放在模擬器的根目錄下面!對於Win2K下的CD-ROM,如果你用的是EIDE的CD-ROM,請用Tratax\'s ASPI 1.2 CD 插件,對於SCSI介面的CD-ROM,你需要Duddie\'s ASPI 0.8插件。如果這還不行,你需要下載並安裝一個ASPI layer,最好是Adaptec的(可以從模擬器官方網站的下載頁面獲得),因為Win2K不像Win9x一樣有預安裝過程,如果這還不行的話就只有等新版的模擬器或者幹嘛不再多裝一個98呢?「cdrom timing accurate」選擇框是用來改變CD-Rom的計時功能的,這樣可以使Gran Tourismo和Point Blank 2勉強可以玩,一般來說應該在別的游戲中把它禁掉。當然,如果抱著死馬當活馬醫的態度在別的游戲不能玩的時候你也可以選擇它試試。另外模擬器本身支持Ps碟的iso鏡像和bin鏡像(CDRWin文件),不過兼容性還不夠,因此建議使用虛擬光碟機工具Daemon(EmuZone可下載最新版),它的兼容性要好的多。

(*)Bios:(見圖:bios.JPG)在窗口的文本框里選擇你想使用的BIOS(注意:Bios文件不能以.zip的方式存放!)。經測試,SCPH1000, SCPH5000以及SCPH5005和模擬器不兼容,目前開發小組推薦使用的Bios是1001和7502,據說兼容性最好,不過我用5500效果也很不錯,大家要是有興趣可以自己試試別的Bios。如果你想搞清手中的Bios的版本的話可以用寫字板或其他字處理程序打開Bios文件,在文件的底部有System ROM Version X.X YY/YY/YY (Z)的字樣,X表示BIOS的號碼,例如2.2;Y表示Bios的日期,例如12/04/95;Z表示Bios的地區,例如J代表Japan
(*)MDEC:(見圖:視頻解碼配置.JPG)在窗口裡有兩個選擇框,用第一個選擇框,你可以完全開啟或者禁止模擬器播放游戲中的過場動畫。第二個選擇框可以改變mdec解碼計時,用來嘗試播放那些不能正常解碼的動畫,在FF8和FF9中是必須的,因而在別的游戲中一般應當禁用。由於模擬器的動畫解碼實在是不敢恭維,好多的游戲都會在片頭當機,因此強烈建議兩個框都不要選!!!

(*)Controller:(見圖:手柄配置.JPG),手柄的設置非常的人性化,就不用我多說了吧?:)模擬器支持雙打和搖桿(爽!!!)不過默認的2P是被禁用的,大家記得進去手動設定按鍵。還有模擬器有4個默認快捷鍵:
F1--使用/禁用Xa音源
F2--使用/禁用Xa讀取
F3--使用/禁用SPU中斷
F4--使用/禁用SIO中斷, 大家要注意設鍵不要和默認的沖突了。

Options菜單就一個選項:
(*) SIO irq always enable:總是打開SIO中斷。在某些游戲中(例如Driver, Ridge Racer, X-Men Vs Street Fighter)會出現無論按什麼鍵模擬器都沒有反應的問題,為了使輸入設備再次工作,就需要打開該選項,或者在游戲中按F4就好了

Cheat菜單也只有一個選項:(見圖:金手指輸入界面.JPG)
(*)Edit Cheat Codes:這里的金手指主要是用來運行一些模擬器原本不支持的游戲的。模擬器的cheat目錄裡面已經自帶了一些游戲的開機碼:silent_hill_pal,tomb_raider_2_pal,need_for_speed_3_pal,theme_hospital_pal,theme_park_world_pal,timeshock_pal,chrono_cross_ntsc,alundra_1_pal和dinocrisis_pal,直接load就可以了,不過同樣的游戲有版本之分,不能使用PAL版游戲的開機碼來運行NTSC版的游戲。遺憾的是這項功能不能用來輸入游戲中的金手指,開發小組推薦的金手指軟體是[pec](官方網站http://pec.emucheater.com)。

Help菜單有2個選項:
(*)Visit EPSXE webpage:連接到模擬器的官方網站
(*)About:小組成員和其他的staff。有意思的是在說明文檔里和about提示框裡面居然有對FPSE小組的感謝的話,感謝他們幫助解決了MDEC的解碼的模擬問題和sio的問題,哈哈,終於不再口水大戰了么?真是不打不相識啊~~~要是今後能夠一起合作開發(就像當年的Psemupro一樣)的話,那這個模擬器豈不是前途不可限量!!??熱切期待中:D~~~~

模擬器對記憶卡的支持目前測試來看很不錯。模擬器使用的記憶卡放在memcards目錄里,名字分別為epsxe000.mcr和epsxe001.mcr。每個文件大小為128 KB(和標準的Ps記憶卡容量一樣),因為本來就是從真的記憶卡上mp下來的嘛:))不過稍微一點遺憾的是:模擬器本身並不帶有記憶卡的管理功能。但是我們可以利用Ps主機的bios對記憶卡的管理功能對存檔文件進行一般的管理。不過如果使用的是Pete\'s OpenGL/D3D插件的且把Off Screen drawing設為none的話,在運行主機的bios記憶卡編輯菜單的時候就會圖象不正常,改回來就可以了。模擬器本身不能創建新的記憶卡,需要用到前端程序ePSXeCutor(可以在我們站下載),軟體運行界面如圖(模擬器前端界面.JPG),具體的記憶卡操作見圖(前端記憶卡.JPG),感覺功能比較強大。前端的操作比較簡單,不再贅述。

(四)一些測試:
測試機器配置:賽揚333,128M,G200+Voodoo2,yamaha724,Phlips的36x光碟機,富士通6.4G,Directx 7a(系統使用內存優化軟體Magnaram對內存優化)
默認的插件是Video:Lewpy\'s 3dfx/glide Gpu 1.19
Audio:Seal Audio 0.8
CD-ROM:TSG MSCDEX Driver 1.2
Bios:5500
MDEC選項都關閉

※實況2000 & 美國大聯盟足球 & 超級自由人2:都能比較完美運行,愛足球游戲的玩家又多了一個選擇:))小缺憾是用lewpy的glide插件後球員的人名和號碼不清楚,還有就是解說聲音出不來。讓我奇怪的是,50多幀的速度朋友居然覺得太快了,30多幀才說跟ps上差不多,怪哉?!
※刀魂:必須禁掉片頭動畫的播放才能進入游戲,否則在廠商標題後模擬器當機,畫面比用同樣的插件在psemupro里要明亮的多,光影效果已接近正常,聲音斷續不過勉強還算流暢
※生或死:絕對絕對的完美!!無論是幀數還是音軌還是音效還是畫面都超過了同樣的插件在Psemupro下面的效果,強烈推薦用此款游戲來測試模擬器^0^
※漫畫英雄對街霸EX和X-MEN對街霸以及JOJO奇妙冒險等幾個2D格鬥游戲:除了聲音斷續以外都還不錯,如果用3d插件的話,畫面要強於使用插值演算法而得到模糊效果的Vgs,況且還沒有Vgs的動作跳幀的缺陷,但是比較華麗的場景時(如合作超殺什麼的)幀數會顯著下降,聲音也會變得更加的難以忍受:(
※街霸EX:還可以,不過就是有點慢
※天誅(USA) & 天誅.忍百選:一般的方法不能玩,試遍了各種有關光碟機的開關和視頻解碼的開關都不行。必須用菜單裡面的「Run PSX EXE」選項調入游戲光碟內的main.exe文件游戲才能運行,不過好像還是有bug,在游戲開始選擇道具時不能攜帶道具,只能用start鍵pass掉
※少年街霸3:別人的機器能玩,但是我的機器上到了選人的loading畫面就死活不讀光碟機了,換了所有的光碟機插件都不行
※生化危機3,恐龍危機,聖劍傳說--瑪娜傳奇等有保護的游戲直接不能玩,(恐龍危機通過內置的解碼金手指可以運行)可以用fpe等工具直接修改內存達到目的,具體方法同以前在1.4版本的Bleem!上運行這些游戲一樣,在此不再多說(先把scan的范圍設為2GB,之後再選分析,在分析目標中鍵入:272630330或1040023AH,再按開始查找, 這時會找到8個地址--每次找到的地址都不一定相同--將隨便一個地址的值鎖定為268436026即可,注意要解鎖以後再reset模擬器)。
※武藏傳:效果還不錯,不過有些慢
※鐵拳3:畫面好,音樂音效不行,較慢
※街霸EX2 PLUS和私立公平學院2:前者沒有音樂,後者一切正常。游戲畫面和流暢度比之Bleem!強的多,聲音完全正常(想想當年用玩Impact玩街機版的時候,rom的聲音是不正常的啊,老有奇怪的聲音而且同樣配置的機器速度還很慢^^)
※3D侍魂:模擬效果比別的模擬器要好的多,3D效果很棒,很流暢,推薦!! 結論:模擬器由於採用了插件系統,使得在不同設置的機器上或多或少的出現了不同的模擬情況,有的游戲這台機器能玩但是別的機器就死活玩不了,比如FF9,在我的機器上一運行就非法操作關閉-_-0……在別人的機器上卻能夠放完動畫(條件是在MDEC里把兩個全選,至於播放效果嘛-_-0……)不過在戰斗是黑屏;還有剛才提到的「少年街霸3」。

(五)一些使用經驗:
1.盡量按照本文所寫的來設定插件和選項。
2.要是半天不見動靜的話就試試按一下F4再按開始鍵,因為模擬器的「SIO irq always enable」老是失效,並且由於動畫播放有bug,能跳過的片頭或者過場動畫一定要用開始鍵跳過!!!
3.模擬器帶有命令行方式,其中有的參數在GUI下面無法設置,可以自己參看幫助文件來運行並設置。
4.實在有這份文檔都不能解決的問題就到我們的問答論壇上去請教高手吧

(六)總結:
個人認為ePSXe可以說幾乎集合了目前的Ps模擬器的優點:支持3D加速,但兼容性遠遠超過Psemupro而接近Vgs,聲音方面又比BLEEM!要好的多,界面也很友好,雖然插件的配置是一件讓人頭疼的事情……還有對我們窮玩家來說很重要一點,由於使用Ps的Bios,它註定是免費的!!它的前途一片光明!!開發小組對新的版本抱有很大信心,我們也應該鼎力支持啊~~:))同時希望本文對於你愉快的使用該模擬器有所幫助。

閱讀全文

與tfa命令相關的資料

熱點內容
外國的程序員和中國的程序員 瀏覽:147
抖音小店app如何聯系客服 瀏覽:973
linux打開多個終端 瀏覽:500
linux中的命令 瀏覽:573
優化小米6相機演算法 瀏覽:256
ak47pdf 瀏覽:141
人與文化pdf 瀏覽:640
原子幣app在哪裡注冊的 瀏覽:529
php數組保存文件 瀏覽:226
無理的命令 瀏覽:510
問道手游解壓失敗是什麼原因 瀏覽:776
mysql命令提示 瀏覽:373
apachephp中文亂碼 瀏覽:342
pythonimportpylab 瀏覽:238
阿里雲app伺服器價格表 瀏覽:981
appstore怎麼搶手機 瀏覽:845
列印伺服器是什麼列印隊列 瀏覽:359
網上怎麼用app辦理營業執照 瀏覽:861
sql如何查看伺服器地址 瀏覽:781
編譯速度和系統有關嗎 瀏覽:60