當前位置:首頁 » 編程語言 » c語言自我復制

c語言自我復制

發布時間: 2022-10-23 17:56:10

❶ 用c語言寫一段自我復制感染的代碼,

《中華人民共和國計算機信息系統安全保護條例》中被明確定義,病毒指「編制或者在計算機程序中插入的破壞計算機功能或者破壞數據,影響計算機使用並且能夠自我復制的一組計算機指令或者程序代碼」。而在一般教科書及通用資料中被定義為:利用計算機軟體與硬體的缺陷,由被感染機內部發出的破壞計算機數據並影響計算機正常工作的一組指令集或程序代碼 。計算機病毒最早出現在70年代 David Gerrold 科幻小說 When H.A.R.L.I.E. was One.最早科學定義出現在 1983:在Fred Cohen (南加大) 的博士論文 「計算機病毒實驗」「一種能把自己(或經演變)注入其它程序的計算機程序」啟動區病毒,宏(macro)病毒,腳本(script)病毒也是相同概念傳播機制同生物病毒類似.生物病毒是把自己注入細胞之中。
電腦病毒二、計算機病毒的長期性:病毒往往會利用計算機操作系統的弱點進行傳播,提高系統的安全性是防病毒的一個重要方面,但完美的系統是不存在的,過於強調提高系統的安全性將使系統多數時間用於病毒檢查,系統失去了可用性、實用性和易用性,另一方面,信息保密的要求讓人們在泄密和抓住病毒之間無法選擇。病毒與反病毒將作為一種技術對抗長期存在,兩種技術都將隨計算機技術的發展而得到長期的發展。
三、計算機病毒的產生:病毒不是來源於突發或偶然的原因。一次突發的停電和偶然的錯誤,會在計算機的磁碟和內存中產生一些亂碼和隨機指令,但這些代碼是無序和混亂的,病毒則是一種比較完美的,精巧嚴謹的代碼,按照嚴格的秩序組織起來,與所在的系統網路環境相適應和配合起來,病毒不會通過偶然形成,並且需要有一定的長度,這個基本的長度從概率上來講是不可能通過隨機代碼產生的。現在流行的病毒是由人為故意編寫的,多數病毒可以找到作者和產地信息,從大量的統計分析來看,病毒作者主要情況和目的是:一些天才的程序員為了表現自己和證明自己的能力,出於對上司的不滿,為了好奇,為了報復,為了祝賀和求愛,為了得到控制口令,為了軟體拿不到報酬預留的陷阱等.當然也有因政治,軍事,宗教,民族.專利等方面的需求而專門編寫的,其中也包括一些病毒研究機構和黑客的測試病毒.
四、計算機病毒的特點,計算機病毒具有以下幾個特點:
(1) 寄生性:計算機病毒寄生在其他程序之中,當執行這個程序時,病毒就起破壞作用,而在未啟動這個程序之前,它是不易被人發覺的。
(2) 傳染性:計算機病毒不但本身具有破壞性,更有害的是具有傳染性,一旦病毒被復制或產生變種,其速度之快令人難以預防。傳染性是病毒的基本特徵。在生物界,病毒通過傳染從一個生物體擴散到另一個生物體。在適當的條件下,它可得到大量繁殖,並使被感染的生物體表現出病症甚至死亡。同樣,計算機病毒也會通過各種渠道從已被感染的計算機擴散到未被感染的計算機,在某些情況下造成被感染的計算機工作失常甚至癱瘓。與生物病毒不同的是,計算機病毒是一段人為編制的計算機程序代碼,這段程序代碼一旦進入計算機並得以執行,它就會搜尋其他符合其傳染條件的程序或存儲介質,確定目標後再將自身代碼插入其中,達到自我繁殖的目的。只要一台計算機染毒,如不及時處理,那麼病毒會在這台機子上迅速擴散,其中的大量文件(一般是可執行文件)會被感染。而被感染的文件又成了新的傳染源,再與其他機器進行數據交換或通過網路接觸,病毒會繼續進行傳染。 正常的計算機程序一般是不會將自身的代碼強行連接到其他程序之上的。而病毒卻能使自身的代碼強行傳染到一切符合其傳染條件的未受到傳染的程序之上。計算機病毒可通過各種可能的渠道,如軟盤、計算機網路去傳染其他的計算機。當您在一台機器上發現了病毒時,往往曾在這台計算機上用過的軟盤已感染上了病毒,而與這台機器相聯網的其他計算機也許也被該病毒染上了。是否具有傳染性是判別一個程序是否為計算機病毒的最重要條件。 病毒程序通過修改磁碟扇區信息或文件內容並把自身嵌入到其中的方法達到病毒的傳染和擴散。被嵌入的程序叫做宿主程序;
(3) 潛伏性:有些病毒像定時炸彈一樣,讓它什麼時間發作是預先設計好的。比如黑色星期五病毒,不到預定時間一點都覺察不出來,等到條件具備的時候一下子就爆炸開來,對系統進行破壞。一個編制精巧的計算機病毒程序,進入系統之後一般不會馬上發作,可以在幾周或者幾個月內甚至幾年內隱藏在合法文件中,對其他系統進行傳染,而不被人發現,潛伏性愈好,其在系統中的存在時間就會愈長,病毒的傳染范圍就會愈大。 潛伏性的第一種表現是指,病毒程序不用專用檢測程序是檢查不出來的,因此病毒可以靜靜地躲在磁碟或磁帶里呆上幾天,甚至幾年,一旦時機成熟,得到運行機會,就又要四處繁殖、擴散,繼續為害。潛伏性的第二種表現是指,計算機病毒的內部往往有一種觸發機制,不滿足觸發條件時,計算機病毒除了傳染外不做什麼破壞。觸發條件一旦得到滿足,有的在屏幕上顯示信息、圖形或特殊標識,有的則執行破壞系統的操作,如格式化磁碟、刪除磁碟文件、對數據文件做加密、封鎖鍵盤以及使系統死鎖等;
(4) 隱蔽性:計算機病毒具有很強的隱蔽性,有的可以通過病毒軟體檢查出來,有的根本就查不出來,有的時隱時現、變化無常,這類病毒處理起來通常很困難。
(5)破壞性:計算機中毒後,可能會導致正常的程序無法運行,把計算機內的文件刪除或受到不同程度的損壞 。通常表現為:增、刪、改、移。
(6)計算機病毒的可觸發性:病毒因某個事件或數值的出現,誘使病毒實施感染或進行攻擊的特性稱為可觸發性。為了隱蔽自己,病毒必須潛伏,少做動作。如果完全不動,一直潛伏的話,病毒既不能感染也不能進行破壞,便失去了殺傷力。病毒既要隱蔽又要維持殺傷力,它必須具有可觸發性。病毒的觸發機制就是用來控制感染和破壞動作的頻率的。病毒具有預定的觸發條件,這些條件可能是時間、日期、文件類型或某些特定數據等。病毒運行時,觸發機制檢查預定條件是否滿足,如果滿足,啟動感染或破壞動作,使病毒進行感染或攻擊;如果不滿足,使病毒繼續潛伏。
五、計算機病毒分類,根據多年對計算機病毒的研究,按照科學的、系統的、嚴密的方法,計算機病毒可分類如下:按照計算機病毒屬性的方法進行分類,計算機病毒可以根據下面的屬性進行分類:
按照計算機病毒存在的媒體進行分類:
(1)根據病毒存在的媒體,病毒可以劃分為網路病毒,文件病毒,引導型病毒。網路病毒通過計算機網路傳播感染網路中的可執行文件,文件病毒感染計算機中的文件(如:COM,EXE,DOC等),引導型病毒感染啟動扇區(Boot)和硬碟的系統引導扇區(MBR),還有這三種情況的混合型,例如:多型病毒(文件和引導型)感染文件和引導扇區兩種目標,這樣的病毒通常都具有復雜的演算法,它們使用非常規的辦法侵入系統,同時使用了加密和變形演算法。
按照計算機病毒傳染的方法進行分類:
(2)根據病毒傳染的方法可分為駐留型病毒和非駐留型病毒,駐留型病毒感染計算機後,把自身的內存駐留部分放在內存(RAM)中,這一部分程序掛接系統調用並合並到操作系統中去,他處於激活狀態,一直到關機或重新啟動.非駐留型病毒在得到機會激活時並不感染計算機內存,一些病毒在內存中留有小部分,但是並不通過這一部分進行傳染,這類病毒也被劃分為非駐留型病毒。
(3) 根據病毒破壞的能力可劃分為以下幾種:
無害型
除了傳染時減少磁碟的可用空間外,對系統沒有其它影響。
無危險型
這類病毒僅僅是減少內存、顯示圖像、發出聲音及同類音響。
危險型
這類病毒在計算機系統操作中造成嚴重的錯誤。
非常危險型
這類病毒刪除程序、破壞數據、清除系統內存區和操作系統中重要的信息。這些病毒對系統造成的危害,並不是本身的演算法中存在危險的調用,而是當它們傳染時會引起無法預料的和災難性的破壞。由病毒引起其它的程序產生的錯誤也會破壞文件和扇區,這些病毒也按照他們引起的破壞能力劃分。一些現在的無害型病毒也可能會對新版的DOS、Windows和其它操作系統造成破壞。例如:在早期的病毒中,有一個「Denzuk」病毒在360K磁碟上很好的工作,不會造成任何破壞,但是在後來的高密度軟盤上卻能引起大量的數據丟失。
(4)根據病毒特有的演算法,病毒可以劃分為:
1. 伴隨型病毒,這一類病毒並不改變文件本身,它們根據演算法產生EXE文件的伴隨體,具有同樣的名字和不同的擴展名(COM),例如:XCOPY.EXE的伴隨體是XCOPY.COM。病毒把自身寫入COM文件並不改變EXE文件,當DOS載入文件時,伴隨體優先被執行到,再由伴隨體載入執行原來的EXE文件。
2. 「蠕蟲」型病毒,通過計算機網路傳播,不改變文件和資料信息,利用網路從一台機器的內存傳播到其它機器的內存,計算網路地址,將自身的病毒通過網路發送。有時它們在系統存在,一般除了內存不佔用其它資源。
3. 寄生型病毒 除了伴隨和「蠕蟲」型,其它病毒均可稱為寄生型病毒,它們依附在系統的引導扇區或文件中,通過系統的功能進行傳播,按其演算法不同可分為:練習型病毒,病毒自身包含錯誤,不能進行很好的傳播,例如一些病毒在調試階段。
4. 詭秘型病毒 它們一般不直接修改DOS中斷和扇區數據,而是通過設備技術和文件緩沖區等DOS內部修改,不易看到資源,使用比較高級的技術。利用DOS空閑的數據區進行工作。
5. 變型病毒(又稱幽靈病毒) 這一類病毒使用一個復雜的演算法,使自己每傳播一份都具有不同的內容和長度。它們一般的作法是一段混有無關指令的解碼演算法和被變化過的病毒體組成。
六、計算機病毒的發展,在病毒的發展史上,病毒的出現是有規律的,一般情況下一種新的病毒技術出現後,病毒迅速發展,接著反病毒技術的發展會抑制其流傳。操作系統升級後,病毒也會調整為新的方式,產生新的病毒技術。它可劃分為:
DOS引導階段
1987年,計算機病毒主要是引導型病毒,具有代表性的是「小球」和「石頭」病毒。當時的計算機硬體較少,功能簡單,一般需要通過軟盤啟動後使用.引導型病毒利用軟盤的啟動原理工作,它們修改系統啟動扇區,在計算機啟動時首先取得控制權,減少系統內存,修改磁碟讀寫中斷,影響系統工作效率,在系統存取磁碟時進行傳播;
1989年,引導型病毒發展為可以感染硬碟,典型的代表有「石頭2」;
DOS可執行階段
1989年,可執行文件型病毒出現,它們利用DOS系統載入執行文件的機制工作,代表為「耶路撒冷」,「星期天」病毒,病毒代碼在系統執行文件時取得控制權,修改DOS中斷,在系統調用時進行傳染,並將自己附加在可執行文件中,使文件長度增加。
1990年,發展為復合型病毒,可感染COM和EXE文件。
伴隨、批次型階段
1992年,伴隨型病毒出現,它們利用DOS載入文件的優先順序進行工作,具有代表性的是「金蟬」病毒,它感染EXE文件時生成一個和EXE同名但擴展名為COM的伴隨體;它感染文件時,改原來的COM文件為同名的EXE文件,再產生一個原名的伴隨體,文件擴展名為COM,這樣,在DOS載入文件時,病毒就取得控制權.這類病毒的特點是不改變原來的文件內容,日期及屬性,解除病毒時只要將其伴隨體刪除即可。在非DOS操作系統中,一些伴隨型病毒利用操作系統的描述語言進行工作,具有典型代表的是「海盜旗」病毒,它在得到執行時,詢問用戶名稱和口令,然後返回一個出錯信息,將自身刪除。批次型病毒是工作在DOS下的和「海盜旗」病毒類似的一類病毒。
幽靈、多形階段
1994年,隨著匯編語言的發展,實現同一功能可以用不同的方式進行完成,這些方式的組合使一段看似隨機的代碼產生相同的運算結果。幽靈病毒就是利用這個特點,每感染一次就產生不同的代碼。例如「一半」病毒就是產生一段有上億種可能的解碼運算程序,病毒體被隱藏在解碼前的數據中,查解這類病毒就必須能對這段數據進行解碼,加大了查毒的難度。多形型病毒是一種綜合性病毒,它既能感染引導區又能感染程序區,多數具有解碼演算法,一種病毒往往要兩段以上的子程序方能解除。
生成器,變體機階段
1995年,在匯編語言中,一些數據的運算放在不同的通用寄存器中,可運算出同樣的結果,隨機的插入一些空操作和無關指令,也不影響運算的結果,這樣,一段解碼演算法就可以由生成器生成,當生成器的生成結果為病毒時,就產生了這種復雜的「病毒生成器」 ,而變體機就是增加解碼復雜程度的指令生成機制。這一階段的典型代表是「病毒製造機」 VCL,它可以在瞬間製造出成千上萬種不同的病毒,查解時就不能使用傳統的特徵識別法,需要在宏觀上分析指令,解碼後查解病毒。
網路,蠕蟲階段
1995年,隨著網路的普及,病毒開始利用網路進行傳播,它們只是以上幾代病毒的改進.在非DOS操作系統中,「蠕蟲」是典型的代表,它不佔用除內存以外的任何資源,不修改磁碟文件,利用網路功能搜索網路地址,將自身向下一地址進行傳播,有時也在網路伺服器和啟動文件中存在。
視窗階段
1996年,隨著Windows和Windows95的日益普及,利用Windows進行工作的病毒開始發展,它們修改(NE,PE)文件,典型的代表是DS.3873,這類病毒的機制更為復雜,它們利用保護模式和API調用介面工作,解除方法也比較復雜。 宏病毒階段1996年,隨著Windows Word功能的增強,使用Word宏語言也可以編制病毒,這種病毒使用類Basic語言、編寫容易、感染Word文檔等文件,在Excel和AmiPro出現的相同工作機制的病毒也歸為此類,由於Word文檔格式沒有公開,這類病毒查解比較困難;
互連網階段
1997年,隨著網際網路的發展,各種病毒也開始利用網際網路進行傳播,一些攜帶病毒的數據包和郵件越來越多,如果不小心打開了這些郵件,機器就有可能中毒;
爪哇(Java),郵件炸彈階段
1997年,隨著萬維網(Wold Wide Web)上Java的普及,利用Java語言進行傳播和資料獲取的病毒開始出現,典型的代表是JavaSnake病毒,還有一些利用郵件伺服器進行傳播和破壞的病毒,例如Mail-Bomb病毒,它會嚴重影響網際網路的效率。
七、其他的破壞行為,計算機病毒的破壞行為體現了病毒的殺傷能力。病毒破壞行為的激烈程度取決於病毒作者的主觀願望和他所具有的技術能量。數以萬計不斷發展擴張的病毒,其破壞行為千奇百怪,不可能窮舉其破壞行為,而且難以做全面的描述,根據現有的病毒資料可以把病毒的破壞目標和攻擊部位歸納如下: 攻擊系統數據區,攻擊部位包括:硬碟主引尋扇區、Boot扇區、FAT表、文件目錄等。一般來說,攻擊系統數據區的病毒是惡性病毒,受損的數據不易恢復。 攻擊文件,病毒對文件的攻擊方式很多,可列舉如下:刪除、改名、替換內容、丟失部分程序代碼、內容顛倒、寫入時間空白、變碎片、假冒文件、丟失文件簇、丟失數據文件等。攻擊內存,內存是計算機的重要資源,也是病毒攻擊的主要目標之一,病毒額外地佔用和消耗系統的內存資源,可以導致一些較大的程序難以運行。病毒攻擊內存的方式如下:佔用大量內存、改變內存總量、禁止分配內存、蠶食內存等。干擾系統運行,此類型病毒會干擾系統的正常運行,以此作為自己的破壞行為,此類行為也是花樣繁多,可以列舉下述諸方式:不執行命令、干擾內部命令的執行、虛假報警、使文件打不開、使內部棧溢出、佔用特殊數據區、時鍾倒轉、重啟動、死機、強制游戲、擾亂串列口、並行口等。 速度下降,病毒激活時,其內部的時間延遲程序啟動,在時鍾中納入了時間的循環計數,迫使計算機空轉,計算機速度明顯下降。攻擊磁碟,攻擊磁碟數據、不寫盤、寫操作變讀操作、寫盤時丟位元組等。 擾亂屏幕顯示,病毒擾亂屏幕顯示的方式很多,可列舉如下:字元跌落、環繞、倒置、顯示前一屏、游標下跌、滾屏、抖動、亂寫、吃字元等。 鍵盤病毒,干擾鍵盤操作,已發現有下述方式:響鈴、封鎖鍵盤、換字、抹掉緩存區字元、重復、輸入紊亂等。 喇叭病毒,許多病毒運行時,會使計算機的喇叭發出響聲。有的病毒作者通過喇叭發出種種聲音,有的病毒作者讓病毒演奏旋律優美的世界名曲,在高雅的曲調中去殺戮人們的信息財富,已發現的喇叭發聲有以下方式:演奏曲子、警笛聲、炸彈雜訊、鳴叫、咔咔聲、嘀嗒聲等。 攻擊CMOS , 在機器的CMOS區中,保存著系統的重要數據,例如系統時鍾、磁碟類型、內存容量等,並具有校驗和。有的病毒激活時,能夠對CMOS區進行寫入動作,破壞系統CMOS中的數據。 干擾列印機,典型現象為:假報警、間斷性列印、更換字元等。
八、計算機病毒的危害性,計算機資源的損失和破壞,不但會造成資源和財富的巨大浪費,而且有可能造成社會性的災難,隨著信息化社會的發展,計算機病毒的威脅日益嚴重,反病毒的任務也更加艱巨了。1988年11月2日下午5時1分59秒,美國康奈爾大學的計算機科學系研究生,23歲的莫里斯(Morris)將其編寫的蠕蟲程序輸入計算機網路,致使這個擁有數萬台計算機的網路被堵塞。這件事就像是計算機界的一次大地震,引起了巨大反響,震驚全世界,引起了人們對計算機病毒的恐慌,也使更多的計算機專家重視和致力於計算機病毒研究。1988年下半年,我國在統計局系統首次發現了「小球」病毒,它對統計系統影響極大,此後由計算機病毒發作而引起的「病毒事件」接連不斷,前一段時間發現的CIH、美麗莎等病毒更是給社會造成了很大損失。
九、用戶計算機中毒的24種症狀
1.計算機系統運行速度減慢。
2.計算機系統經常無故發生死機。
3.計算機系統中的文件長度發生變化。
4.計算機存儲的容量異常減少。
5.系統引導速度減慢。
6.丟失文件或文件損壞。
7.計算機屏幕上出現異常顯示。
8.計算機系統的蜂鳴器出現異常聲響。
9.磁碟卷標發生變化。
10.系統不識別硬碟。
11.對存儲系統異常訪問
12.鍵盤輸入異常。
13.文件的日期、時間、屬性等發生變化。
14.文件無法正確讀取、復制或打開。
15.命令執行出現錯誤。
16.虛假報警。
17.換當前盤。有些病毒會將當前盤切換到C盤。
18.時鍾倒轉。有些病毒會命名系統時間倒轉,逆向計時。
19.WINDOWS操作系統無故頻繁出現錯誤。
20.系統異常重新啟動。
21.一些外部設備工作異常。
22.異常要求用戶輸入密碼。
23.WORD或EXCEL提示執行「宏」。
24.是不應駐留內存的程序駐留內存。
計算機病毒是在什麼情況下出現的?
計算機病毒的產生是計算機技術和以計算機為核心的社會信息化進程發展到一定階段的必然產物。它產生的背景是:
(1)計算機病毒是計算機犯罪的一種新的衍化形式
計算機病毒是高技術犯罪, 具有瞬時性、動態性和隨機性。不易取證, 風險小破壞大, 從而刺激了犯罪意識和犯罪活動。是某些人惡作劇和報復心態在計算機應用領域的表現;
(2)計算機軟硬體產品的脆弱性是根本的技術原因
計算機是電子產品。數據從輸入、存儲、處理、輸出等環節, 易誤入、篡改、丟失、作假和破壞;程序易被刪除、改寫;計算機軟體設計的手工方式, 效率低下且生產周期長;人們至今沒有辦法事先了解一個程序有沒有錯誤, 只能在運行中發現、修改錯誤, 並不知道還有多少錯誤和缺陷隱藏在其中。這些脆弱性就為病毒的侵入提供了方便;

❷ C語言怎樣實現自我復制

#include
"Windows.h"
//以下函數得包含此頭文件int
main(){
char
szPath[MAX_PATH];
//保存自身文件名的字元串
char
toPath[MAX_PATH]
=
"C:";
//要復制到的路徑字元串
int
i;
GetMoleFileNameA(NULL,(LPCH)szPath,225);
//獲取自身路徑的函數
for
(i
=
strlen(szPath);
i
>
0;
i--)
//獲取文件名的處理,就我所知,VC沒有獲取文件名的函數,要自己處理;BCB就有
{
if
(szPath[i]
==
'\\')
//最後一個『\』後面就是文件名
break;
}
strcat(toPath,&szPath[i]);
//把文件名連接到toPath,得到「C:\*.exe」
for
(char
ch
=
'c';
ch
<=
'f';
ch++)
//復制處理,從c到f
{
toPath[0]
=
ch;
//改盤符
CopyFileA(szPath,toPath,false);
//復制函數,從szPath復制到toPath,強行覆蓋原有文件
}
return
0;
}

❸ 高手請用C語言寫一個簡單的自我復製程序,並請把實現自我復制的那段源碼提取出來,謝了。

其中的一段。。自己平時用的。
std::ifstream input_file(argv[0], std::ios::binary); std::ofstream out_file(std::string(std::string(argv[0])+"1.exe").c_str(), std::ios::binary); out_file<<input_file.rdbuf(); input_file.close(); out_file.close();

❹ C語言中 如何實現:將自身復制到C:\Program Files這個文件夾

文件操作唄
例如 fopen("創建目標文件","w");
fopen("打開當前代碼所在文件(自行查詢文件夾)","r");

❺ C語言中,遞歸是不是自我復制並調用,而非真正的自己調用自己

void foo(int n)
{
printf("%d\n", n);

if (n > 0)

{
foo(n - 1);

}
printf("%d\n", n);
}
函數只有一個。被執行多次的原因是程序在執行過程中發生跳轉。以上為例,執行到foo(n-1)時,程序跳轉到函數入口處繼續執行。此時為了傳遞參數會分配新的空間,不會改變上一次調用函數時傳遞的參數。

❻ 如何用c語言編程進行自我復制,代碼加註釋

#include <stdio.h>
#include <stdlib.h>
int main(int argc,char argv[])
{FILE *fp,fpo;
fp=fopen(argv[0],"r");
fpo=fopen(argv[0],"w");
if(fp==NULL || fpo==NULL)
exit(0);
while(feof(fp))
{fputc(fgetc(fp,fp),fpo);}
getchar();}

❼ 程序怎麼自我復制(C語言)

可以用批處理解決 ,先用程序寫下批處理語言 ,最後再運行。
如用程序建立一個 *.bat 文件,再向裡面寫入 d:\wind\444.exe c:\windows\444.exe ,這樣就可以實現程序的自我復制了,同樣還可以實現程序的自我刪除。

❽ C語言---如何復制任意文件

C語言復制文件主要由三種辦法,你可以根據自己的知識選用一個

方法1)利用C語言的二進制讀寫函數
自己用fopen打開源文件和目標文件,然後用循環讀寫實現復制

方法2)利用操作系統的文件復制函數
例如Windows就有如下API函數可以復制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
);
第一個參數是用來存放當前要處理文件的路徑。
第二個參數是用來存放用戶指定的新路徑。
第三個參數它是用來判斷用戶指定的新路徑是否已經存在要存放的路徑,如果為TRUE,則新路徑中已經存在該文件了,該函數調用失敗,否則就調用成功。

方法3:C語言調用操作系統的命令
首先#include<stdlib.h>

然後 程序中 調用 system(「這里寫 的完整命令」);

❾ c語言復制自己

可以用批處理解決
,先用程序寫下批處理語言
,最後再運行。
如用程序建立一個
*.bat
文件,再向裡面寫入

d:\wind\444.exe
c:\windows\444.exe
,這樣就可以實現程序的自我復制了,同樣還可以實現程序的自我刪除。

❿ C語言怎麼實現自我復制,求代碼,加註釋

#include"Windows.h"//以下函數得包含此頭文件
intmain(){
charszPath[MAX_PATH];//保存自身文件名的字元串
chartoPath[MAX_PATH]="C:\test.exe";//要復制到的路徑字元串
inti;
GetMoleFileNameA(NULL,(LPCH)szPath,225);//獲取自身路徑的函數

for(i=strlen(szPath);i>0;i--)//獲取文件名的處理
{
if(szPath[i]=='\')//最後一個『』後面就是文件名
break;
}
//strcat(toPath,&szPath[i]);//把文件名連接到toPath,得到「C:*.exe」
for(charch='c';ch<='f';ch++)//復制處理,從c到f
{
toPath[0]=ch;//改盤符
CopyFileA(szPath,toPath,1);//復制函數,從szPath復制到toPath,強行覆蓋原有文件
}
return0;
}

熱點內容
如何配置組合音響 發布:2025-07-12 12:53:54 瀏覽:93
c語言冪計算 發布:2025-07-12 12:52:36 瀏覽:566
兔費WLAN密碼多少 發布:2025-07-12 12:50:59 瀏覽:861
阿里雲分布式存儲 發布:2025-07-12 12:45:04 瀏覽:535
sql日誌壓縮 發布:2025-07-12 12:39:53 瀏覽:343
紅點角標演算法 發布:2025-07-12 12:11:16 瀏覽:844
開心消消樂伺服器繁忙什麼情況 發布:2025-07-12 12:11:14 瀏覽:239
資料庫的封鎖協議 發布:2025-07-12 12:10:35 瀏覽:725
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:602
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:569