我想插個U盤上電腦 開機 我遠程能夠知道他的IP(ADSL)來的 獲取的途徑最好能夠隱秘
uj5u.com熱心網友回復:
木馬程式。。uj5u.com熱心網友回復:

找到的資料;記錄下來;
開發可以自動運行程式的U盤
二. 開發思路
我們知道光驅插入光碟可以自動運行,所以我們可以讓U盤的一個區模擬成光碟的形式。這樣我們可以利用autorun.inf,讓程式自動運行。
三. 開發步驟
1. 讓U盤一個區顯示成光碟
這個對于開發過U盤的人來說應該很簡單,就是在作業系統發送SCSI設備的 INQUIRY 指令的時候,回傳的INQUIRY里面指明設備型別,我們設定為CD設備。具體指令可以參考相關資料(spc3r23.pdf)。我開發的時候INQUIRY回傳資料的前幾個位元組如下:0x05,0x80,0x02,0x02僅供參考。
2. 回應作業系統對這光碟區的指令
成光碟后,作業系統可能會發送一些SCSI指令給這個光碟區。應該回應某些指令,有些并不需要回應。后面我會附錄一個我弄過的一個U盤的BusHound監測檔案,大家可以參考。最好買一個這樣的U盤,然后用BusHound監測通訊程序。
3. 向光碟區寫入檔案
應該可以把光碟區弄成CDRW,這樣直接寫入就可以了,但這樣需要了解很多協議。由于時間關系,我采用了簡單的方法,把需要寫入光碟的檔案用ISO制作工具弄成一個ISO鏡像檔案,撰寫一個小程式向這個光碟區寫入ISO鏡像檔案。程式部分代碼附在檔案后面,僅供參考。寫入的程式最終呼叫DeviceIoControl函式。檔案寫入后,再重新拔插U盤就可以了。
四. 說明
這里只是簡單說明了原理,如果是剛接觸這個,還有很多東西要弄清楚,我是在別人一個普通U盤開發板的基礎上添加這個功能的,最后弄通了,感覺很不容易,以前也沒有弄過硬體的韌體程式。希望對新手有幫助。有什么問題,可以郵件聯系交流。
附錄:
1. Write ISO程式部分代碼:
UINT CWriteIsoFileDlg::ThreadWrite(LPVOID pParam)
{
CWriteIsoFileDlg * p = (CWriteIsoFileDlg*)pParam;
CSDsk sd;
CString str;
HANDLE fh,hFind;
WIN32_FIND_DATA FindFileData;
ULONGLONG fSize = 0;
CFileFind ff;
DWORD startAddr = 0;
DWORD nBytesRead = 0;
PBYTE buf = new BYTE[20480];
memset(buf,0,20480);
try
{
if(!ff.FindFile(p->filename))
{
str.Format("找不到檔案 %s ",p->filename);
throw 1;
}
ff.FindNextFile();
fh = CreateFile(ff.GetFilePath(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(fh==INVALID_HANDLE_VALUE)
{
str.Format("打開檔案 %s 失敗",p->filename);
throw 1;
}
if(!sd.Open())
throw 0;
int index = sd.GetDevNum()-1;
if(!sd.ReadCapacity(index,0,fSize))
throw 0;
if(ff.GetLength()>fSize)
{
str = "光碟空間不足,不能寫入。";
throw 1;
}
fSize = ff.GetLength();
if(!sd.GetFlashParam(index,0,1,buf))
throw 0;
buf[0]&=0xBF;
if(!sd.SetFlashParam(index,0,1,buf,false))
throw 0;
while(1)
{
if(ReadFile(fh,buf,20480,&nBytesRead,NULL))
{
if(nBytesRead!=0)
{
if(!sd.Write(index,0,startAddr,40,buf))
{
throw 0;
}
startAddr+=40;
memset(buf,0,20480);
}
else
break;
}
else
{
str = "讀檔案錯誤!";
throw 1;
}
}
//p->MessageBox("寫入鏡像檔案成功!",NULL,MB_OK|MB_ICONINFORMATION);
sd.PlugDisk(index,0,true);
delete [] buf;
exit(0);
}
catch(int e)
{
if(e==0)
{
p->MessageBox(sd.err.GetErrMsg(),NULL,MB_OK|MB_ICONERROR);
}
else
p->MessageBox(str,NULL,MB_OK|MB_ICONERROR);
}
delete [] buf;
exit(-1);
return 1;
}
2. 可以自啟動U盤的BusHound在windowsXp下的監測檔案
把寫好自動獲取IP的程式放到U盤中,按以上方法試試
uj5u.com熱心網友回復:
開發可以自動運行程式的U盤,關注!uj5u.com熱心網友回復:
我電腦的外部驅動都已經把自動播放關閉了,除非是做成雙擊自動運行的程式。uj5u.com熱心網友回復:
我查過 就是不會弄我才求助的
你會不?
uj5u.com熱心網友回復:
獲取ip 未必有用啊,現在的ip 都未必是廣域網ip ,很多是運營商的內網ip ,找不到真實機器的。
想做反向連接?控制?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98967.html
標籤:非技術區
