不用安装Wincap程序实现ARP广播包的发送和接收
? ? 這幾天由于項(xiàng)目需求,做了一個(gè)局域網(wǎng)ip和MAC地址搜索的程序,程序調(diào)試完成了但是有一個(gè)問題一直困擾這我,就是軟件打包后,每次都要安裝WinPcap后才能用自己的程序,很是煩人,經(jīng)過幾天的測試終于找到了兩種方法,不需要安裝WinPcap。經(jīng)過測試都沒有問題。
? ? 方法一:經(jīng)過很多次的分析,程序主要是用到了WinPcap的一個(gè)驅(qū)動(dòng)文件,當(dāng)安裝Wincap程序后你會(huì)發(fā)現(xiàn) ?在C:\WINDOWS\system32\drivers下面會(huì)有一個(gè)npf.sys文件,系統(tǒng)下的驅(qū)動(dòng),在C:\WINDOWS\system32文件夾下會(huì)發(fā)現(xiàn)WinPcap相關(guān)的庫文件,其中有一個(gè)paket.dll庫就是我在程序中用到的庫。這時(shí)你可以把這個(gè)npf.sys文件拷出來,再把Wincap卸載掉,此時(shí)運(yùn)行自己的程序是不能實(shí)現(xiàn)IP和MAC地址的搜做的,這時(shí)可以把剛才拷出來的文件npf.sys重新拷貝到C:\WINDOWS\system32\drivers下面,再運(yùn)行自己的程序,你會(huì)奇跡般的發(fā)現(xiàn)可以正常搜索。所以這個(gè)npf.sys文件是很重要的,現(xiàn)在的方法是你可以在程序中編寫一個(gè)copy程序,把npf.sys文件拷貝到C:\WINDOWS\system32\drivers文件夾下。這樣就OK了。
? ? 方法二:方法一其實(shí)實(shí)現(xiàn)起來比較簡單而且方便,但是還有一個(gè)更好的辦法。其實(shí)通過分析發(fā)現(xiàn)npf.sys就是系統(tǒng)的一個(gè)驅(qū)動(dòng),你只要把它加載注冊表中,就把這個(gè)驅(qū)動(dòng)加載好了。當(dāng)你把npf.sys文件拷貝到C:\WINDOWS\system32\drivers下面時(shí)系統(tǒng)會(huì)自動(dòng)加載到注冊表如下圖:system32\drivers\npf.sys
現(xiàn)在我們怎么辦那,我們也可以仿照這個(gè)自己加載這個(gè)NPF驅(qū)動(dòng)程序到注冊表,只是我們加載路徑不是系統(tǒng)路徑,可以把npf.sys文件拷貝到我們的工程中,通過程序創(chuàng)建注冊表,并加載我們自己的路徑驅(qū)動(dòng)。這樣就不用在程序打包后每次安裝時(shí)先要安裝WinPcap程序。
? ? ? 經(jīng)過測試兩種方法都能實(shí)現(xiàn)功能,只是第二種方法稍微麻煩點(diǎn)。還有要注意的是32位系統(tǒng)和64位系統(tǒng)用到的npf文件是不一樣的。在不同系統(tǒng)中要加載不同的文件。
總結(jié)
以上是生活随笔為你收集整理的不用安装Wincap程序实现ARP广播包的发送和接收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用网站地址集合
- 下一篇: 飞信2010分析 – SIPC验证