C, C++ cho Virus (Phần 2): Hello World

bloodplanet

Wh------
21/03/2015
7
51 bài viết
C, C++ cho Virus (Phần 2): Hello World
Xin chào tất cả các bạn, phần 1 mình đã nói sơ qua tổng quan về C/C++ cho virus và trình biên dịch ngôn ngữ lập trình Code Blocks. Các bạn có thể xem phần 1 tại đây.

Còn đây là nội dung phần 2:
  • Học cách tạo 1 project trong Code Blocks.
  • Chạy chương trình huyền thoại “Hello World”.
  • Giải thích code.
1699953565168.png

1. Học cách tạo 1 project trong Code Blocks:

Trước khi chúng ta bắt đầu và biên dịch đoạn mã (code) thì trước tiên chúng ta cần tạo một project để chương trình có thể quản lý code của bạn.

Cách tạo 1 project mới:

- Mở chương trình Code Blocks. Ở phía bên trái trên cùng ta chọn: File > New > Project. Một trình thuật sĩ (wizard) sẽ hiện ra như sau:

1489939946welcome.JPG

- Tiếp theo chúng ta sẽ chọn Console application để có thể nhìn được đầu ra (output) của các lệnh (command) của mình. Tiếp theo chọn Go. Sau đó chương trình sẽ hiện ra một màn hình chào như sau:

1489939946console application.JPG

- Chọn Next. Sau đó sẽ đến cửa sổ hỏi chọn C hay C++. Ở đây chúng ta sẽ chọn C++.

1489939946C or C++.JPG

- Tiếp theo sẽ đến cửa sổ hỏi bạn muốn đặt tên project là gì và nơi lưu project. Bạn có thể đặt tên project theo ý muốn của bạn nhưng hãy nhớ là nên đặt tên với dấu “_” (gạch dưới) thay vì dấu cách (điều này là để tránh lỗi với debugger). Tiếp đến là chọn đường dẫn nơi lưu project. Bạn hãy tạo một thư mục riêng để lưu các project trong Code Blocks cho tiện. Sau đó chọn Next.
- Tiếp theo là chọn các tùy chọn nâng cao, bạn hãy để mặc định và chọn Finish.

2. Chạy chương trình huyền thoại “Hello World”

- Sau khi bạn tạo xong project. Bước tiếp theo bạn cần phải làm là gì?

- Hãy nhìn vào phía bên trái màn hình. Bạn sẽ thấy một khung với tên gọi là Workspace. Và ở đó có tên project của bạn, ở đó sẽ có đường dẫn đến File main.cpp như sau: {Tên project} > Sources > main.cpp. Nháy đúp vào file main.cpp để mở nó ra (đấy là trong trường hợp nó chưa được mở ra thôi, còn thường thì mặc định là sau khi bạn tạo project mới nó đã được mở ra rồi).

1489939946workspace.JPG

- Việc tiếp theo bạn cần làm chỉ là biên dịch file main.cpp mặc định đó mà thôi. Nhấn vào nút mình chỉ mũi tên đỏ trong hình vẽ là được.

1489939946hello world c++.JPG

- Sau đó bạn sẽ thấy được kết quả của nó:

1489939946compile hello world c++.JPG

- Vậy là bạn đã hoàn thành chương trình đầu tiên rồi, nhưng đây là chương trình “Hello World” được viết bằng ngôn ngữ C++, sau đây chúng ta sẽ thử biên dịch chương trình đó được viết bằng C. Các bạn copy đoạn code dưới đây dán đè vào màn hình biên soạn main.cpp của Code Blocks:
#include
#include

int main()
{
printf("Hello World!
");
getch();
return 0;
}
- Biên dịch xong bạn sẽ thấy kết quả giống hệt như với đoạn code được viết bằng C++ trước đó.

3. Giải thích code:

Bây giờ mình sẽ giải thích ý nghĩa của đoạn code mà ta vừa biên dịch:

- #include dòng này để khai báo tệp tiêu đề, trong trường hợp này là file stdio.h. Bởi vì trong chương trình ta sử dụng hàm printf() (nằm trong thư viện stdio – standard input/output, thư viện chứa các hàm thực hiện các thao tác vào ra chuẩn) và tương tự với #include để sử dụng getch() (console input/output, thư viện chưa các hàm thực hiện các thao tác vào ra qua bàn phím, màn hình…) nên ta phải khai báo với chương trình dịch gộp các thư viện đó vào chương trình. Nếu ta không gộp thư viện vào chương trình thì ta sẽ không thể sử dụng các hàm có trong thư viện đó.

- int main() đây là hàm chính của chương trình. Tất cả các chương trình đều có hàm này (bạn hãy nhớ là tất cả). Nó là hàm đầu tiên mà chương trình gọi khi chạy. int ở đây đại diện cho kiểu mà chương trình chính trả về sau khi chạy xong. Đó là lý do vì sao ta có lệnh return 0; ở cuối chương trình.

- Hai dấu mở ngoặc nhọn là để đánh dấu khối lệnh chứa bên trong nó.

- printf("Hello World!
");
đây là chỉ thị để in đoạn văn bản ra màn hình.

- getch(); chỉ thị để dừng màn hình chờ gõ một phím bất kì thì kết thúc chương trình.

- return 0; dòng này là để chỉ dẫn chương trình kết thúc bằng mã 0 (mã 0 đại diện cho chương trình kết thúc thành công). Về vấn đề return này khi nào có thời gian mình sẽ nói rõ hơn.

- Một lệnh trong C sẽ kết thúc khi gặp phải dấu ;

Vậy là chúng ta đã xong một chương trình đầu tiên rồi, phần tiếp theo mình sẽ bắt đầu với một lệnh cơ bản.
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Re: C, C++ cho Virus - Phần 2 - Hello World

ảnh bị lỗi không hiển thị bạn ơi
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

Bài viết hay :cool:
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

Koldeady;28588 đã viết:
ảnh bị lỗi không hiển thị bạn ơi
Moderator nào giải quyết giúp mình vụ ảnh bị lỗi với, mình có up mà nó không hiện :)
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

e thay đoạn code
#include
#include

int main()
{
printf("Hello World!
");

getch();
return 0;
}
nhưng nó ko dừng màn hình chờ gõ 1 fím :(
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

anh làm bài nói về quan hệ binary , octal, decimal , hexadecimal :D cũng căn bản .
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

Bài hay căn bản quá a , hóng thêm a :D
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

newstudent;28595 đã viết:
e thay đoạn code
nhưng nó ko dừng màn hình chờ gõ 1 fím :(
Thế lúc bạn chạy nó hiện ra màn hình chữ "Hello World" rồi tắt đi luôn à? Hay là biểu hiện khác? Bạn phải nói rõ ra vấn đề bạn gặp là gì mình mới dễ hiểu hơn chứ...
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

Nếu bạn nào không dùng được getch() trong conio.h thì có thể dùng system("pause") trong Windows.h

Mã:
#include 
#include 


int main()
{
    std::cout
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

Các bạn lưu ý là các ký tự được đóng trong 2 dấu nháy kép đầu vào cuối được gọi là một chuỗi, mỗi ký tự trong chuỗi này được gọi là một ký tự (1 Byte hoặc 2 Byte) . Khi lập trình cơ bản trên Console thì các bạn hãy nắm rõ một số quy tắc đó là khi dùng để in kết quả ra Console thì chỉ được dùng chuỗi với các ký tự trong bảng mã ANSII , không được sử dụng các ký tự Unicode là các chữ có dấu như A, Ă, Â, Ơ, Ư vì nó không nằm trong bảng mã ANSII.

Bảng mã ANSCII gồm tập hợp các ký tự có thể in ra và một số ký tự điều khiển như xuống dòng, tiếng bip, cách tab

Simple ASCII Table_0.jpg
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

bloodplanet;28601 đã viết:
Thế lúc bạn chạy nó hiện ra màn hình chữ "Hello World" rồi tắt đi luôn à? Hay là biểu hiện khác? Bạn phải nói rõ ra vấn đề bạn gặp là gì mình mới dễ hiểu hơn chứ...
chắc tải nhầm code block không có compile rồi a , hồi xưa em mới học cũng bị buid nó không ra .
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

scila1996;28604 đã viết:
Các bạn lưu ý là các ký tự được đóng trong 2 dấu nháy kép đầu vào cuối được gọi là một chuỗi, mỗi ký tự trong chuỗi này được gọi là một ký tự (1 Byte hoặc 2 Byte) . Khi lập trình cơ bản trên Console thì các bạn hãy nắm rõ một số quy tắc đó là khi dùng để in kết quả ra Console thì chỉ được dùng chuỗi với các ký tự trong bảng mã ANSII , không được sử dụng các ký tự Unicode là các chữ có dấu như A, Ă, Â, Ơ, Ư vì nó không nằm trong bảng mã ANSII.

Bảng mã ANSCII gồm tập hợp các ký tự có thể in ra và một số ký tự điều khiển như xuống dòng, tiếng bip, cách tab

1489939946Simple ASCII Table_0.jpg
ASCII -_- sai chính tả
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

madawg;28609 đã viết:
ASCII -_- sai chính tả

Đã sửa, gì mà soi kỹ thế :cool:
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

mình có đôi chút góp ý là nếu code = C thì phần mở rộng để là .c (vd: filenam.c)
cho các bạn mới học phân biệt được, trình dịch 2 loại có đôi chút khác nhau :)))
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: C, C++ cho Virus - Phần 2 - Hello World

cái code thứ 2 được òy. chứ code trước nó có hiện Hello World nhưng nhanh quá không kịp nhìn, giữ Enter 1 hồi mới kịp nhìn á =))
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên