Phần mềm keyloger sử dụng Hook Windows - pdf 17

Download miễn phí Đồ án Phần mềm keyloger sử dụng Hook Windows



MỤC LỤC
T ỔNG QUAN VỀ ĐỀ TÀI. 5
Chương 1. CƠ SỞ LÝ THUYẾT. 6
I. Giới thiệu. 6
II. Thông Điệp và HÀNG ĐỢI THÔNG ĐIỆP CỦA WINDOWS . 6
II.1. Giới thiệu. 6
II.1.1. Thông đi ệp windo ws . 6
II.1.2. Lo ại Thông điệp . 7
II.1.3. Lộ trình thông đi ệp . 10
II.1.4. Xử lý thông điệp . 12
II.1.5. Lọc thông điệp . 16
II.1.6. Đăng và chuyển thông điệp . 16
II.1.7. Bế tắc thông điệp . 18
II.1.8. Thông đi ệp quảng bá . 19
II.1.9. Truy vấn thông điệp . 20
II.2. Sử dụng thông điệp và hàng đợi thông điệp . 21
II.2.1. T ạo vòng lặp thông điệp . 21
II.2.2. Kiểm tra một hàng đ ợi thông điệp . 24
II.2.3. Đăng thông đi ệp . 25
II.2.4. Gửi một thông đi ệp . 26
III. k ỹ thu ật hook . 28
III.1. Giới thiệu . 28
III.2. Chuỗi Hook . 29
III.2.1. Thủ tục Hook. 29
III.2.2. Các kiểu Hook . 29
III.3. Cách s ử dụng . 31
III.3.1. Cài đ ặt Hook . 31
III.3.2. Giải phóng Hook . 31
IV. windows 32 api . 32
IV.1. Giới thiệu . 32
IV.2. Các hàm thườ ng dùng . 32
IV.2.1. SetWindowsHookEx . 32
IV.2.2. UnhookWindowsHookEx . 33
IV.2.3. CallNextHookEx. 33
IV.2.4. LowLevelKeyboardProc . 34
IV.2.5. GetKeyState . 35
IV.2.6. GetKeyboardState . 35
IV.2.7. To Ascii . 35
IV.2.8. LoadLibrary. 36
IV.2.9. GetProcAddress . 36
IV.2.10. OpenProcess . 36
IV.2.11. EnumProcessModules . 37
IV.2.12. GetModuleBaseName. 37
IV.2.13. GetForegroundWindow. 38
IV.2.14. GetWindowThreadProcessId . 38
IV.2.15. GetLocalTime . 39
IV.3. Mã bàn phím ảo . 39
Chương 2. PHÂN TÍCH VÀ XÂY DỰNG CHƯƠNG TRÌNH. 47
I. PHân tích yêu c ầu . 47
I.1. Yêu c ầu v ề chức năng . 47
I.2. Yêu c ầu v ề giao diện người dùng . 47
I.3. Yêu c ầu v ề tương thích . 47
II. phân tích chức năng. 47
III. xây dựng chức năng . 47
III.1. T ập tin thi hành Jaam.exe . 47
III.2. Thư viện Hooker.dll . 49
III.2.1. Phiên bản 1 . 49
III.2.2. Phiên bản 2 . 51
III.2.3. Phiên bản 3 . 53
Chương 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ. 57
I. Môi trường triển khai. 57
II. Kết qu ả chức nĂng chương trình . 57
III. Đánh giá và nh ận xét . 58



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

kiểm soát bằng cách gửi một thông điệp tới nó. Việc kiểm soát có thể thông
báo cho cửa sổ cha mẹ thay đổi văn bản được thực hiện bởi người sử dụng bằng
cách gửi tin nhắn lại cho phụ huynh.
18 Bộ môn Mạng và Truyền Thông
Nguyễn Quang Nhật – Nguyễn Quốc Mỹ
Chức năng SendMessageCallback cũng sẽ gửi một thông điệp tới các thủ tục
cửa sổ tương ứng với cửa sổ nhất định. Tuy nhiên, chức năng này trả về ngay lập
tức. Sau khi các thủ tục cửa sổ xử lý tin nhắn, hệ thống các cuộc gọi chức năng gọi
lại quy định. Để biết thêm thông tin về chức năng gọi lại, thấy chức năng
SendAsyncProc.
Chức năng SendMessageCallback cũng sẽ gửi một thông điệp tới các thủ tục
cửa sổ tương ứng với cửa sổ nhất định. Tuy nhiên, chức năng này trả về ngay lập
tức. Sau khi các thủ tục cửa sổ xử lý tin nhắn, hệ thống các cuộc gọi chức năng gọi
lại quy định. Để biết thêm thông tin về chức năng gọi lại, thấy chức năng
SendAsyncProc.
Bằng cách sử dụng chức năng InSendMessage hay InSendMessageEx, một
thủ tục cửa sổ có thể xác định cho dù đó là chế biến một thông báo được gửi bởi
thread khác. Khả năng này rất hữu ích khi xử lý thông báo phụ thuộc vào nguồn gốc
của tin nhắn.
II.1.7. Bế tắc thông điệp
Một chủ đề đó gọi hàm SendMessage để gửi tin nhắn đến chủ đề khác không
thể tiếp tục thực hiện cho đến khi các thủ tục cửa sổ nhận được tin nhắn trả về. Nếu
sản lượng chủ đề được kiểm soát trong khi xử lý tin nhắn, các chủ đề gửi không có
thể tiếp tục thực hiện, bởi vì nó là chờ đợi cho SendMessage trở lại. Nếu các chủ đề
nhận được được gắn vào hàng đợi tương tự như người gửi, nó có thể gây ra một bế
tắc ứng dụng để xảy ra. (Lưu ý rằng tạp chí móc đính kèm các chủ đề cùng một
hàng đợi.)
Lưu ý rằng các chủ đề nhận được cần không mang lại kiểm soát một cách rõ
ràng, gọi điện thoại bất kỳ của các chức năng sau có thể gây ra một thread để năng
suất kiểm soát ngầm.
- DialogBox
- DialogBoxIndirect
- DialogBoxIndirectParam
- DialogBoxParam
KeyLogger-Sử dụng Hook Windows 19
Nguyễn Quang Nhật – Nguyễn Quốc Mỹ
- GetMessage
- MessageBox
- PeekMessage
- SendMessage
Để tránh bế tắc tiềm năng trong ứng dụng của bạn, hãy xem xét sử dụng
SendNotifyMessage hay các chức năng SendMessageTimeout. Nếu không, một thủ
tục cửa sổ có thể xác định xem một tin nhắn đã nhận được đã được gửi chủ đề khác
bằng cách gọi InSendMessage hay InSendMessageEx chức năng. Trước khi gọi bất
kỳ các chức năng trong danh sách trước khi thực hiện một tin nhắn, các thủ tục cửa
sổ đầu tiên nên gọi InSendMessage hay InSendMessageEx. Nếu chức năng này trả
về TRUE, các thủ tục cửa sổ phải gọi hàm ReplyMessage trước khi bất kỳ chức
năng gây ra các chủ đề để sản lượng kiểm soát.
II.1.8. Thông điệp quảng bá
Mỗi thông điệp bao gồm một định danh thông điệp và hai tham số wParam
và lParam. Từ định danh tin nhắn là một giá trị duy nhất quy định cụ thể mục đích
thông báo. Các thông số cung cấp thông tin bổ sung đó là thông điệp cụ thể, nhưng
các tham số wParam nói chung là một giá trị kiểu cung cấp thông tin về tin nhắn.
Chương trình phát sóng tin nhắn chỉ đơn giản là gửi một tin nhắn tới nhiều
người trong hệ thống. Để phát sóng một thông điệp từ một ứng dụng, sử dụng chức
năng BroadcastSystemMessage, quy định cụ thể người nhận của tin nhắn. Thay vì
chỉ định người nhận cá nhân, bạn phải chỉ định một hay nhiều loại người nhận.
Những loại ứng dụng, trình điều khiển cài đặt, trình điều khiển mạng, và các trình
điều khiển thiết bị hệ thống. Hệ thống sẽ gửi tin nhắn quảng bá cho tất cả các thành
viên của từng loại quy định.
Hệ thống này thường chương trình phát sóng thông điệp phản ứng với những
thay đổi diễn ra trong các trình điều khiển thiết bị hệ thống hay các thành phần liên
quan. Người lái xe hay thành phần liên quan đến chương trình phát sóng thông
điệp đến các ứng dụng và các thành phần khác để thông báo cho họ về sự thay đổi.
20 Bộ môn Mạng và Truyền Thông
Nguyễn Quang Nhật – Nguyễn Quốc Mỹ
Ví dụ, thành phần chịu trách nhiệm cho các ổ đĩa chương trình phát sóng một thông
báo bất cứ khi nào điều khiển thiết bị cho các ổ đĩa mềm phát hiện một sự thay đổi
của các phương tiện truyền thông chẳng hạn như khi người sử dụng chèn một đĩa
vào ổ đĩa.
Hệ thống chương trình phát sóng tin nhắn đến người nhận theo thứ tự này: hệ
thống cấp trình điều khiển thiết bị, trình điều khiển mạng, cài đặt trình điều khiển,
và các ứng dụng. Điều này có nghĩa là hệ thống cấp trình điều khiển thiết bị, nếu
được lựa chọn như người nhận, luôn luôn có được cơ hội đầu tiên để đối phó với
một tin nhắn. Trong thời hạn một loại người nhận nhất định, lái xe không được đảm
bảo để nhận được thông báo đưa ra trước khi bất kỳ trình điều khiển khác. Điều này
có nghĩa rằng một thông điệp dành cho một trình điều khiển cụ thể phải có một định
danh tin nhắn trên toàn cầu duy nhất để không có trình điều khiển khác vô ý quá
trình đó.
Bạn cũng có thể phát sóng các tin nhắn cho tất cả các cửa sổ cấp cao nhất
bằng cách xác định HWND_BROADCAST trong SendMessage,
SendMessageCallback, SendMessageTimeout, hay SendNotifyMessage chức năng.
Các ứng dụng nhận tin nhắn thông qua các thủ tục cửa sổ của cửa sổ cấp cao
nhất của họ. Tin nhắn không được gửi đến các cửa sổ con. Dịch vụ có thể nhận tin
nhắn thông qua một thủ tục xử lý cửa sổ hay dịch vụ kiểm soá
Lưu ý hệ thống cấp trình điều khiển thiết bị sử dụng một chức năng, hệ thống
cấp liên quan để phát sóng các thông báo hệ thống.
II.1.9. Truy vấn thông điệp
Bạn có thể tạo ra các tin nhắn tùy chỉnh của bạn và sử dụng chúng để phối
hợp hoạt động giữa các ứng dụng của bạn và các thành phần khác trong hệ thống.
Điều này đặc biệt hữu ích nếu bạn đã tạo ra trình điều khiển cài đặt riêng của bạn
hay trình điều khiển thiết bị hệ thống cấp. Tin nhắn tuỳ chỉnh của bạn có thể mang
thông tin đến và từ trình điều khiển của bạn và các ứng dụng sử dụng các trình điều
khiển.
KeyLogger-Sử dụng Hook Windows 21
Nguyễn Quang Nhật – Nguyễn Quốc Mỹ
Bạn có thể tạo ra các tin nhắn tùy chỉnh của bạn và sử dụng chúng để phối
hợp hoạt động giữa các ứng dụng của bạn và các thành phần khác trong hệ thống.
Điều này đặc biệt hữu ích nếu bạn đã tạo ra trình điều khiển cài đặt riêng của bạn
hay trình điều khiển thiết bị hệ thống cấp. Tin nhắn tuỳ chỉnh của bạn có thể mang
thông tin đến và từ trình điều khiển của bạn và các ứng dụng sử dụng các trình điều
khiển.
II.2. Sử dụng thông điệp và hàng đợi thông điệp
II.2.1. Tạo vòng lặp thông điệp
Các hệ thống không tự động tạo một hàng đợi tin nhắn cho mỗi thread. Thay
vào đó, hệ thống sẽ tạo ra một hàng đợi tin nhắn chỉ dành cho các chủ đề thực hiện
các hoạt động mà yêu cầu ...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status