SlideShare a Scribd company logo
1 of 11
Download to read offline
Trang 1
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Kỹ thuật lập trình Hook
s
Reverse Engineering Association
Win32 Programming Tutorials 
For more updated info, please check
http://nhatphuongle.spaces.live.com
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
MỤC LỤC
I. Các khái niệm cơ bản....................................................................................................................3
1. Sự khác biệt giữa lập trình Windows và DOS...........................................................................3
2. Lập trình Windows....................................................................................................................3
a) Thông điệp và hàng đợi thông điệp .......................................................................................3
b) Lập trình sự kiện....................................................................................................................4
II. Tìm hiểu về Hook..........................................................................................................................7
1. Hook là gì?.................................................................................................................................7
2. Phân loại Hook ..........................................................................................................................9
a) Phân loại theo phạm vi hoạt động..........................................................................................9
b) Phân loại theo thông điệp xử lý ...........................................................................................10
3. Thủ tục Hook – Chuỗi Hook ...................................................................................................12
a) Thủ tục Hook .......................................................................................................................12
b) Chuỗi Hook..........................................................................................................................13
III. Minh họa cách lập trình Hook.................................................................................................15
1. Cài đặt thủ tục Hook................................................................................................................15
2. Chuyển thông điệp đến thủ tục Hook kế tiếp ..........................................................................16
3. Hủy bỏ cài đặt Hook................................................................................................................17
Trang 2
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
I. Các khái niệm cơ bản
1. Sự khác biệt giữa lập trình Windows và DOS
Windows DOS
Lập trình sự kiện dựa vào thông điệp Thực hiện tuần tự theo chỉ định
Đa nhiệm Đơn nhiệm
Hỗ trợ 32 bits hay hơn nữa Ứng dụng 16 bits
Hỗ trợ nhiều công nghệ DLL, OLE, DDE,
COM, OpenGL, DirectX
Không có
....... .......
2. Lập trình Windows
a) Thông điệp và hàng đợi thông điệp
Nhắc đến Windows, người ta thường nghĩ về nó như một hệ điều hành (HĐH)
dễ sử dụng, ở đó, sự tương tác giữa người dùng với các ứng dụng cũng như với các
thành phần tiện ích của Windows thông qua giao diện đồ họa (GUI) bằng các thao tác
trên bàn phím và chuột vô cùng đơn giản. Một câu hỏi được đặt ra là: “Các ứng dụng
làm thế nào để phân loại, lưu giữ cũng như phản hồi lại những tương tác đó cho người
dùng?”. Đối với Windows vấn đề này được giải quyết một cách trọn vẹn: HĐH đưa ra
cơ chế thông điệp (message) và hàng đợi thông điệp (message queue) cùng với tập
hợp các cấu trúc dữ liệu và các hàm API hỗ trợ ứng dụng trong việc giao tiếp với
người dùng.
Windows có 2 loại hàng đợi thông điệp: Hàng đợi hệ thống (system queue) và
hàng đợi ứng dụng (application queue). Hàng đợi hệ thống là hàng đợi duy nhất và
được dùng chung cho toàn hệ thống, mọi tiến trình đang chạy đều chia sẻ hàng đợi
này. Nhiệm vụ của hàng đợi hệ thống là nó ghi lại những sự kiện phần cứng (chuột,
bàn phím, …) khi chúng xảy ra.
Trang 3
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Mỗi sự kiện sẽ được nhanh chóng chuyển thành thông điệp, sau đó Windows sẽ
lần lượt lấy thông điệp từ hàng đợi hệ thống để xem xét và chuyển những thông điệp
đó đến chương trình ứng dụng tương ứng. Những thông điệp này khi được chuyển đến
ứng dụng, chúng tạo thành hàng đợi ứng dụng.
b) Lập trình sự kiện
Mỗi ứng dụng có một hàng đợi ứng dụng khác nhau. Một ứng dụng nhận các
thông điệp từ hàng đợi ứng dụng bằng cách gọi hàm GetMessage, sau đó lại gọi tiếp
TranslateMessage để dịch thông điệp, cuối cùng gọi hàm DispatchMessage để trả lại
thông điệp cho Windows. Việc lấy thông điệp này cứ lặp đi lặp lại, tạo thành vòng lặp
thông điệp. Vòng lặp này kết thúc khi hàm GetMessage trả về giá trị 0 nếu thông điệp
có định danh là WM_QUIT (0x0012).
Trang 4
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Thông thường, chúng ta chỉ chặn để xử lý các thông điệp có liên quan đến chức năng
của ứng dụng, các thông điệp khác thì giao cho hàm xử lý mặc định làm việc (hàm
DefWindowsProc). Để dễ tưởng tượng, ta sẽ lấy một ví dụ khi chương trình xử lý
thông điệp bàn phím. Khi đó, sơ đồ của quá trình xử lý sự kiện bàn phím như sau:
Trình điều khiển bàn phím (Keyboard Device Driver) sẽ thông dịch mã quét và
chuyển nó thành mã phím ảo (vitual-key code), một giá trị độc lập thiết bị, được định
nghĩa bởi hệ thống. Sau đó, trình điều khiển tạo một thông điệp bao gồm scancode,
virtual-key code cùng một số thông tin khác (sự lặp phím, trạng thái các phím Alt,
Ctrl...) , đặt vào hàng đợi hệ thống. Hệ thống lấy thông điệp này ra khỏi hàng đợi hệ
thống và gửi đến hàng đợi thông điệp của ứng dụng. Cuối cùng, vòng lặp thông điệp
(Message Loop) sẽ lấy thông điệp ra khỏi hàng đợi ứng dụng và chuyển nó đến hàm
xử lý thông điệp thích hợp để xử lý.
Trang 5
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Ta có sơ đồ của hàng đợi thông điệp như sau:
Trang 6
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
II. Tìm hiểu về Hook
1. Hook là gì?
Hook là một cơ chế trong lập trình sự kiện, cho phép ứng dụng có thể cài đặt một
hàm giám sát vào quá trình lưu chuyển các thông điệp. Hay nói cách khác hook là 1 cơ chế
cho phép chặn các sự kiện (chuột, bàn phím, thông điệp) trước khi chúng được gửi tới hàng
đợi của ứng dụng.
Trang 7
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Các hàm này có thể được dùng để xử lý các sự kiện và trong nhiều trường hợp, chúng cũng
có thể thay đổi hoặc huỷ bỏ các sự kiện đó. Một điểm quan trọng cần lưu ý là các hàm này
được hệ điều hành gọi chứ không phải là chương trình ứng dụng của ta gọi. Các hàm nhận sự
kiện được gọi là hàm lọc (filter function) và được phân loại theo loại sự kiện mà chúng chặn.
Ví dụ: 1 hàm lọc chặn các sự kiện chuột khác với hàm lọc chặn các sự kiện bàn phím.
Trước khi Windows gọi 1 hàm lọc, hàm lọc đó phải được cài đặt, nghĩa là phải được
gắn với hook của Windows (ví dụ như hook bàn phím). Gắn 1 hay nhiều hàm lọc vào 1 hook
được gọi là thiết lập hook (setting a hook). Nếu hook có hơn 1 hàm lọc thì Windows tạo ra 1
dãy các hàm lọc (hook chain). Khi 1 hook có nhiều hàm lọc và có 1 sự kiện xảy ra bị hook
bắt được, Windows sẽ gọi hàm lọc đầu tiên trong dãy hàm lọc. Hành động này được gọi là
“gọi hook”.
Ví dụ: nếu 1 hàm lọc được gắn vào hook CBT và có 1 sự kiện bị bắt được (ví dụ: tạo 1
cửa sổ), Windows sẽ gọi hook CBT bằng cách gọi hàm đầu tiên trong dãy hàm lọc. Như vậy,
ta có sơ đồ hook như sau:
Trang 8
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
Hook có khả năng can thiệp rất sâu vào trong hệ thống, nó có thể làm cho hệ thống
hoạt động chậm chạp hơn hoặc thậm chí có thể làm treo hệ thống nếu không được xử lý tốt.
Bới vậy, ta chỉ nên dùng hook trong trường hợp cần thiết và phải huỷ bỏ ngay hook khi
không cần dùng đến. Để cài đặt và gỡ cài đặt hook, chương trình cần dùng các hàm
SetWindowsHookEx và UnhookWindowsHookEx.
2. Phân loại Hook
a) Phân loại theo phạm vi hoạt động
 Hook cục bộ (Thread Hook hay Local Hook): hàm giám sát được cài đặt
vào sau hàng đợi thông điệp ứng dụng (Thread message Queue hay
Application Queue), chỉ kiểm soát các thông điệp trong một tiến trình hay
một ứng dụng cụ thể nào đó được xác định lúc cài đặt thủ tục Hook
 Hook toàn cục (Global Hook): hàm giám sát được cài đặt vào sau hàng đợi
thông điệp hệ thống, kiểm soát toàn bộ các tiến trình trong hệ thống
 Thủ tục hook toàn cục phải được khai báo ở một DLL tách biệt.
Trang 9
Reverse Engineering Association
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
b) Phân loại theo thông điệp xử lý
Loại Hook Công dụng
WH_CALLWNDPROC
và
WH_CALLWNDPROCRET
 Cho phép giám sát các thông điệp được gởi tới một
cửa sổ. Hệ thống gọi thủ tục Hook của
WH_CALLWNDPROC trước khi gởi thông điệp đến
cửa sổ đích và gọi WH_CALLWNDPROCRET sau
khi thủ tục ở cửa sổ đích xử lý xong thông điệp.
 Hook WH_CALLWNDPROCRET truyền một con trỏ
có cấu trúc CWPRETSTRUCT tới thủ tục Hook. Cấu
trúc này chứa giá trị trả về của thủ tục cửa sổ đã xử
lý thông điệp
WH_CBT
Windows gọi hàm Hook CBT trước khi tạo lập, kích
hoạt, hủy, thu nhỏ, phóng to, di chuyển, thay đổi kích
thước, ... của cửa sổ giao diện; hoặc trước khi hoàn
thành một lệnh của hệ thống; hoặc trước khi hủy bỏ một
sự kiện chuột hay bàn phím khỏi hàng đợi hệ thống;
hoặc trước khi đặt một điều khiển vào 1 input nào đó;
hoặc trong lúc đồng bộ hàng đợi thông điệp hệ thống.
Giá trị trả về của thủ tục hook cho biết hệ thống sẽ chấp
nhận hay là hủy bỏ những hành động đó hay không.
Hook WH_CBT thường được dùng cho các chương
trình đào tạo trên máy tính.
WH_DEBUG
Hệ thống gọi thủ tục WH_DEBUG trước khi gọi các thu
tục hook khác trong hệ thống. Ta có thể dùng hook này
để xác định xem có cho phép gọi các thủ tục hook khác
hay không.
WH_FOREGROUNDIDLE
Hook này cho phép ta thực thi các tác vụ với mức ưu
tiên thấp khi các tiến trình chạy nền của nó được đặt ở
trạng thái nghỉ ngơi. Hệ thống gọi thủ tục
WH_FOREGROUNDIDLE khi chương trình chạy nền
chuẩn bị chuyển sang chế độ nghỉ ngơi (idle).
Trang 10
Reverse Engineering Association
Tải bản FULL (17 trang): https://bit.ly/3qcDOGN
Dự phòng: fb.com/TaiHo123doc.net
Kỹ thuật lập trình Hook
NhatPhuongLe
www.reaonline.net
WH_GETMESSAGE
hook này cho phép một chương trình giám sát các
thông điệp được trả về bởi các hàm GetMessage và
PeekMessage. Ta có thể dùng hook
WH_GETMESSAGE để giám sát sự kiện chuột và bàn
phím và các sự kiện khác được gửi đến hàng đợi thông
điệp.
WH_JOURNALPLAYBACK
cho phép một chương trình có thể chèn thông điệp vào
hàng đợi thông điệp hệ thống. Ta có thể dùng hook này
để chạy lại (play back) các sự kiện chuột và bàn phím
được ghi lại (record) trước đó bởi hook
WH_JOURNALRECORD. Khi hook
WH_JOURNALPLAYBACK được cài đặt, chuột và bàn
phím sẽ bị đóng băng. Hook này chỉ dành riêng để hook
hệ thống, ta không thể dùng để cài đặt hook cục bộ.
Hook này trả về một giá trị time-out. Giá trị này cho hệ
thống biết phải đợi bao nhiêu mili-giây trước khi xử lý
thông điệp hiện tại nhận được từ hook
WH_JOURNALPLAYBACK. Điều này cho phép hook có
thể điều khiển khoảng thời gian của sự kiện mà nó play
back.
WH_JOURNALRECORD
Cho phép giám sát và ghi lại các sự kiện vào (input
event). Hook này thường được dùng để ghi lại chuỗi các
sự kiện chuột và bàn phím để sau đó được phát lại nhờ
hook WH_JOURNALPLAYBACKHOOK. Hook này chỉ
dành riêng để hook hệ thống, ta không thể dùng để cài
đặt hook cục bộ.
WH_KEYBOARD_LL
Cho phép giám sát sự kiện vào của bàn phím được gửi
tới hàng đợi ứng dụng.
WH_KEYBOARD
Hook giám sát thông điệp từ bàn phím WM_KEYDOWN,
WM_KEYUP
WH_MOUSE_LL
Cho phép giám sát sự kiện vào của chuột được gửi tới
hàng đợi ứng dụng.
Trang 11
Reverse Engineering Association 3132799

More Related Content

What's hot

Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdfBareen Shaikh
 
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera)
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera) Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera)
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera) Emmanuel Oshogwe Akpeokhai
 
RESERVATION BASED PARKING SYSTEM USING SMS
RESERVATION BASED PARKING SYSTEM USING SMS RESERVATION BASED PARKING SYSTEM USING SMS
RESERVATION BASED PARKING SYSTEM USING SMS karnati arunajyothi
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Artificial passenger abstract
Artificial passenger abstractArtificial passenger abstract
Artificial passenger abstractyasmeen123
 
Automatic vehicle rc book& driving license verification 02 (1)
Automatic vehicle rc book& driving license verification 02 (1)Automatic vehicle rc book& driving license verification 02 (1)
Automatic vehicle rc book& driving license verification 02 (1)krishna kumar
 
Vehicle-to-Pedestrian Technology
Vehicle-to-Pedestrian TechnologyVehicle-to-Pedestrian Technology
Vehicle-to-Pedestrian TechnologyMike Pina
 
Toll Management System, Toll Management Software
Toll Management System, Toll Management SoftwareToll Management System, Toll Management Software
Toll Management System, Toll Management SoftwareBE Software Solutions
 
Autonomous car
Autonomous carAutonomous car
Autonomous carAnil kale
 
Intelligent Traffic monitoring System
Intelligent Traffic monitoring SystemIntelligent Traffic monitoring System
Intelligent Traffic monitoring SystemFahim Ferdous
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...Docker, Inc.
 
Quantum Computation: What is it and Why?
Quantum Computation: What is it and Why?Quantum Computation: What is it and Why?
Quantum Computation: What is it and Why?Stefano Franco
 

What's hot (20)

Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
 
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera)
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera) Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera)
Speed Detection Of Moving Vehicles (Using Traffic Enforcement Camera)
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
RESERVATION BASED PARKING SYSTEM USING SMS
RESERVATION BASED PARKING SYSTEM USING SMS RESERVATION BASED PARKING SYSTEM USING SMS
RESERVATION BASED PARKING SYSTEM USING SMS
 
Telephony API
Telephony APITelephony API
Telephony API
 
Real Time System
Real Time SystemReal Time System
Real Time System
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Internet and html
Internet and htmlInternet and html
Internet and html
 
Traffic Violation Detector using Object Detection
Traffic Violation Detector using Object DetectionTraffic Violation Detector using Object Detection
Traffic Violation Detector using Object Detection
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Artificial passenger abstract
Artificial passenger abstractArtificial passenger abstract
Artificial passenger abstract
 
Automatic vehicle rc book& driving license verification 02 (1)
Automatic vehicle rc book& driving license verification 02 (1)Automatic vehicle rc book& driving license verification 02 (1)
Automatic vehicle rc book& driving license verification 02 (1)
 
Vehicle-to-Pedestrian Technology
Vehicle-to-Pedestrian TechnologyVehicle-to-Pedestrian Technology
Vehicle-to-Pedestrian Technology
 
Toll Management System, Toll Management Software
Toll Management System, Toll Management SoftwareToll Management System, Toll Management Software
Toll Management System, Toll Management Software
 
Autonomous car
Autonomous carAutonomous car
Autonomous car
 
Intelligent Traffic monitoring System
Intelligent Traffic monitoring SystemIntelligent Traffic monitoring System
Intelligent Traffic monitoring System
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
 
Quantum Computation: What is it and Why?
Quantum Computation: What is it and Why?Quantum Computation: What is it and Why?
Quantum Computation: What is it and Why?
 

Similar to Bài giảng kỹ thuật lập trình hook

Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaÂu Dương Bình
 
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...nataliej4
 
Rà soát Malware bằng SysInternal Suite
Rà soát Malware bằng SysInternal SuiteRà soát Malware bằng SysInternal Suite
Rà soát Malware bằng SysInternal SuitePhạm Trung Đức
 
Cấu trúc android
Cấu trúc androidCấu trúc android
Cấu trúc androiddhinh_190192
 
Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang VcNhat Thien
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngnataliej4
 
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Ceh lab book_tieng_viet_phan3
Ceh lab book_tieng_viet_phan3Ceh lab book_tieng_viet_phan3
Ceh lab book_tieng_viet_phan3eragon226
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongVu Trung Kien
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kìDaewoo Han
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kìDaewoo Han
 
Tuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingTuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingv7q3t
 
Slide báo cáo: System Hacking
Slide báo cáo: System HackingSlide báo cáo: System Hacking
Slide báo cáo: System HackingHuynh Khang
 
Báo cáo system hacking
Báo cáo system hackingBáo cáo system hacking
Báo cáo system hackingHuynh Khang
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpngohanty13
 
the real-time operating system and real-time programming
the real-time operating system and real-time programmingthe real-time operating system and real-time programming
the real-time operating system and real-time programmingDucLe868608
 

Similar to Bài giảng kỹ thuật lập trình hook (20)

Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
 
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Đi...
 
Rà soát Malware bằng SysInternal Suite
Rà soát Malware bằng SysInternal SuiteRà soát Malware bằng SysInternal Suite
Rà soát Malware bằng SysInternal Suite
 
Cấu trúc android
Cấu trúc androidCấu trúc android
Cấu trúc android
 
Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang Vc
 
Giải ngân hàng Hệ thống nhúng PTIT - thầy Cước
Giải ngân hàng Hệ thống nhúng PTIT - thầy CướcGiải ngân hàng Hệ thống nhúng PTIT - thầy Cước
Giải ngân hàng Hệ thống nhúng PTIT - thầy Cước
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
 
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...
Đề tài: Tìm hiểu công cụ quản trị mạng Solawinds Toolset 10.7 - Gửi miễn phí ...
 
Ceh lab book_tieng_viet_phan3
Ceh lab book_tieng_viet_phan3Ceh lab book_tieng_viet_phan3
Ceh lab book_tieng_viet_phan3
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kì
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kì
 
Tuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingTuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hacking
 
Slide báo cáo: System Hacking
Slide báo cáo: System HackingSlide báo cáo: System Hacking
Slide báo cáo: System Hacking
 
Báo cáo system hacking
Báo cáo system hackingBáo cáo system hacking
Báo cáo system hacking
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
 
Htc.kien.truc.unix.linux
Htc.kien.truc.unix.linuxHtc.kien.truc.unix.linux
Htc.kien.truc.unix.linux
 
Kien.truc.unix.linux 2
Kien.truc.unix.linux 2Kien.truc.unix.linux 2
Kien.truc.unix.linux 2
 
Kien.truc.unix.linux
Kien.truc.unix.linuxKien.truc.unix.linux
Kien.truc.unix.linux
 
the real-time operating system and real-time programming
the real-time operating system and real-time programmingthe real-time operating system and real-time programming
the real-time operating system and real-time programming
 

More from jackjohn45

ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfjackjohn45
 
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfjackjohn45
 
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdf
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdfSử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdf
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdfjackjohn45
 
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...jackjohn45
 
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...jackjohn45
 
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...jackjohn45
 
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdf
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdfBÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdf
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdfjackjohn45
 
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdf
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdfPHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdf
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdfjackjohn45
 
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdf
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdfHiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdf
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdfjackjohn45
 
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...jackjohn45
 
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...jackjohn45
 
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...jackjohn45
 
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdfjackjohn45
 
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdf
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdfTHỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdf
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdfjackjohn45
 
Bài Giảng Thị Trường Chứng Khoán.pdf
Bài Giảng Thị Trường Chứng Khoán.pdfBài Giảng Thị Trường Chứng Khoán.pdf
Bài Giảng Thị Trường Chứng Khoán.pdfjackjohn45
 
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdf
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdfCHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdf
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdfjackjohn45
 
Experimental Research on the Effect of Self-monitoring Technique on Improving...
Experimental Research on the Effect of Self-monitoring Technique on Improving...Experimental Research on the Effect of Self-monitoring Technique on Improving...
Experimental Research on the Effect of Self-monitoring Technique on Improving...jackjohn45
 
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...jackjohn45
 
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...jackjohn45
 
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...jackjohn45
 

More from jackjohn45 (20)

ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
 
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdfĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
ĐẶC ĐIỂM THƠ MAI VĂN PHẤN Luận văn Thạc sĩ chuyên ngành Văn học Việt Nam.pdf
 
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdf
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdfSử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdf
Sử dụng Bản đồ khái niệm trong dạy học chương Động học chất điểm.pdf
 
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...
Sử dụng tài liệu về di sản văn hóa vật thể ở địa phương trong dạy học lịch sử...
 
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...
NGHIÊN CỨU KHẢ NĂNG LAN TRUYỀN VI RÚTTỪ RỆP SÁP (Ferrisia virgata) ĐẾN CÂY TI...
 
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...
BÁO CÁO ĐÁNH GIÁ NGOÀI Trung tâm Giáo dục thường xuyên tỉnh Ninh Thuận (TP Ph...
 
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdf
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdfBÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdf
BÌNH ĐẲNG GIỚI Ở THÀNH PHỐ HỒ CHÍ MINH 8067022.pdf
 
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdf
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdfPHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdf
PHƯƠNG PHÁP DẠY DẠNG BÀI KẾT HỢP KỸ NĂNG TRONG TIẾT DẠY SKILLS 2.pdf
 
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdf
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdfHiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdf
Hiệu quả sử dụng tài sản tại công ty cổ phần công nghệ Hợp Long.pdf
 
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...
TỔ CHỨC KHÔNG GIAN KIẾN TRÚC VÀ BẢO TỒN CÁC GIÁ TRỊ VĂN HÓA KHU VĂN HÓA LỊCH ...
 
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...
ĐÁNH GIÁ TÍNH THÍCH NGHI SINH THÁI CỦA MỘT SỐ LOÀI CÂY TRỒNG CHỦ LỰC VỚI ĐIỀU...
 
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...
Nỗ lực hướng đến việc tiếp nhận nguồn nhân lực nước ngoài mới và thực hiện ki...
 
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf
[123doc] - thu-nghiem-nuoi-trong-mot-so-nam-an-tren-co-chat-loi-ngo.pdf
 
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdf
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdfTHỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdf
THỬ NGHIỆM NUÔI TRỒNG MỘT SỐ NẤM ĂN TRÊN CƠ CHẤT LÕI NGÔ.pdf
 
Bài Giảng Thị Trường Chứng Khoán.pdf
Bài Giảng Thị Trường Chứng Khoán.pdfBài Giảng Thị Trường Chứng Khoán.pdf
Bài Giảng Thị Trường Chứng Khoán.pdf
 
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdf
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdfCHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdf
CHUỖI THỜI GIAN - LUẬN VĂN THẠC SĨ KHOA HỌC.pdf
 
Experimental Research on the Effect of Self-monitoring Technique on Improving...
Experimental Research on the Effect of Self-monitoring Technique on Improving...Experimental Research on the Effect of Self-monitoring Technique on Improving...
Experimental Research on the Effect of Self-monitoring Technique on Improving...
 
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...
Vietnamese translated variants of verbs of Giving Receiving in Harry Potter a...
 
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...
[123doc] - university-of-copenhagen-characteristics-of-the-vietnamese-rural-e...
 
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...
university of copenhagen Characteristics of the Vietnamese Rural EconomyEvide...
 

Recently uploaded

TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (19)

TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Bài giảng kỹ thuật lập trình hook

  • 1. Trang 1 Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Kỹ thuật lập trình Hook s Reverse Engineering Association Win32 Programming Tutorials  For more updated info, please check http://nhatphuongle.spaces.live.com
  • 2. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net MỤC LỤC I. Các khái niệm cơ bản....................................................................................................................3 1. Sự khác biệt giữa lập trình Windows và DOS...........................................................................3 2. Lập trình Windows....................................................................................................................3 a) Thông điệp và hàng đợi thông điệp .......................................................................................3 b) Lập trình sự kiện....................................................................................................................4 II. Tìm hiểu về Hook..........................................................................................................................7 1. Hook là gì?.................................................................................................................................7 2. Phân loại Hook ..........................................................................................................................9 a) Phân loại theo phạm vi hoạt động..........................................................................................9 b) Phân loại theo thông điệp xử lý ...........................................................................................10 3. Thủ tục Hook – Chuỗi Hook ...................................................................................................12 a) Thủ tục Hook .......................................................................................................................12 b) Chuỗi Hook..........................................................................................................................13 III. Minh họa cách lập trình Hook.................................................................................................15 1. Cài đặt thủ tục Hook................................................................................................................15 2. Chuyển thông điệp đến thủ tục Hook kế tiếp ..........................................................................16 3. Hủy bỏ cài đặt Hook................................................................................................................17 Trang 2 Reverse Engineering Association
  • 3. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net I. Các khái niệm cơ bản 1. Sự khác biệt giữa lập trình Windows và DOS Windows DOS Lập trình sự kiện dựa vào thông điệp Thực hiện tuần tự theo chỉ định Đa nhiệm Đơn nhiệm Hỗ trợ 32 bits hay hơn nữa Ứng dụng 16 bits Hỗ trợ nhiều công nghệ DLL, OLE, DDE, COM, OpenGL, DirectX Không có ....... ....... 2. Lập trình Windows a) Thông điệp và hàng đợi thông điệp Nhắc đến Windows, người ta thường nghĩ về nó như một hệ điều hành (HĐH) dễ sử dụng, ở đó, sự tương tác giữa người dùng với các ứng dụng cũng như với các thành phần tiện ích của Windows thông qua giao diện đồ họa (GUI) bằng các thao tác trên bàn phím và chuột vô cùng đơn giản. Một câu hỏi được đặt ra là: “Các ứng dụng làm thế nào để phân loại, lưu giữ cũng như phản hồi lại những tương tác đó cho người dùng?”. Đối với Windows vấn đề này được giải quyết một cách trọn vẹn: HĐH đưa ra cơ chế thông điệp (message) và hàng đợi thông điệp (message queue) cùng với tập hợp các cấu trúc dữ liệu và các hàm API hỗ trợ ứng dụng trong việc giao tiếp với người dùng. Windows có 2 loại hàng đợi thông điệp: Hàng đợi hệ thống (system queue) và hàng đợi ứng dụng (application queue). Hàng đợi hệ thống là hàng đợi duy nhất và được dùng chung cho toàn hệ thống, mọi tiến trình đang chạy đều chia sẻ hàng đợi này. Nhiệm vụ của hàng đợi hệ thống là nó ghi lại những sự kiện phần cứng (chuột, bàn phím, …) khi chúng xảy ra. Trang 3 Reverse Engineering Association
  • 4. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Mỗi sự kiện sẽ được nhanh chóng chuyển thành thông điệp, sau đó Windows sẽ lần lượt lấy thông điệp từ hàng đợi hệ thống để xem xét và chuyển những thông điệp đó đến chương trình ứng dụng tương ứng. Những thông điệp này khi được chuyển đến ứng dụng, chúng tạo thành hàng đợi ứng dụng. b) Lập trình sự kiện Mỗi ứng dụng có một hàng đợi ứng dụng khác nhau. Một ứng dụng nhận các thông điệp từ hàng đợi ứng dụng bằng cách gọi hàm GetMessage, sau đó lại gọi tiếp TranslateMessage để dịch thông điệp, cuối cùng gọi hàm DispatchMessage để trả lại thông điệp cho Windows. Việc lấy thông điệp này cứ lặp đi lặp lại, tạo thành vòng lặp thông điệp. Vòng lặp này kết thúc khi hàm GetMessage trả về giá trị 0 nếu thông điệp có định danh là WM_QUIT (0x0012). Trang 4 Reverse Engineering Association
  • 5. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Thông thường, chúng ta chỉ chặn để xử lý các thông điệp có liên quan đến chức năng của ứng dụng, các thông điệp khác thì giao cho hàm xử lý mặc định làm việc (hàm DefWindowsProc). Để dễ tưởng tượng, ta sẽ lấy một ví dụ khi chương trình xử lý thông điệp bàn phím. Khi đó, sơ đồ của quá trình xử lý sự kiện bàn phím như sau: Trình điều khiển bàn phím (Keyboard Device Driver) sẽ thông dịch mã quét và chuyển nó thành mã phím ảo (vitual-key code), một giá trị độc lập thiết bị, được định nghĩa bởi hệ thống. Sau đó, trình điều khiển tạo một thông điệp bao gồm scancode, virtual-key code cùng một số thông tin khác (sự lặp phím, trạng thái các phím Alt, Ctrl...) , đặt vào hàng đợi hệ thống. Hệ thống lấy thông điệp này ra khỏi hàng đợi hệ thống và gửi đến hàng đợi thông điệp của ứng dụng. Cuối cùng, vòng lặp thông điệp (Message Loop) sẽ lấy thông điệp ra khỏi hàng đợi ứng dụng và chuyển nó đến hàm xử lý thông điệp thích hợp để xử lý. Trang 5 Reverse Engineering Association
  • 6. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Ta có sơ đồ của hàng đợi thông điệp như sau: Trang 6 Reverse Engineering Association
  • 7. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net II. Tìm hiểu về Hook 1. Hook là gì? Hook là một cơ chế trong lập trình sự kiện, cho phép ứng dụng có thể cài đặt một hàm giám sát vào quá trình lưu chuyển các thông điệp. Hay nói cách khác hook là 1 cơ chế cho phép chặn các sự kiện (chuột, bàn phím, thông điệp) trước khi chúng được gửi tới hàng đợi của ứng dụng. Trang 7 Reverse Engineering Association
  • 8. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Các hàm này có thể được dùng để xử lý các sự kiện và trong nhiều trường hợp, chúng cũng có thể thay đổi hoặc huỷ bỏ các sự kiện đó. Một điểm quan trọng cần lưu ý là các hàm này được hệ điều hành gọi chứ không phải là chương trình ứng dụng của ta gọi. Các hàm nhận sự kiện được gọi là hàm lọc (filter function) và được phân loại theo loại sự kiện mà chúng chặn. Ví dụ: 1 hàm lọc chặn các sự kiện chuột khác với hàm lọc chặn các sự kiện bàn phím. Trước khi Windows gọi 1 hàm lọc, hàm lọc đó phải được cài đặt, nghĩa là phải được gắn với hook của Windows (ví dụ như hook bàn phím). Gắn 1 hay nhiều hàm lọc vào 1 hook được gọi là thiết lập hook (setting a hook). Nếu hook có hơn 1 hàm lọc thì Windows tạo ra 1 dãy các hàm lọc (hook chain). Khi 1 hook có nhiều hàm lọc và có 1 sự kiện xảy ra bị hook bắt được, Windows sẽ gọi hàm lọc đầu tiên trong dãy hàm lọc. Hành động này được gọi là “gọi hook”. Ví dụ: nếu 1 hàm lọc được gắn vào hook CBT và có 1 sự kiện bị bắt được (ví dụ: tạo 1 cửa sổ), Windows sẽ gọi hook CBT bằng cách gọi hàm đầu tiên trong dãy hàm lọc. Như vậy, ta có sơ đồ hook như sau: Trang 8 Reverse Engineering Association
  • 9. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net Hook có khả năng can thiệp rất sâu vào trong hệ thống, nó có thể làm cho hệ thống hoạt động chậm chạp hơn hoặc thậm chí có thể làm treo hệ thống nếu không được xử lý tốt. Bới vậy, ta chỉ nên dùng hook trong trường hợp cần thiết và phải huỷ bỏ ngay hook khi không cần dùng đến. Để cài đặt và gỡ cài đặt hook, chương trình cần dùng các hàm SetWindowsHookEx và UnhookWindowsHookEx. 2. Phân loại Hook a) Phân loại theo phạm vi hoạt động  Hook cục bộ (Thread Hook hay Local Hook): hàm giám sát được cài đặt vào sau hàng đợi thông điệp ứng dụng (Thread message Queue hay Application Queue), chỉ kiểm soát các thông điệp trong một tiến trình hay một ứng dụng cụ thể nào đó được xác định lúc cài đặt thủ tục Hook  Hook toàn cục (Global Hook): hàm giám sát được cài đặt vào sau hàng đợi thông điệp hệ thống, kiểm soát toàn bộ các tiến trình trong hệ thống  Thủ tục hook toàn cục phải được khai báo ở một DLL tách biệt. Trang 9 Reverse Engineering Association
  • 10. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net b) Phân loại theo thông điệp xử lý Loại Hook Công dụng WH_CALLWNDPROC và WH_CALLWNDPROCRET  Cho phép giám sát các thông điệp được gởi tới một cửa sổ. Hệ thống gọi thủ tục Hook của WH_CALLWNDPROC trước khi gởi thông điệp đến cửa sổ đích và gọi WH_CALLWNDPROCRET sau khi thủ tục ở cửa sổ đích xử lý xong thông điệp.  Hook WH_CALLWNDPROCRET truyền một con trỏ có cấu trúc CWPRETSTRUCT tới thủ tục Hook. Cấu trúc này chứa giá trị trả về của thủ tục cửa sổ đã xử lý thông điệp WH_CBT Windows gọi hàm Hook CBT trước khi tạo lập, kích hoạt, hủy, thu nhỏ, phóng to, di chuyển, thay đổi kích thước, ... của cửa sổ giao diện; hoặc trước khi hoàn thành một lệnh của hệ thống; hoặc trước khi hủy bỏ một sự kiện chuột hay bàn phím khỏi hàng đợi hệ thống; hoặc trước khi đặt một điều khiển vào 1 input nào đó; hoặc trong lúc đồng bộ hàng đợi thông điệp hệ thống. Giá trị trả về của thủ tục hook cho biết hệ thống sẽ chấp nhận hay là hủy bỏ những hành động đó hay không. Hook WH_CBT thường được dùng cho các chương trình đào tạo trên máy tính. WH_DEBUG Hệ thống gọi thủ tục WH_DEBUG trước khi gọi các thu tục hook khác trong hệ thống. Ta có thể dùng hook này để xác định xem có cho phép gọi các thủ tục hook khác hay không. WH_FOREGROUNDIDLE Hook này cho phép ta thực thi các tác vụ với mức ưu tiên thấp khi các tiến trình chạy nền của nó được đặt ở trạng thái nghỉ ngơi. Hệ thống gọi thủ tục WH_FOREGROUNDIDLE khi chương trình chạy nền chuẩn bị chuyển sang chế độ nghỉ ngơi (idle). Trang 10 Reverse Engineering Association Tải bản FULL (17 trang): https://bit.ly/3qcDOGN Dự phòng: fb.com/TaiHo123doc.net
  • 11. Kỹ thuật lập trình Hook NhatPhuongLe www.reaonline.net WH_GETMESSAGE hook này cho phép một chương trình giám sát các thông điệp được trả về bởi các hàm GetMessage và PeekMessage. Ta có thể dùng hook WH_GETMESSAGE để giám sát sự kiện chuột và bàn phím và các sự kiện khác được gửi đến hàng đợi thông điệp. WH_JOURNALPLAYBACK cho phép một chương trình có thể chèn thông điệp vào hàng đợi thông điệp hệ thống. Ta có thể dùng hook này để chạy lại (play back) các sự kiện chuột và bàn phím được ghi lại (record) trước đó bởi hook WH_JOURNALRECORD. Khi hook WH_JOURNALPLAYBACK được cài đặt, chuột và bàn phím sẽ bị đóng băng. Hook này chỉ dành riêng để hook hệ thống, ta không thể dùng để cài đặt hook cục bộ. Hook này trả về một giá trị time-out. Giá trị này cho hệ thống biết phải đợi bao nhiêu mili-giây trước khi xử lý thông điệp hiện tại nhận được từ hook WH_JOURNALPLAYBACK. Điều này cho phép hook có thể điều khiển khoảng thời gian của sự kiện mà nó play back. WH_JOURNALRECORD Cho phép giám sát và ghi lại các sự kiện vào (input event). Hook này thường được dùng để ghi lại chuỗi các sự kiện chuột và bàn phím để sau đó được phát lại nhờ hook WH_JOURNALPLAYBACKHOOK. Hook này chỉ dành riêng để hook hệ thống, ta không thể dùng để cài đặt hook cục bộ. WH_KEYBOARD_LL Cho phép giám sát sự kiện vào của bàn phím được gửi tới hàng đợi ứng dụng. WH_KEYBOARD Hook giám sát thông điệp từ bàn phím WM_KEYDOWN, WM_KEYUP WH_MOUSE_LL Cho phép giám sát sự kiện vào của chuột được gửi tới hàng đợi ứng dụng. Trang 11 Reverse Engineering Association 3132799