Mặc dù tôi đã tìm kiếm rất nhiều, vẫn không rõ ràng với tôi về chính xác "móc" là gì. Ví dụ, tôi đọc bài này trên wiki answers:"móc" là gì và làm thế nào tôi có thể viết một cái trong Java? Và làm thế nào để giao tiếp với hạt nhân để biết các phím được nhấn bởi người dùng/đăng ký với hệ điều hành
Một móc là một phương pháp xen một đoạn mã trước mặt khác đoạn mã, do đó phần đầu tiên của mã thực thi trước khi mảnh thứ hai của mã, cho đoạn mã đầu tiên một cơ hội để theo dõi và/hoặc lọc hành vi của đoạn mã thứ hai. Ví dụ có thể là móc chuột, cho phép mã móc theo dõi chuột trong khi đồng thời bảo toàn chức năng của quy trình xử lý sự kiện chuột gốc .
Tôi cũng đọc số này post, nhưng tôi vẫn không hiểu chính xác "móc" là gì. Ai đó có thể vui lòng giải thích, theo thuật ngữ của giáo dân, "móc" là gì? Tại sao chính xác làm một số viết một "móc"? Ngoài ra, nó có thể viết một "móc" trong Java?
Lưu ý:
Tôi muốn viết một keylogger trong java và một trong những người bạn của tôi nói rằng bạn sẽ phải viết một "móc" trong C. Tôi không thể viết toàn bộ keylogger trong Java (chỉ hoạt động trên các cửa sổ)?
EDIT
xin đưa ra một câu trả lời w.r.t keylogger. Tôi có thể yêu cầu kernel
để cung cấp thông tin về khóa được nhấn vào ứng dụng của tôi bằng cách sử dụng móc nối? Hoặc làm thế nào tôi có thể đăng ký ứng dụng của tôi với hệ điều hành bằng cách sử dụng JNI? Tôi muốn ứng dụng của tôi ghi lại các phím được nhấn bởi người dùng.
Tôi nghĩ bạn của bạn muốn nói rằng bạn sẽ cần sử dụng phương pháp gốc. Bạn có thể viết một phương thức nguyên gốc trong C và gọi nó từ Java bằng cách sử dụng Giao diện Native Java (JNI). – toto2
@ toto2 và phương thức gốc đó sẽ làm gì? – saplingPro
Đó sẽ là chức năng hệ thống ghi nhật ký các phím. Trên thực tế bạn tốt hơn hết hoàn toàn gửi Java cho một công việc như vậy. Java có nghĩa là để được di động và nhược điểm là nó không thể làm công cụ liên quan đến hệ điều hành. Tôi không biết Windows nhiều, nhưng có lẽ C# sẽ thích hợp hơn. – toto2