2013-05-31 4 views
1

저는 루아 사용법이 매우 새롭습니다. 내 영역은 wireshark에서 루아를 탐험하는 것입니다. 캡쳐 된 pcap 파일이 있습니다. 어떻게 그 파일을 열고 다른 헤더 (TCP/UDP 헤더의 포트 번호, http 헤더의 응용 프로그램 관련 정보 등)에서 다른 것들을 읽을 수 있습니까?
직접적인 질문이므로 죄송합니다. 문제를 해결하기 위해 참조 할 내용이 없습니다. 이 정보를 어디에서 찾을 수 있습니까? 당신들은 어떤 방향/참고 자료에서 적어도 당신의 포인트를 사용해 주실 수 있습니까?루아를 사용하여 pcap 파일 읽기

답변

4

wireshark의 Lua API는 매우 강력합니다. 그것은 디 시터, 포스트 디피 리터 및 탭을 작성하는 데 사용할 수 있습니다. Wireshark 소프트웨어 도움말이나 Reference Manual에서 Lua Support in Wireshark 으로 시작할 수 있습니다. wireshark 공식 Lua wiki도 도움이됩니다. 일부 코드 예제는 시대에 뒤 떨어진 것입니다.

경우에 따라 pcap 파일 만 분석하면됩니다. 그렇게하는 또 다른 방법이 있습니다. Tshark, Wireshark 명령 도구를 사용하여 pcap 파일을 분석하고 결과를 텍스트 파일 (또는 필요한 경우 xml 형식의 파일)로 출력 할 수 있습니다. Lua 스크립트를 사용하여 tshark을 호출하고 텍스트 파일 처리와 같은 결과를 처리 할 수 ​​있습니다.

다음은 Windows에서 Megaco protocal을 분석하기 위해 작성한 예입니다. 보시다시피,이 방법으로 다른 스크립팅 언어, 특히 Perl을 사용할 수도 있습니다. 그러나 Lua 코드는 분명히 더 우아하고 실제로는 더 효율적입니다.

local XmlFile = io.popen('"C:\\Program Files\\Wireshark\\tshark" -nn -r 3gpp_mc.cap -d udp.port==1001,megaco -T pdml ') 
--local XmlFile = io.open("xmlexample.xml", "r") 
local RawXml = XmlFile:read("*all") 

local Megaco = {} 
for m in string.gmatch(RawXml, '<proto name="megaco".-</proto>') do 
    Megaco[#Megaco + 1] = m 
end 

local Item = {} 
for i = 1, #Megaco do 
    for p in string.gmatch(Megaco[i], 'show=(".-")') do 
    print(p) 
    end 
end 
XmlFile:close() 

UPDATE : 의 핵심은 출력에 필요한 정보를 tshark를 사용하고 Lua 텍스트 처리를 할 수 있도록하는 것입니다. Tshark에는 사용할 수있는 다양한 매개 변수 집합이 있습니다. 자세한 내용은 here을 참조하십시오. 여기에 당신의 필요에 tshark를 호출하는 방법은 다음과 같습니다

tshark -nn -r file.pcap -T fields -E separator=; -e frame.number -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport (tcp) 
다음
+0

몇 가지 다른 링크 : 와이어 샤크 사용 설명서 • : www.wireshark.org/docs/wsug_html_chunked/wsluarm.html [Wireshark는 위키 : 루아] • (HTTP : //wiki.wireshark.org/Lua) • [Wireshark 위키 : 루아 - 예] (http://wiki.wireshark.org/Lua/Examples) • [Sharkfest09] (http : //sharkfest.wireshark. org/sharkfest.09/index.html) - 개발자 트랙 프리젠 테이션 : Wireshark의 Lua 스크립팅에 대한 Stig Bjorlykke의 프레젠테이션 – joke

+0

@Yu Hao 작은 2-3 행의 스크립트를 작성하여 패킷을 열고 출력 할 수 있습니까? src 주소, ip 헤더와 tcp src 포트의 목적지 주소와 tcp 목적지 포트 나는 거기에서 시작할 수있다. 감사합니다 –

+0

@JustinCarrey 업데이트 부분을 참조하십시오. –