本文目錄一覽:
c語言程序工作流程
病毒這種程序,不是難,是了解少,要是從事這行的就熟的很。其中最重要的是感染部分的代碼。給你說一些病毒常用的技術吧:代碼重定位,兩行彙編就可以實現;定位kernel32.dll基址,然後找到LoadLibrary和GetProcAddress,找到了這兩個,其他模塊和API隨便調用了。一般流程:遍歷盤符,遍歷文件夾,依次打開文件,判斷文件頭標誌,一般是開頭”MZ”,Dos插樁後的”PE”,都滿足就繼續,否則不是PE文件;然後以讀寫許可權打開,這時可能許可權不夠,所以你給的那個代碼才要提升許可權;接下來就是寫入病毒位元組碼,節間隙空間夠 就插入,不夠就新建一個節;最後是關鍵,重構PE的節表、代碼段長度等等PE結構中的一些標誌。編寫的話,最好用彙編,C也行,但要壓縮體積,病毒都很小;知識方面,首先要了解windows上的PE文件結構,linux上的就是ELF文件結構;然後,win編程,進程,線程什麼的;最後就是實踐了。補充一下:編寫和調試彙編程序比較麻煩,需要點耐心。
[C語言] 運行C程序的步驟?
(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內(如果不特別指定,一般存放在用戶當前目錄下),文件用.c作為後綴,生成源程序文件,如f.c。
(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」(又稱「預處理程序」或「預編譯器」)對程序中的預處理指令進行編譯預處理。例如,對於#includestdio.h指令來說,就是將stdio.h頭文件的內容讀進來,取代#includestdio.h>行。由預處理得到的信息與程序其他部分一起組成一個完整的、可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。
編譯的作用首先是對源程序進行檢查,判定它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修改程序後重新進行編譯,如果還有錯,再發出「出錯信息」。如此反覆進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進位形式的目標程序(在Visual C++中後綴為.obj,如f.obj)。如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進位目標文件(後綴為.obj)還不能供計算機直接執行。前面已說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對應的目標文件(也稱目標模塊),它只是整個程序的一部分。必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序(executive program),在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」(linkage editor)的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖1.2所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成開發環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。
c語言程序開發步驟是什麼?
1.定義程序目標。在開始寫程序之前,應對希望程序要做什麼有一個清晰的想法。考慮程序需要的信息…
2.設計程序。在對程序需要完成的事情有一個概念性的認識後,就應該決定程序要如何完成它,用戶…
3.編寫代碼。在程序有了清晰的設計後,就可以通過編寫代碼來實現它了。也就是說,將設計構思轉變…
4.編譯源代碼。編譯細節取決於編程環境,編譯器還檢查程序是否為有效的C語言程序。
5.運行程序。一般來說,可執行文件就是打開之後可以直接能夠運行的文件。
簡述開發一個c語言程序的步驟
1 寫代碼。這是最基礎的一步,即實現C語言的源文件(.c,必需),和可能的頭文件(.h,非必需)。
2 編譯。將編寫好的代碼,通過編譯工具,轉換為目標文件。此步中,會對文件內部及包含的頭文件進行語法語義的分析檢查。如果出錯,則必須返回到1步對代碼進行修改,直到沒有錯誤為止。
3 鏈接。將目標文件鏈接成可執行文件。此步會對文件直接的關聯進行檢查。如果出錯需要返回到1修改代碼。直到沒有錯誤。
4 運行。這個是最後一步,也是C語言的最終目的。
在運行結果與期望不符時,需要檢查原因,修改代碼,重新執行1,2,3直到程序沒有問題。
C語言編程的一般步驟有哪些?
首先明確要解決的問題;\x0d\x0a其次分析問題並選擇想要利用的演算法,或者自己想一個的演算法;\x0d\x0a畫流程圖,明確解決問題過程中的邏輯關係和時序關係;\x0d\x0a然後才是上機編寫代碼;\x0d\x0a之後是debug調試,基本就可以執行了。\x0d\x0a\x0d\x0a具體就上機編寫代碼來講,首先需要打開C++的開發環境,然後新建一個工程;\x0d\x0a然後新建一個文件(如果是VC6.0就可以繼續寫了,如果是VS20**的話就需要在文件菜單中選擇將文件移入工程);\x0d\x0a在文件中寫入代碼,然後就可以編譯運行了。\x0d\x0a\x0d\x0a具體代碼的格式來講,首先應該引用頭文件#include,然後在所有頭文件引入之後加一行using namespace std;後面可以寫函數了,具體就看你自己的發揮了~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238084.html