Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi

29 1 0
Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi Báo cáo đồ án cơ sở ngành mạng xây dựng chương trình bắt phím keylogger xây dựng ứng dụng đánh bài cho phép nhiều người chơi

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO ĐỒ ÁN CƠ SỞ NGÀNH MẠNG Phần Nguyên lý hệ điều hành: Tìm hiểu kỹ thuật lập trình Hook Xây dựng ứng dụng bắt phím Keylogger Phần Lập trình mạng Xây dựng game đánh cho phép nhiều người chơi qua mạng MỤC LỤC DANH MỤC HÌNH VẼ MỞ ĐẦU .4 PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: TÌM HIỂU KỸ THUẬT LẬP TRÌNH HOOK XÂY DỰNG ỨNG DỤNG BẮT PHÍM KEYLOGGER CHƯƠNG CƠ SỞ LÝ THUYẾT Tổng quan Hook 1.1 Các mơ hình Hook 1.2 Thủ tục Hook 1.3 Các kiểu Hook Tổng quan Win32 API 2.1 Tổng quan Keylogger 2.2 Phân loại Keylogger 2.3 Cách hoạt động Keylogger nào? 2.4 Cách phòng, tránh phát Keylogger ? .10 CHƯƠNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .11 Yêu cầu toán .11 Mô tả toán 11 Sơ đồ thuật toán 11 Thiết kế hệ thống 12 CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN .14 Môi trường triển khai .14 Kết chạy chương trình 14 Hướng phát triển 15 PHẦN II LẬP TRÌNH MẠNG .15 ĐỀ TÀI : XÂY DỰNG CHƯƠNG TRÌNH TRỊ CHƠI BÀI TIẾN LÊN THÔNG QUA SOCKET JAVA 15 CHƯƠNG CƠ SỞ LÝ THUYẾT 15 Mạng máy tính 15 1.1 Khái niệm 15 1.2 Mô hình mạng khách chủ (Client-Server) .16 Giao thức mạng 18 2.1 Định nghĩa giao thức TCP/IP 18 2.2 Định nghĩa giao thức TCP 19 Lập trình Socket 19 3.1 Định nghĩa Socket 19 3.2 Số hiệu cổng Socket 20 3.3 Nguyên lý hoạt động Socket 20 3.4 Socket java 21 CHƯƠNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .22 Phân tích yêu cầu: 22 1.1 Giới thiệu trò chơi 22 1.2 Luật chơi .22 1.3 Thiết lập chương trình .23 CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN .23 Môi trường triển khai: .23 Kết hướng phát triển: 23 2.1 Kết chương trình .24 2.2 Nội dung cải tiến : 26 KẾT LUẬN CHUNG .27 TÀI LIỆU THAM KHẢO 27 DANH MỤC HÌNH Hình 1 Sơ đồ thuật tốn cho chương trình bắt phím Keylogger .12 Hình Xây dựng hệ thống .13 Hình Kết chương trình 14 Hình Kết chương trình 15 Y Hình Mơ mơ hình Client-Server 16 Hình 2 Mô tầng giao thức TCP/IP .19 Hình Đăng nhập vào chương trình 22 Hình Mơ tầng giao thức TCP/IP .23 Hình Bắt đầu trị chơi 24 Hình Kết chương trình 25 Hình Kết thúc trận đấu 25 MỞ ĐẦU Tổng quan đề tài Nguyên lý hệ điều hành Lập trình mạng kiến thức tảng mà lập trình viên phải hiểu rõ để phục vụ cho kiến thức cao Hệ điều hành tập hợp chương trình phần mềm chạy máy tính, dùng để điều hành, quản lý thiết bị phần cứng tài nguyên phần mềm máy tính Hệ điều hành đóng vai trị trung gian việc giao tiếp người sử dụng phần cứng máy tính, cung cấp mơi trường cho phép người sử dụng phát triển thực ứng dụng cách dễ dàng Cùng với phát triển mạng Internet nay, việc nghiên cứu nhằm vững kiến thức mạng quan trọng Dựa hiểu biết tìm hiểu tài liệu, em nghiên cứu thực đề tài: xây dựng chương trình bắt phím Keylogger dựa kỹ thuật lập trình Hook xây dựng game đánh cho phép nhiều người chơi qua mạng Em xin chân thành cảm ơn thầy cô khoa Công Nghệ Thông Tin tạo điều kiện để em nghiên cứu kỹ kiến thức này, đặc biệt thầy Nguyễn Tấn Khơi nhiệt tình theo dõi, hướng dẫn em trình thực đề tài Vì kiến thức cịn hạn chế nên khơng thể tránh khỏi sai sót q trình làm đề tài, mong nhận góp ý thầy để sản phẩm hồn thiện Em xin chân thành cảm ơn Người thực Đặng Phúc Thịnh Mục đích ý nghĩa 1.1 Mục đích  Phần Hệ điều hành  Tìm hiểu kỹ thuật lập trình Hook xây dựng chương trình bắt phím keylogger  Chỉ ưu cách phòng chống malware  Phần Lập trình mạng  Tìm hiểu giao thức TCP/IP  Chỉ ưu, nhược điểm giao thức  Xây dựng game đánh cho phép nhiều người chơi qua mạng 1.2 Ý nghĩa - Cơ hội nghiên cứu kiểm tra lại kiến thức học: TCP/IP, lập trình Socket - Rèn luyện kĩ lập trình với ngơn ngữ Java - Rèn luyện số kĩ mềm: kĩ làm việc độc lập, kĩ tìm tài liêu, kĩ nghiên cứu, kĩ tư duy, kĩ giải toán, kĩ viết báo cáo slide thuyết trình, kĩ thuyết trình kĩ giao tiếp 1.3 Bố cục đồ án Mở đầu Phần I: Nguyên lý hệ điều hành Chương 1: trình bày Cơ sở lý thuyết Chương 2: trình bày Phân tích thiết kế hệ thống Chương 3: trình bày Triển khai đánh giá kết Phần II: Lập trình mạng Chương 1: trình bày Cơ sở lý thuyết Chương 2: trình bày Phân tích thiết kế hệ thống Chương 3: trình bày Triển khai đánh giá kết PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: TÌM HIỂU KỸ THUẬT LẬP TRÌNH HOOK XÂY DỰNG ỨNG DỤNG BẮT PHÍM KEYLOGGER CHƯƠNG CƠ SỞ LÝ THUYẾT Tổng quan Hook Hook kỹ thuật điều khiển thông điệp (message-handling) giúp cho ứng dụng cài đặt thủ tục để điều khiển luồng thông điệp tiến hành xử lý thơng điệp trước thơng điệp tới cửa sổ đích  Hook xem tính mạnh mẽ Windows, cho phép ta đặt bẫy kiện Bằng cách sử dụng hook, ta điều hướng ứng dụng tới thủ tục mà kiện quan tâm xuất kiện thuộc tiến trình bạn hay thuộc tiến trình khác  Để viết chương trình Hook ta cần nắm bắt chế xử lý thông điệp Windows, Thư viện Win32 API Kỹ thuật Hook  1.1 Các mơ hình Hook ● Local hook: kỹ thuật Hook dùng để bẫy kiện tiến trình cài đặt ● Remote hook: kỹ thuật Hook cho phép bẫy kiện thuộc tiến trình ứng dụng khác ● Trong mơ hình lại tồn hai kiểu hook khác : o Thread-specific : kiểu Hook bẫy kiện luồng cụ thể o System-wide : bẫy kiện tất luồng tất tiến trình thi hành hệ thống ● Thành phần Hook o Chuỗi Hook o Thủ tục Hook o Các kiểu Hook ● Hook kỹ thuật xử lý thông điệp mạnh cho phép can thiệp sâu vào tiến trình khác nhau, làm ảnh hưởng tới tốc độ hệ thống, hook system-wide, tất kiện hệ thống định hướng tới hàm đó, rõ ràng điều làm hệ thống chậm đáng kể Vì ta hên hook thơng điệp thật cần thiết kết thúc việc hook không dùng đến 1.2 Thủ tục Hook ● Thủ tục hook nhận thông báo chạy hoạt động định lập trình viên Hầu hết mã hack viết thủ tục hook Khi tác vụ kết thúc, hệ điều hành chuyển tải thông báo đến trỏ chuỗi hook, đơi gọi hàm gọi lại ● Thủ tục hook có dạng sau: HookProc( int nCode, WPARAM wParam, LPARAM lParam ); Trong :  HookProc: tên đại diện thủ tục hook cài đặt  nCode : Đây mã hook, định tồn hoạt động thủ tục hook, mã hook phụ thuộc vào kiểu hook kiểu hook gán cho ký tự để thiết lập mã hook  wParam, lParam: Hai tham số chứa thông tin thông điệp hook phụ thuộc vào mã hook (nCode) 1.3 Các kiểu Hook ● WH_CALLWNDPROC: Cài đặt thủ tục hook theo dõi message trước hệ thống gửi chúng đến thủ tục cửa sổ đích ● WH_CALLWNDPROCRET: Cài đặt thủ tục hook theo dõi message sau xử lý thủ tục cửa sổ đích ● WH_CBT: Cài đặt thủ tục hook tiếp nhận thơng báo hữu ích để ứng dụng CBT ● WH_DEBUG : Cài đặt thủ tục hook hữu ích để gỡ lỗi thủ tục hook khác ● WH_FOREGROUNDIDLE: Cài đặt thủ tục hook gọi luồng ứng dụng trở thành nhàn rỗi Hook hữu dụng cho thực nhiệm vụ ưu tiên thấp thời gian nhàn rỗi ● WH_GETMESSAGE: Cài đặt thủ tục hook theo dõi message đưa lên hàng đợi message ● WH_JOURNALPLAYBACK: Cài đặt thủ tục hook gởi message trước ghi lại thủ tục hook WH_JOURNALRECORD ● WH_JOURNALRECORD: Cài đặt thủ tục hook ghi lại message đầu vào đưa lên hàng đợi thông điệp hệ thống Hook hữu ích cho macro ghi ● WH_KEYBOARD: Cài đặt thủ tục móc theo dõi tin nhắn tổ hợp phím ● WH_KEYBOARD_LL: Cài đặt thủ tục móc theo dõi kiện bàn phím đầu vào mức độ thấp ● WH_MOUSE: Cài đặt thủ tục móc theo dõi tin nhắn chuột ● WH_MOUSE_LL: Cài đặt thủ tục móc theo dõi kiện chuột đầu vào mức độ thấp ● WH_MSGFILTER: Cài đặt thủ tục móc theo dõi tin nhắn tạo kết kiện đầu vào hộp thoại, hộp thông báo, menu, di chuyển ● WH_SHELL: Cài đặt thủ tục hook tiếp nhận thơng báo hữu ích cho ứng dụng shell ● WH_SYSMSGFILTER: Cài đặt thủ tục móc theo dõi tin nhắn tạo kết kiện đầu vào hộp thoại, hộp thông báo, menu, di chuyển Tổng quan Win32 API 2.1 Tổng quan Keylogger ● Keylogger hay "trình theo dõi thao tác bàn phím" theo cách dịch tiếng Việt chương trình máy tính ban đầu viết nhằm mục đích theo dõi ghi lại thao tác thực bàn phím vào tập tin nhật ký (log) người cài đặt sử dụng Vì chức mang tính vi phạm vào riêng tư người khác nên trình keylogger xếp vào nhóm phần mềm gián điệp ● Về sau, keylogger phát triển cao khơng ghi lại thao tác bàn phím mà cịn ghi lại hình ảnh hiển thị hình (screen) cách chụp (screenshot) quay phim (screen-capture) chí cịn ghi nhận cách trỏ chuột máy tính di chuyển 2.2 Phân loại Keylogger Keylogger bao gồm hai loại, loại Keylogger phần cứng loại phần mềm Thực tế nay, cách sử dụng chức Keylogger giới thường sử dụng phần mềm nhiều so với Keylogger phần cứng Nhưng cách sử dụng khác nên khiến người ta thường hay phân loại keylogger theo mức độ nguy hiểm câu hỏi: ● Nhiễm vào máy không qua cài đặt/Cài đặt vào máy cực nhanh (quick install)? ● Có thuộc tính ẩn/giấu trình quản lý tiến trình (process manager) trình cài đặt gỡ bỏ chương trình (Add or Remove Program)? ● Theo dõi khơng thơng báo/PC bị nhiễm khó tự phát hiện? ● Có thêm chức Capture screen ghi lại thao tác chuột? ● Khó tháo gỡ? ● Có khả lây nhiễm, chống tắt (kill process)? ● Cứ câu trả lời "có", cho điểm Điểm cao, keylogger vượt khỏi mục đích giám sát (monitoring) đến với mục đích thám (spying) tính nguy hiểm cao Keylogger phân loại theo số điểm: o Loại số  Khơng điểm: keylogger loại bình thường; chạy cơng khai, có thơng báo cho người bị theo dõi, với mục đích giám sát o Loại số  Một đến hai điểm: keylogger nguy hiểm; chạy ngầm, hướng đến mục đích thám nhiều giám sát (nguy hại đến thông tin cá nhân tài khoản cá nhân, mật khẩu, thẻ tín dụng người dùng khơng biết) o Loại số  Ba đến năm điểm: keylogger loại nguy hiểm; ẩn giấu hoàn toàn theo dõi phạm vi rộng, mục đích thám rõ ràng o Loại số  Sáu điểm: keylogger nguy hiểm nghiêm trọng, thường mang theo trojan-virus khó tháo gỡ, loại keylogger nguy hiểm Chính (và đồng thời "đồng bọn" trojan-virus) thường hay bị chương trình chống virus tìm thấy tiêu diệt 2.3 Cách hoạt động Keylogger nào? ● Các thành phần Keylogger ● Thơng thường, chương trình keylogger gồm có ba phần chính: ○ Chương trình điều khiển (Control Program): dùng để theo điều phối hoạt động, tinh chỉnh thiết lập, xem tập tin nhật ký cho Keylogger Phần phần giấu kỹ keylogger, thông thường gọi tổ hợp phím tắt đặc biệt ○ Tập tin hook, chương trình monitor dùng để ghi nhận lại thao tác bàn phím, capture screen (đây phần quan trọng nhất) ○ Tập tin nhật ký (log), nơi chứa đựng/ghi lại tồn hook ghi nhận CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN Môi trường triển khai ● Có thể chạy mơi trường cài đặt file exe Kết chạy chương trình ● Chương trình chạy ổn định, chưa bắt tổ hợp phím ● Vẫn cịn ký tự lạ log Nguyên nhân ký tự Unicode trả từ chương trình Unikey ● Chưa in thời gian gõ phím Hình Kết chương trình Hình Kết chương trình Hướng phát triển ● Phát triển thành installer để chạy không cần phải cài đặt môi trường ● Sửa chữa tổ hợp phím vài phím không nhận ghi thành ký tự lạ file log phím Backspace PHẦN II LẬP TRÌNH MẠNG ĐỀ TÀI : XÂY DỰNG CHƯƠNG TRÌNH TRỊ CHƠI BÀI TIẾN LÊN THÔNG QUA SOCKET JAVA CHƯƠNG CƠ SỞ LÝ THUYẾT Mạng máy tính 1.1 Khái niệm  Mạng máy tính hệ thống gồm nhiều máy tính thiết bị kết nối với đường truyền vật lý theo kiến trúc (Network Architecture) nhằm thu thập, trao đổi liệu chia sẻ tài nguyên cho nhiều người sử dụng  Mơ hình ứng dụng mạng: o Mơ hình mạng ngang hàng(Peer to Peer): cho phép nút mạng vừa đóng vai trị thực thể u cầu dịch vụ mạng (Client), vừa thực thể cung cấp dịch vụ mạng (Server) Trong môi trường này, người dùng máy tính chịu trách nhiệm điều hành chia sẻ tài ngun máy tính Mơ hình phù hợp với tổ chức nhỏ không quan tâm đến vấn đề bảo mật Phần mềm mạng peer–to–peer thiết kế cho thực thể ngang hàng thực chức tương tự o Mơ hình mạng khách chủ (Client-Server): mơ hình mạng máy chủ có hệ thống máy tính cung cấp tài nguyên dịch vụ cho hệ thống mạng gọi máy chủ(Server) Một hệ thống máy tính sử dụng tài nguyên dịch vụ gọi máy khác (Client) 1.2 Mơ hình mạng khách chủ (Client-Server)  Mơ hình Client-Server gì? o Mơ hình Client-Server mơ mà số máy đóng vai trị cung ứng dịch vụ theo yêu cầu máy trạm o Hiểu đơn giản, mơ hình Client-Server mơ hình mạng máy tính gồm hai thành phần máy chủ(Server) máy khách(Client) Hình Mơ mơ hình Client-Server  Ngun lý hoạt động mơ hình Client-Server o Việc giao tiếp Client Server phải dựa giao thức chuẩn Một số giao thức sử dụng phổ biến như: TCP/IP, UDP, OSI… o Mơ hình gồm hai thành phần chính: Client Server  Client: nơi gửi yêu cầu xử lý máy chủ tổ chức giao tiếp với người dùng, với mơi trường bên ngồi với Server Sau tiếp nhận yêu cầu người dùng, phần phía Client gửi phía Server  Server: máy chủ xử lý gửi kết cho Client Phần phía Server quản lý giao tiếp với mơi trường bên Server với Client Sau phân tích yêu cầu Client gửi đến, phía Server xử lý gửi trả kết phía Client  Ưu điểm mơ hình Client-Server o Với mơ hình Client-Server , bạn điều khiển tập trung lẫn không tập trung tài nguyên bảo mật liệu điều khiển qua số máy chuyên dụng Phân quyền truy nhập tài nguyên, directory server, domain controller o Client-Server chống tải mạng o Bạn đảm bảo tồn vẹn liệu trường hợp có cố xảy tập trung quản lý Server o Tiết kiệm chi phí phát triển hệ thống ứng dụng phần mềm triển khai mạng o Có thể mở rộng (thay đổi) phạm vi mạng dễ dàng o Cung cấp tảng lý tưởng cho phép tích hợp kỹ thuật đại mơ hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS) … o Người dùng truy cập liệu từ xa để thao tác gửi nhận file, tìm kiếm thơng tin  Hạn chế mơ hình Client-Server o Địi hỏi q trình bảo trì bảo dưỡng Server o Do nguyên lí làm việc phải trao đổi liệu hai máy hai khu vực địa lý khác , mơ hình Client-Server dễ dàng xảy tượng thông tin truyền mạng bị lộ Tính an tồn bảo mật thơng tin mạng hạn chế mà mơ hình Client-Server cần khắc phục Giao thức mạng 2.1 Định nghĩa giao thức TCP/IP TCP/IP viết tắt cụm từ Transmission Control Protocol/Internet Protocol TCP/IP tập hợp giao thức (protocol) điều khiển truyền thông tất máy tính Internet Cụ thể hơn, TCP/IP rõ cách thức đóng gói thơng tin (hay cịn gọi gói tin ), gửi nhận máy tính có kết nối với TCP/IP phát triển vào năm 1978 Bob Kahn Vint Cerf TCP/IP chia thành bốn tầng, tầng bao gồm giao thức cụ thể  Tầng ứng dụng cung cấp ứng dụng với trao đổi liệu chuẩn hóa Các giao thức bao gồm Giao thức truyền tải siêu văn (HTTP), Giao thức truyền tập tin (File Transfer Protocol - FTP), Giao thức POP3, Giao thức truyền tải thư tín đơn giản (Simple Mail Transfer Protocol SMTP) Giao thức quản lý mạng đơn giản (Simple Network Management Protocol - SNMP)  Tầng giao vận chịu trách nhiệm trì liên lạc đầu cuối tồn mạng TCP xử lý thơng tin liên lạc máy chủ cung cấp điều khiển luồng, ghép kênh độ tin cậy Các giao thức giao vận gồm giao thức TCP giao thức UDP (User Datagram Protocol), sử dụng thay cho TCP với mục đích đặc biệt  Tầng mạng, cịn gọi tầng Internet, có nhiệm vụ xử lý gói kết nối mạng độc lập để vận chuyển gói liệu qua ranh giới mạng Các giao thức tầng mạng gồm IP ICMP (Internet Control Message Protocol), sử dụng để báo cáo lỗi  Tầng vật lý bao gồm giao thức hoạt động liên kết - thành phần mạng kết nối nút máy chủ mạng Các giao thức lớp bao gồm Ethernet cho mạng cục (LAN) Giao thức phân giải địa (Address Resolution Protocol - ARP) Hình 2 Mô tầng giao thức TCP/IP 2.2 Định nghĩa giao thức TCP TCP (Transmission Control Protocol) giao thức cốt lõi giao thức TCP/IP Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự TCP phân biệt liệu nhiều ứng dụng (chẳng hạn, dịch vụ Web dịch vụ thư điện tử) đồng thời chạy máy chủ Trong giao thức TCP/IP, TCP tầng trung gian giao thức IP bên ứng dụng bên Các ứng dụng thường cần kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau, đó, giao thức IP khơng cung cấp dịng kiểu đó, mà cung cấp dịch vụ chuyển gói tin không đáng tin cậy TCP làm nhiệm vụ tầng giao vận mơ hình OSI đơn giản mạng máy tính Lập trình Socket 3.1 Định nghĩa Socket  Socket điểm cuối(end-point) liên kết truyền thơng hai chiều(twoway communication) hai chương trình chạy mạng Các lớp Socket sử dụng để biểu diễn kết nối client server Gói java.net cung cấp hai lớp - Socket ServerSocket - thể kết nối client server

Ngày đăng: 12/06/2023, 04:48

Tài liệu cùng người dùng

Tài liệu liên quan