CHƯƠNG 1: TỔNG QUAN 1. Máy tính và hoạt động của máy tính Máy tính hay máy vi tính là một thiết bị độc lập được trang bị các phần mềm, tiện ích cùng với các thiết bị vào ra, các thiết bị ngoại vi khác để thực hiện tính toán hay kiểm soát các hoạt động mà có thể biểu diễn dưới dạng số hay quy luật logic. Máy tính được lắp ghép bởi các thành phần có thể thực hiện các chức năng đơn giản đã định nghĩa trước (Chia ra làm 2 loại là phần cứng và phần mềm). Quá trình tác động tương hỗ phức tạp của các thành phần này tạo cho máy tính một khả năng xử lý thông tin.
Nếu được thiết lập chính xác (thông thường bởi các chương trình máy tính) máy tính có thể mô phỏng lại một số khía cạnh của một vấn đề hay của một hệ thống. Trong trường hợp này, khi được cung cấp một bộ dữ liệu thích hợp nó có thể tự động giải quyết vấn đề hay dự đoán trước sự thay đổi của hệ thống. Hoạt động của máy tính có thể được mô tả như sau: “ Khi nguồn điện được khởi động, BIOS (Basic Input/ Output System) của máy tính sẽ đọc thông tin được ghi ở bộ nhớ ROM trên mainboard để thực hiện các thao tác kiểm tra phần cứng, đọc ngày giờ… sau đó trao quyền điều khuyển cho hệ điều hành. Hệ điều hành nạp các chương trình từ ổ đĩa cứng lên bộ nhớ RAM để thực thi.
Các kết quả của chương trình được lưu trữ vào ổ cứng. Khi tắt nguồn điện, chỉ có ổ cứng lưu giữ được dữ liệu và trạng thái của hệ thống. Hiểu được hoạt động của máy tính giúp chúng ta xác định được hiện trường vụ việc. Khi xử lý vụ việc, yêu cầu sao lưu hệ thống được đặt ra đầu tiên, tuy nhiên không cần thiết phải tịch thu toàn bộ hệ thống mà chỉ cần sao lưu ổ đĩa cứng của máy tính để thao tác.
Điều này là hợp lý, nhất là trong trường hợp phải giữ nguyên hiện trường, không để đối tượng phát hiện máy tính của mình đã bị tiếp cận. 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng 1. Quá trình khởi động Windows và hoạt động của chương trình trên nền Windows Dưới đây mô tả quá trình hoạt động của các hệ điều hành Windows dựa trên nhân NT. Sau khi BIOS khởi động xong, nó sẽ trao quyền điều khiển lại cho hệ điều hành.
Windows đọc sector đầu tiên của phân vùng này, gọi là boot sector, và thực thi lệnh ở đó. Đoạn mã lệnh này sẽ đọc thư mục gốc của phân vùng, tìm kiếm một file được gọi là ntldr (NT Loader). Nếu tìm được file này, nó sẽ đọc file đó vào bộ nhớ và thực thi. Ntldr sẽ tải hệ điều hành vào bộ nhớ.
Tiếp theo, ntldr sẽ đọc 1 file gọi là boot.ini, là thông tin cấu hình duy nhất không chứa trong registry. Nó liệt kê tất cả các phiên bản của hal.dll và ntoskrnl.exe có sẵn để khởi động trong phân vùng này. Các file này cung cấp nhiều tham số, như số lượng CPU, dung lượng RAM sử dụng, có cho phép người dung xử lý 2 GB hoặc 3 GB dữ liệu hay không và tần số xung (rate) được thiết lập cho đồng hồ thời gian thực. Ntldr tiếp tục lựa chọn và tải các hal.dll và ntoskrnl.dll cũng như fule bootvid.dll, chương trình điểu khiển (driver) video mặc định để hiển thị thông tin quá trình khởi động.dll đọc registry để tìm ra những trình điều khiển cần thiết để hoàn tất việc khởi động (ví dụ, chương trình điểu khiển bàn phím và chuột, và hàng tá các trình điều khiển cho các chip ở trên mainboard).
Cuối cùng, nó đọc tất cả các driver và trao quyền lại cho ntoskrnl. Khi khởi động, hệ điều hành sẽ gọi các thành phần thực thi để thực hiện một vài thiết lập thông thường nào đó. Ví dụ, trình điều khiển đối tượng (object manager) chuẩn bị không gian tên (name space) của nó để cho phép các thành phần khác gọi nó và thêm đối tượng vào không gian tên. Nhiều thành phần cũng có thể 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng thực hiện được công việc riêng biệt liên quan đến chức năng của chúng, ví dụ như trình điều 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng khiển bộ nhớ có thể thiết lập bảng phân trang ban đầu trình điều khiển cắm-chạy (plug-and-play) có thể biết được những thiết bị nhập/xuất hiện tại và tải trình điều khiển cho chúng.
Nói chung, có hàng loạt bước xảy ra. Bước cuối cùng là tạo ra tiến trình người sử dụng thực sự đầu tiên, trình điều khiển phiên (session manager), smss. Một khi tiến trình này được gọi và thực thi có nghĩa là quá trình khởi động đã kết thúc. Trình điều khiển phiên là tiến trình nguyên sơ của Windows.
Nó thực hiện các lời gọi hệ thống thực sự và không sử dụng môi trường hệ thống phụ Win32, là môi trường mà lúc này vẫn chưa hoạt động. Thực ra, một trong những nhiệm vụ đầu tiên của nó là tạo ra chính nó (csrss. Nó cũng đọc các nhánh registry từ đĩa và nhận biết các nhiệm vụ của nó. Thông thường công việc của nó bao gồm việc đưa các đối tượng vào không gian tên của trình điều khiển đối tượng, tạo ra các phân trang tập tin mở rộng và mở các DLL quan trọng để sử dụng chúng thường xuyên.
Sau khi đã hoàn tất các công việc này, nó tạo ra chương trình đăng nhập (login daemon), winlogon. Như vậy, hệ điều hành đã hoạt động. Bây giờ là thời điểm thực thi các tiến trình dịch vụ (không gian chương trình người sử dụng) và cho phép người sử dụng đăng nhập.exe trước tiên tạo ra trình xác thực (Isass.exe), và sau đó là tiến trình chủ của tất cả các dịch vụ (services. Tiến trình chủ này sẽ tìm kiếm trong registry những tiến trình cần thiết trong không gian tiến trình người dùng và các file chứa chúng, rồi tạo ra chúng.
Thực tế, đĩa thường hoạt động rất nặng sau khi người dùng đầu tiên đăng nhập, nhưng đó không phải là lỗi của người dùng. Thủ phạm là services.exe đã tạo ra tất cả các dịch vụ. Thêm vào đó, nó còn tải thêm các trình điều khiển thiết bị còn thiếu. Quá trình đó có thể được mô tả dưới đây như sau: Tiến trình Mô tả 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng Idle Không thực sự là 1 tiến trình,mà là 1 tiểu trình chờ đợi 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng System Tạo ra smss.exe và phân trang tập tin, đọc registry, mở DLL smss.exe Tiến trình đầu tiên, tiếp tục khởi tạo; tạo ra csrss và winlogon csrss.exe Tiến trình hệ thống con Win32 winlogon.exe Chương trình đăng nhập Isass.exe Chương trình quản lý xác thực service.exe Tìm kiếm trong registry và khởi động các dịch vụ Bảng 1.
Cây phân cấp quá trình khởi động của Windows dựa trên nhân NT Các dịch vụ ở đây có thể là máy phục vụ in ấn, máy phục vụ file, trình Telnet, điều khiển mail đến, điều khiển fax đến, giải pháp DNS, nhật ký sự kiện, trình điều khiển cắm- chạy… Winlogon.exe đáp ứng cho mọi người sử dụng. Hộp thoại đăng nhập thực sự được điều khiển bởi 1 chương trình riêng biệt trong msgina.dll nhằm đảm bảo cho nó có thể thay thế cách đăng nhập chuẩn (bằng tên mật khẩu) bằng nhận dạng vân tay hoặc cách xác thực khác. Sau khi đăng nhập thành công, winlogon.exe lấy thông tin cá nhân của người dùng trong registry và chính nó để quyết định thực thi những shell nào. Nhiều người không nhận ra điều đó, nhưng màn hình desktop của Windows chuẩn chỉ có explorer.exe với một tùy chọn nào đó.
Nếu muốn, người sử dụng có thể chọn bất cứ chương trình nào như các shell, bao gồm command.exe hoặc ngay cả Word, bằng các chỉnh sửa registry. Tuy nhiên, việc chỉnh sửa registry không dành cho người thiếu hiểu biết; một lỗi lầm có thể khiến cho hệ thống không thể sử dụng được. Quá trình khởi động của các hệ điều hành Windows dựa trên nhân NT về sau về cơ bản cũng giống như trên. Trên đây ta đã nắm được quá trình khởi động của hệ điều hành Windows, vậy một chương trình phần mềm hoạt động ra sao trên nền hệ điều hành đó ? Chương trình là một dãy các mệnh lệnh có thể được thực thi bởi máy tính.
Các chương trình được tạo ra bằng các ngôn ngữ lập trình, mỗi chương trình có thể có 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng nhiều module, trong đó các module có thể gọi module khác trong cùng chương trình, và cũng có thể gọi đến các module của chương trình khác. Sau đó chương trình được dịch thành PE file dưới dạng nhị phân (*.dll…) để có thể thực thi. Chương trình chỉ hoạt động được khi có tác nhân kích hoạt nó. Đó có thể là: - Do người dùng kích hoạt (cố ý hoặc vô ý) - Do hệ điều hành kích hoạt.
Hệ điều hành có thể kích hoạt các chương trình theo 2 cách: + Đọc thông tin từ các file cấu hình của Windows và registry (sẽ nói rõ ở phần sau). Các phiên bản Windows từ Windows 98 trở về trước đọc thông tin thiết lập trong các file cấu hình như win.ini và autoexec.bat để kích hoạt các chương trình khởi động. Từ phiên bản Windows 2000 trở đi, tuy các file này vẫn có trong cấu trúc hệ điều hành nhưng không còn được sử dụng nữa. Các chương trình cũng có thể được thực thi bằng cách tạo các khóa ở trong registry, thường ở những khóa sau: Registry Shell open [HKEY _CLASSES_ ROOT\exefile\shell\open\command] [HKEY _LOCAL_ MACHINE\SOFTW ARE\Classes\exefile\shell\open \command] Một khóa có giá trị “%1 %*’’, sẽ tự động được thực thi mỗi khi thi hành một file.exe %1 %*” Alternate Registry Keys [HKEY _CLASSES_ ROOT\.exe] @="myexefile"] [HKEY _LOCAL_ MACHINE\Software\CLASSES\myexefile\shell\open \command\ @="program.exe %1 %*"] Main Registry 1 Phượng pháp phát hiện phần mềm cài cắm để chặn thu tin bí mật qua mạng [HKEY _LOCAL_ MACHINE\Software\Microsoft\ Windows\Current Version\RunServices] [HKEY _LOCAL_ MACHINE\Software\Microsoft\ Windows\Current Version\RunServicesOnce] [HKEY _LOCAL_ MACHINE\Software\Microsoft\ Windows\Current Version \Run] [HKEY _LOCAL_ MACHINE\Software\Microsoft\ Windows\Current Version\RunOnce] [HKEY _CURRENT_ USER\Software\Microsoft\ Windows\CurrentVersion \Run] [HKEY _CURRENT_ USER\Software\Microsoft\ Windows\CurrentVersion\RunOnce] [HKEY _CURRENT_ USER\Software\Microsoft\ Windows\CurrentVersion \RunServices] + Các chương trình/module của Windows gọi đến.
- Do chương trình/ module khác (không phải của Windows) kích hoạt bằng mã lệnh. Khi đã được kích hoạt, chương trình sẽ thực hiện nhiệm vụ của nó dưới dạng tường minh hoặc ẩn (background) mà người sử dụng khó nhận biết. Trong quá trình đó, nó cũng có thể gọi thêm các chương trình/module khác.