Tạo mới tiến trình với fork

Có lẻ các bạn đã quen với Windows, hệ điều hành máy tính phổ biến nhất thế giới. Windows được ưu chuộn vì dể sử dụng, sự hổ trợ mạnh mẻ của các hảng phần mềm, trò chơi…. Và vì vậy hệ điều hành này nắm vị trí độc tôn trên nền tảng máy tính cá nhân. Một đối thủ truyền kiếp của Windows là Linux đang ngày càng một phát triển mạnh mẽ, không chỉ hướng tới việc cung cấp nền tảng hệ điều hành cho server mà còn hướng tới người dùng cá nhân. Như các bạn đã biết, Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành. Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việc phát triển mã nguồn mở[1]. Trái ngược hoàn toàn với việc độc tôn của Windows, Linux cho phép các nhà phát triển từ do sử dụng mã nguồn, tự do phân phối… góp phần mở ra kỷ nguyên mà nguồn mở. Giới thiệu thế đủ rồi, bữa nay chúng ta sẽ nguyên cứu song song cả Windows và Linux cho nó máu. Để mở đầu cho loạt bài viết về Linux, mình sẽ hướng dẩn cách tạo tiến trình con trong Linux.

Tạo mới tiến trình với exec

Như đã biết thì hàm fork() sẽ tạo mới một tiến trình con bởi việc “sao chép” lại tiến trình cha. Nghĩa là nó sẽ thực thi lại chính chương trình cha đã tạo ra nó, kiểu như cha nào con nấy. Nhưng thực tế không phải lúc nào chúng ta cũng muốn “cha nào con nấy”, đôi lúc thì con sinh ra phải giống “ông hàng xóm” chứ :)). Bài viết này mình sẽ hướng dẩn cách tạo mới tiến trình con rồi thực thi mới một chương trình khác thay vì thực thi lại chương trình cha đã tạo ra nó.

Để thực hiện được điều này chúng ta sẽ sử dụng kết hợp giữa fork() và một hàm mới đó là exec(…).

Kết thúc tiến trình

Qua các bài viết trướt thì bạn đã biết cách tạo mới một tiến trình sử dụng fork rồi. Bây giờ ta sẽ tìm hiểu về các các để kết thúc một tiến trình. Ta có thể kết thúc một cách chủ động hay thụ động hoặc chờ một tiến trình kết thúc. Tùy vào từng trường hợp cụ thể ta có thể lựa chọn giải pháp thích hợp cho chương trình của mình.

Mùa hè thác loạn

Vào thời của tôi, hè mang đúng nghĩa của nó. Không sách vở, không học lại và cũng chẳng có khái niệm học hè như bây giờ. Chỉ ăn và chơi suốt mấy tháng hè, không lo nghỉ. Hồi ấy khi gần đến hè, tiếng ve kêu và những bài kiểm tra cuối kỳ làm chúng tôi rân rang vì sắp được “xõa”. Và chẳng còn khái niệm bài vở trong đầu mà chỉ toàn hè, hè và hè.

Thời ấy, xóm chúng tôi có một vài đầu điện tử, loại cắm vào ti vi và xài băng vuông ấy. Nó là cả một gia tài đối với chúng tôi. Tôi thì chẳng có điều kiện nên phải sửa những chiết đầu điện tử hư để chơi. Băng thì toàn mượn rồi “quên trả”, chà, nói thế thôi chứ chúng tôi toàn trao đổi băng với nhau, lợi cả đôi bên mà. Tôi với thằng bạn ôm ti vi từ sáng sớm đến tối. Chúng tôi chơi hết tất cả các trò và “phá đảo” cũng gần hết. Lúc chúng tôi chơi, lũ trẻ con xúm lại xem như xem e-sport thời nay vậy. Thời ấy, kẻ thù lớn nhất của chúng tôi là cúp điện(và bây giờ là đứt mạng). Những hôm ấy, chúng tôi sống “vật vờ” và trông chờ có điện còn hơn chờ mẹ đi chợ về.

Tự viết một spyware cho riêng mình - Capture screen

Phần 2 chúng ta đã xây dựng xong keylog, phần tiếp theo chúng ta sẽ cùng tìm hiểu cách chụp ảnh màng hình máy tính, đây cũng là một trong những tính năng khá quan trọng của spy. Các lý thuyết về phần này như Device Context(DC), PICTDESC, BITMAP trong Windows các bạn có thể đọc ngay trên trang chủ để biết thêm chi tiết. Mình sẽ nói về 2 bước chính để thực hiện đó là chụp ảnh màng hình và lưu ảnh đã chụp vào file.

Lý thuyết

Pagination


Copyright © 2022. All rights reserved.