Cơ chế Hook và ứng dụng to lớn của nó (Phần 1)
Trang 1 trong tổng số 1 trang
Cơ chế Hook và ứng dụng to lớn của nó (Phần 1)
Bài viết liên quan: Cơ chế Hook và ứng dụng to lớn của nó (Phần 2)
hnay đang kiếm guide để làm autoPlay cho vltk thì đc biết đến cái này, ngồi 1 lúc ngẫm ra mấy thứ lên đây chia sẻ cùng a e.
chắc mọi người đã nghe qua nhiều về nó, ví dụ làm Vietkey hay Unikey đều phải sử dụng cơ chế này
ngoài ra cơ chế này còn sử dụng để làm keylogger, autoPlay của các game oline...
đầu tiên, em xin nói qua về cơ chế thông điệp của Windows
- khi 1 sự kiện xảy ra tại cửa sổ con (click chuột, gõ 1 phím...), HDH sẽ phát ra 1 thông điệp tới cửa sổ cha, ở đây thông điệp sẽ đc hàm xử lý của cửa sổ cha xử lý. Tùy theo thông điệp đc gửi đến là gì và mục đích của người lập trình mà cách thức xử lý sẽ khác nhau.
- hàm xử lý là hàm dùng để xử lý các thông điệp đã đc chặn, bắt
- có thể tác động đến 1 cửa sổ bất kỳ bằng cách gửi thông điệp đến chính cửa sổ đó. Khi đó nó sẽ tiếp nhận thông điệp này và thực hiện các yêu cầu của thông điệp.
khi học các hàm API mọi người sẽ nghĩ ngay đến hàm SendMessage( )
- 1 cửa sổ có thể là 1 button, 1 edit text, 1 hộp thoại,...
tiếp theo, em xin nói về bản chất của Hook (đây là theo "ngu ý" của em thôi): Hook thực chất là bẫy & sửa các thông điệp của 1 cửa sổ bất kỳ trước khi các thông điệp này đc hàm xử lý của cửa sổ đó xử lý.
nói cách khác, khi HDH gửi 1 thông điệp đến cửa sổ cha, Hook sẽ chặn các thông điệp này, thay đổi chúng...tùy theo mục đích của người lập trình.
ví dụ khi 1 ứng dụng đc khởi động (ví dụ Yahoo chẳng hạn), thông điệp WM_CREATE sẽ đc phát ra, khi đó nếu ta dùng Hook để bắt lấy thông điệp này và thay nó bằng thông điệp WM_DESTROY thì ứng dụng đó hiển nhiên sẽ tự động exit! (giống kavo đó)
vậy tại sao dùng cơ chế chặn bắt thông thường kô đc???:Smlie (105):
sẽ có ý kiến cho rằng có thể dùng hàm SendMessage( ) để gửi thông điệp WM_DESTROY tới 1 ứng dụng nào đó để làm cho ứng dụng đó tự exit! Hoặc gửi thông điệp WM_GETTEXT tới 1 edit text để lấy đc nội dung của edit text đó! Như vậy thì làm keylogger hay virus sẽ đơn giản hơn bao nhiêu
nếu ai đã biết về hàm này thì sẽ biết là hàm này yêu cầu HANDLE của cửa sổ tiếp nhận thông điệp, hiểu nôm na thế này: thông điệp là 1 gói bưu kiện, HDH là ngưởi gửi bưu kiện, cửa sổ đang đc nói đến là người nhận bưu kiện, HANDLE của cửa sổ là dịa chỉ của ngươi nhận, còn hàm SendMessage( ) là công ty chuyển phát.
tuy nhiên có những lúc ta kô chỉ cần hàm sendmessage này, bởi hàm này chỉ có tác dụng gửi thông điệp đi chứ kô có tác dụng "nghe" thông điệp được gửi đến cho chương trình.
do đó, sử dụng cơ chế chặn bắt thông thường thì hầu như là vô tác dụng! => phải dùng Hook thôi
cách cài đặt Hook thì em kô nói ở đây vì kiếm trên google chắc không thiếu
bài sau em xin nói về 1 ứng dụng quan trọng khác của Hook đó là "lây" code (inject code) vào 1 ứng dụng bên ngoài.
hnay đang kiếm guide để làm autoPlay cho vltk thì đc biết đến cái này, ngồi 1 lúc ngẫm ra mấy thứ lên đây chia sẻ cùng a e.
chắc mọi người đã nghe qua nhiều về nó, ví dụ làm Vietkey hay Unikey đều phải sử dụng cơ chế này
ngoài ra cơ chế này còn sử dụng để làm keylogger, autoPlay của các game oline...
đầu tiên, em xin nói qua về cơ chế thông điệp của Windows
- khi 1 sự kiện xảy ra tại cửa sổ con (click chuột, gõ 1 phím...), HDH sẽ phát ra 1 thông điệp tới cửa sổ cha, ở đây thông điệp sẽ đc hàm xử lý của cửa sổ cha xử lý. Tùy theo thông điệp đc gửi đến là gì và mục đích của người lập trình mà cách thức xử lý sẽ khác nhau.
- hàm xử lý là hàm dùng để xử lý các thông điệp đã đc chặn, bắt
- có thể tác động đến 1 cửa sổ bất kỳ bằng cách gửi thông điệp đến chính cửa sổ đó. Khi đó nó sẽ tiếp nhận thông điệp này và thực hiện các yêu cầu của thông điệp.
khi học các hàm API mọi người sẽ nghĩ ngay đến hàm SendMessage( )
- 1 cửa sổ có thể là 1 button, 1 edit text, 1 hộp thoại,...
tiếp theo, em xin nói về bản chất của Hook (đây là theo "ngu ý" của em thôi): Hook thực chất là bẫy & sửa các thông điệp của 1 cửa sổ bất kỳ trước khi các thông điệp này đc hàm xử lý của cửa sổ đó xử lý.
nói cách khác, khi HDH gửi 1 thông điệp đến cửa sổ cha, Hook sẽ chặn các thông điệp này, thay đổi chúng...tùy theo mục đích của người lập trình.
ví dụ khi 1 ứng dụng đc khởi động (ví dụ Yahoo chẳng hạn), thông điệp WM_CREATE sẽ đc phát ra, khi đó nếu ta dùng Hook để bắt lấy thông điệp này và thay nó bằng thông điệp WM_DESTROY thì ứng dụng đó hiển nhiên sẽ tự động exit! (giống kavo đó)
vậy tại sao dùng cơ chế chặn bắt thông thường kô đc???:Smlie (105):
sẽ có ý kiến cho rằng có thể dùng hàm SendMessage( ) để gửi thông điệp WM_DESTROY tới 1 ứng dụng nào đó để làm cho ứng dụng đó tự exit! Hoặc gửi thông điệp WM_GETTEXT tới 1 edit text để lấy đc nội dung của edit text đó! Như vậy thì làm keylogger hay virus sẽ đơn giản hơn bao nhiêu
nếu ai đã biết về hàm này thì sẽ biết là hàm này yêu cầu HANDLE của cửa sổ tiếp nhận thông điệp, hiểu nôm na thế này: thông điệp là 1 gói bưu kiện, HDH là ngưởi gửi bưu kiện, cửa sổ đang đc nói đến là người nhận bưu kiện, HANDLE của cửa sổ là dịa chỉ của ngươi nhận, còn hàm SendMessage( ) là công ty chuyển phát.
tuy nhiên có những lúc ta kô chỉ cần hàm sendmessage này, bởi hàm này chỉ có tác dụng gửi thông điệp đi chứ kô có tác dụng "nghe" thông điệp được gửi đến cho chương trình.
do đó, sử dụng cơ chế chặn bắt thông thường thì hầu như là vô tác dụng! => phải dùng Hook thôi
cách cài đặt Hook thì em kô nói ở đây vì kiếm trên google chắc không thiếu
bài sau em xin nói về 1 ứng dụng quan trọng khác của Hook đó là "lây" code (inject code) vào 1 ứng dụng bên ngoài.
Similar topics
» Cơ chế Hook và ứng dụng to lớn của nó (Phần 2)
» Cơ chế Hook và ứng dụng to lớn của nó (Phần 3)
» Cơ chế Hook và ứng dụng to lớn của nó (Phần 4)
» Ứng dụng cơ chế Hook - Phần 1
» Ứng dụng cơ chế Hook - Phần 2
» Cơ chế Hook và ứng dụng to lớn của nó (Phần 3)
» Cơ chế Hook và ứng dụng to lớn của nó (Phần 4)
» Ứng dụng cơ chế Hook - Phần 1
» Ứng dụng cơ chế Hook - Phần 2
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
27/8/2013, 11:45 am by echcondihoc
» Quản Lí Tiến Trình Dùng Thư Viện PSAPI
11/10/2011, 9:42 pm by CNTT_DH
» xin tai lieu tieng viet
31/8/2011, 6:59 am by bantoisg
» Theo dõi tiến trình
27/8/2011, 5:51 pm by haigaopro01
» Giải pháp Bảo mật của Cisco
17/6/2011, 8:50 am by admin
» Nghiên cứu và đưa ra giải pháp phòng chống tấn công DoS, DDoS (Phần 1)
16/6/2011, 2:32 pm by admin
» Learn to hack !
16/6/2011, 8:49 am by admin
» Giải pháp hệ thống dành cho doanh nghiệp với thiết bị mạng Fortinet (Phần 1)
15/6/2011, 11:12 am by admin
» Ô Long Viên (Tập II)
27/9/2010, 4:56 pm by root
» những ebook về hack tiếng việt cho người mới tìm hiểu.
27/9/2010, 4:54 pm by root