1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu keylogger và thiết kế chương trình keylogger

44 1,4K 3

Đ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

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 458,9 KB

Nội dung

1.2 Khái niệm về Keylogger Keylogger hay "Trình theo dõi thao tác bàn phím" theo cách dịch ra tiếng Việt là một chương trình máy tính ban đầu được viết nhằm mục đích theo dõi và ghi lại

Trang 1

LỜI CẢM ƠN

Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu thực tập đến nay, em đã nhận được rất nhiều sự quan tâm, giúp

đỡ của quý Thầy Cô, gia đình và bạn bè Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian thực tập tại trường Và đặc biệt Em xin chân thành cảm ơn thầy Võ Đỗ Thắng đã tận tâm hướng dẫn chúng em qua buổi nói chuyện, thảo luận về đề tài thực, và khảo sát hướng nghiệp Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ bài báo cáo này của

em rất khó có thể hoàn thiện được Một lần nữa, em xin chân thành cảm ơn thầy Bài báo cáo được thực hiện trong khoảng thời gian gần 8 tuần Lần đầu tiên bước vào một đề tài Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô và các bạn học cùng lớp để kiến thức của em trong lĩnh vực này được hoàn thiện hơn

1

Trang 2

MỤC LỤC

Trang

DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH

2

Trang 3

BÁO CAO TTTN ĐẠI HỌC LỞI MỞ ĐẦU

LỜI MỞ ĐẦU

Keylogger là một loại phần mềm gián điệp, xuyên suốt trong đề tài này sẽ giúp chúng

ta có cái nhìn tổng quan về Keylogger từ cách thức hoạt động cho đến cách phòng, tránh và cách phát hiện Keylogger Một vấn đề quan trọng nữa đó là sẽ biết được ưu nhược điểm của Keylogger Qua những hiểu biết cơ bản đó sẽ giúp chúng ta xây dựng một chương trình Keylogger Để hiểu rõ hơn về keylogger chúng ta sẽ đi vào chi tiết từng phần theo sau dưới đây

Trang 4

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

CHƯƠNG I: TÌM HIỂU KEYLOGGER VÀ CÁCH PHÒNG

CHỐNG KEYLOGGER

Tóm tắt:Tiếp cận chương này chúng ta sẽ có một kiến thức cơ bản về

Keylogger, Keylogger được chia làm mấy loại hay sẽ giúp chúng ta biết cách phòng, tránh và phát hiện Keylogger ra sao Việc tìm hiểu các kiến thức cơ bản này là rất cần thiết để chúng ta có thể xây dựng chương trình Keylogger Ngoài ra việc hiểu được bản chất và cách thức hoạt động của Keylogger sẽ giúp chúng ta phát triển chương trình Anti-Keylogger sau này

1.1 Lịch Sử về Keylogger

Keylogger đã tồn tại trong rất nhiều năm qua Lịch sử của Keylogger không thể biết chính xác Người ta tin rằng nó được xuất hiện đầu tiên bởi chính phủ và không biết ngày phát hành chính xác của Keylogger Tuy nhiên cũng có nhiều người tin rằng nó được xuất hiện trong đầu những năm 90

1.2 Khái niệm về Keylogger

Keylogger hay "Trình theo dõi thao tác bàn phím" theo cách dịch

ra tiếng Việt là một chương trình máy tính ban đầu được viết nhằm mục đích theo dõi và ghi lại mọi thao tác thực hiện trên bàn phím vào một tập

tin nhật ký (log) để cho người cài đặt nó sử dụng Vì chức năng mang tính

vi phạm vào riêng tư của người khác này nên các trình keylogger được xếp vào nhóm các phần mềm gián điệp

Về sau khi keylogger phát triển cao hơn nó không những ghi lại thao tác bàn phím mà còn ghi lại cả các hình ảnh hiển thị trên màn hình (screen) bằng cách chụp (screen-shot) hoặc quay phim (screen-capture) thậm chí còn ghi nhận cách con trỏ chuột trên máy tính di chuyển

1.3 Phân loại Keylogger

Keylogger bao gồm hai loại, một loại là keylogger phần cứng và một loại

là phần mềm

Thực tế hiện nay loại Keylogger phần mềm được sử dụng nhiều hơn so với Keylogger phần cứng Theo những người lập trình, keylogger viết ra với chỉ có một mục đích duy nhất là giúp các bạn giám sát con cái, người thân xem họ làm gì với PC, với internet, khi chat với người lạ Nhưng cách sử dụng và chức năng của keylogger hiện tại trên thế giới khiến người ta thường hay phân loại keylogger theo mức độ nguy hiểm bằng các câu hỏi:

Trang 5

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

 Nhiễm vào máy không qua cài đặt hoặc cài đặt vào máy nhanh (Quick install)?

 Có thuộc tính ẩn hoặc giấu trên trình quản lí tiến trình (Process manager) và trình cài đặt và gỡ bỏ chương trình (Add or Remove Program)?

 Theo dõi không thông báo hoặc máy tính (PC) bị nhiễm khó tự phát hiện?

 Có thêm chức năng Capturescreen hoặc ghi lại thao tác chuột?

 Có khả năng lây nhiễm, chống tắt (Kill process)?

Cứ mỗi câu trả lời "có", sẽ cho một điểm Điểm càng cao, Keylogger càng vượt khỏi mục đích giám sát (Monitoring) đến với mục đích do thám (Spying) và tính nguy hiểm nó càng cao Keylogger có thể được phân loại theo số điểm:

1.4 Cách hoạt động của Keylogger

Thành phần của Keylogger

Thông thường, một chương trình keylogger sẽ gồm có ba phần chính:

Trang 6

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

 Chương trình điều khiển (Control Program): dùng để điều phối hoạt động, tinh chỉnh các thiết lập, xem các tập tin nhật ký cho Keylogger Phần này là phần được giấu kỹ nhất của keylogger, thông thường chỉ có thể gọi

Cách thức cài đặt vào máy

Các loại Keylogger từ 1 tới 3 thông thường khi cài đặt vào máy cũng giống như mọi chương trình máy tính khác, đều phải qua bước cài đặt Đầu tiên

nó sẽ cài đặt các tập tin dùng để hoạt động vào một thư mục đặc biệt (rất phức tạp), sau đó đăng ký cách thức hoạt động rồi đợi người dùng thiết lập thêm các ứng dụng Sau đó nó bắt đầu hoạt động

Loại keylogger số 4 có thể vào thẳng máy của người dùng bỏ qua bước cài đặt, dùng tính năng Autorun để cùng chạy với hệ thống Một số loại tự thả (drop) mình vào các chương trình khác, để khi người dùng sử dụng các chương trình này Keylogger sẽ tự động chạy theo

Cách hoạt động

Trong một hệ thống (Windows, Linux, Mac…), khi bấm 1 phím trên bàn phím, bàn phím sẽ chuyển nó thành tín hiệu chuyển vào CPU CPU sẽ chuyển nó tới hệ điều hành để hệ điều hành dịch thành chữ hoặc số cho chính nó hoặc các chương trình khác sử dụng

Nhưng khi trong hệ thống đó có Keylogger, không những chỉ có hệ điều hành theo dõi mà cả hook file hoặc monitor program của Keylogger theo dõi nó sẽ ghi nhận và dịch lại các tính hiệu ghi vào tập tin nhật ký Đồng thời nó còn có thể theo dõi cả màn hình và thao tác chuột

1.5 Cách phòng, tránh và phát hiện Keylogger

Phòng

Keylogger thường cài đặt vào máy qua hai con đường chính: được cài đặt hoặc bị cài đặt

Phòng ngừa "được cài đặt”

Phương pháp sau chỉ có tác dụng với chủ máy (người nắm quyền root hoặc administrator) Cách tốt nhất là không cho ai sử dụng chung máy tính Bảo

Trang 7

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

mật máy bằng cách khóa lại bằng các chương trình bảo vệ, hoặc mật khẩu khi đi đâu đó Nếu phải dùng chung nên thiết lập quyền của người dùng chung đó thật thấp (guest đối với Windows XP, user đối với Linux) để kiểm soát việc cài đặt chương trình của họ

 Không vào các trang web lạ, đặc biệt là web "tươi mát" vì có thể các trang web này ẩn chứa một loại worm, virus, hoặc là mã độc nào đó có thể âm thầm cài đặt

 Không click vào các đường link lạ do ai đó gửi cho chúng ta

 Không cài đặt các chương trình lạ (vì nó có thể chứa virus, trojan)

 Không download chương trình từ các nguồn không tin cậy Nếu có thể xem xét chữ ký điện tử, để chắc chắn chương trình không bị sửa đổi

 Hạn chế download và sử dụng cracked-program

 Luôn luôn tự bảo vệ mình bằng các chương trình chuyên dùng chống virus, chống spyware (antivirus, antispyware) và dựng tường lửa (firewall) khi ở trong Internet

 Thường xuyên cập nhật đầy đủ các bản cập nhật bảo mật của hệ điều hành

 Hoặc chúng ta có thể download một số phần mềm chống Keylogger về

để bảo vệ

Tránh keylogger

Khi nghi ngờ có keylogger mà không có điều kiện kiểm tra

Diệt tập tin hook, chương trình theo dõi Sử dụng một chương trình task manager (có thể gọi ra bằng tổ hợp phím tắt Ctrl+Alt+Del trên Windows)

Trang 8

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

xem các chương trình đang chạy Nếu thấy process nào lạ (đặc biệt đối với Windows XP là các tập tin được chạy dưới User name không phải là

System) chưa thấy bao giờ hãy tắt (end, kill) nó đi Lưu ý cách này có thể làm treo hệ thống nếu đó là một tập tin cần cho hệ điều hành vì vậy người dùng cần có kinh nghiệm

Che mắt keylogger

Keylogger hoạt động trên nguyên tắc theo dõi bàn phím (monitoring keyboard) chỉ có rất ít có khả năng theo dõi chuột (dù có theo dõi được cũng không chính xác lắm) và có khả năng capture clipboard Vì vậy dù hệ thống có keylogger (trừ các keylogger có khả năng quay phim) có thể được vượt qua bằng cách:

Sử dụng On-Screen Keyboard (bàn phím trên màn hình) (trong

windows gọi ra bằng Start/Run/osk) để nhập cách dữ liệu nhạy cảm (mật khẩu, thẻ tín dụng) bằng cách click chuột Vì đây là cách nhập liệu nằm ngoài vùng theo dõi của các tập tin hook (vì không qua bàn phím) nên Keylogger sẽ không ghi nhận được thông tin gì Cách này dễ dùng nhưng người khác có thể trông thấy thông tin được nhập vào (tiếng lóng thường

dùng là đá pass) do đó chúng ta mất password.

Sử dụng Copy’n’Paste (chép và dán): Tìm một đoạn văn bản nào đó có các

từ nằm trong đoạn thông tin muốn giấu (ví dụ: Mật khẩu là password chúng

ta hãy tìm một đoạn văn có các từ p, a, s, w, o, r, d (ví dụ to day Is a hot day, peter feel bad he want a cool drink or a ice-cream) copy từng chữ một

và dán nó thành chữ password rồi gửi đi Cách này có ưu điểm là dễ dùng nhưng khá rắc rối và kém hiệu quả nhất bởi vì nhiều Keylogger có chức năng theo dõi clipboard

Sử dụng type’n’Click (bấm và nhấn): Vì bản thân một Keylogger thông

thường không thể theo dõi các bấm chuột Ví dụ muốn đánh một đoạn thông tin là password, đầu tiên hãy đánh một số từ có trong nó: psr rồi sử dụng chuột (không dùng bàn phím) chen ngang vào p và s đánh chữ a giữa

s và r đánh chữ swo sau r là chữ d Dòng thông tin nhập vào password nhưng trong tập tin nhật ký log keylogger ghi lại được là psraswod Cách này khá hay nhưng không phù hợp với các thông tin dài vì dễ gây quên

Trang 9

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

Chống keylogger

Phương pháp đơn giản

Nhanh hiệu quả nhất là diệt trừ toàn bộ các chương trình đang theo dõi bàn phím đi Một số chương trình như là Keylogger Killer của Totto quét các process tìm các chương trình theo dõi cùng lúc quá nhiều ứng dụng (keylogger dùng cách này thường bằng một tập tin *.dll) rồi đề nghị bạn tắt nó đi Thế nhưng một số chương trình tốt (như các chương trình giúp gõ bàn phím Unikey, Vietkey) cũng dùng cách này nên có thể gây diệt lầm

Phương pháp nâng cao

Sử dụng một chương trình chống spyware chuyên dụng Các chương trình này sẽ tự động quét, phân tích các chương trình đang chạy cũng như trên máy để từ đó nhận biết các chương trình keylogger và tự động diệt Một số chương trình còn có chế độ bảo vệ thời gian thực (Real-Time Protection) giúp bảo vệ chúng ta chống ngay khi spyware chuẩn bị cài vào máy

Nhưng điểm gây khó khăn nhất của cách dùng này là đa số các chương trình sử dụng tốt đều phải trả tiền (ví dụ như Spyware Doctor của Pctools, McAfee Antispywarecủa McAfee, Bitdefender…)Tuy thế vẫn có một số chương trình miễn phí và khá tốt như Ad-Aware

SE, Spybot S&D, Spyblaster tuy rằng nó lâu lâu vẫn bắt hụt một số chương trình đặc biệt, nhưng nếu dùng kết hợp (cùng lúc cả hai hoặc cả ba) thi hiệu quả hầu như là hoàn toàn.( Nếu chúng ta chạy 2-3 chương trình không phù

hợp với nhau sẽ gây ra xung đột phần mêm chống virus)

Trong một số trường hợp, người dùng chọn cách chống Keylogger theo cách "sống chung với lũ" Lấy ví dụ về Keyscrambler là một trong số những phần mềm bảo vệ máy tính theo phương pháp này Mọi dữ liệu về phím bấm được truyền đến Hệ điều hành và được Keyscrambler mã hóa trước (do keyscrambler tác động trực tiếp từ phần lõi Kennel), sau đó mới đến các phần mềm khác (bao gồm cả keylogger) và cuối cùng được giải mã lại cho đúng với các phím được gõ Phương pháp này có thể vô hiệu hóa đa

số các loại keylogger hiện tại, không yêu cầu người dùng cập nhật các trình anti-keylogger thường xuyên Tuy nhiên, nó cũng có những điểm yếu riêng Nếu keylogger được viết để ghi lại các phím sau khi chúng được giải mã (ví dụ: Cài Keylogger như là một addon của trình duyệt ) thì xem như đã

vô hiệu hóa được keyscrambler, và nó cũng chỉ hỗ trợ một số phần mềm nhất định Khi dùng chung với các phần mềm gõ tiếng Việt, người dùng sẽ phải tắt KeyScramble đi, đây là một sự phiền phức lớn dù nó minh chứng cho khả năng bảo mật của phần mềm này

Trang 10

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

1.6 Một số cách tìm diệt và xóa Keylogger hiệu quả với một số hệ

điều hành nhất định và Keylogger phổ biến.

Cách tìm và tiêu diệt Perfect Keylogger :

Nếu không có Keylogger chúng ta sẽ nhận được 1 thông báo lỗi :

Info: Không tasks running with the specified criteria

Nếu có Keylogger màn hình sẽ hiển thị :

Image Name PID Modules diễn giải

Sở dĩ chúng ta tìm tập tin bpkhk.dll là vì đây chính là tập tin Perfect

Keylogger dùng để ghi lại thao tác trên máy tính

* Cách diệt :

Đã tìm được tên đích danh rồi chúng ta hãy thực hiện các bước sau để tiêu diệt :

1 Vào mục Start -> Run gõ : cmd

2 Ở màn hình Dos gõ : taskkill /f /im bpk /t

3 Tắt tất cả các chương trình đang chạy hiện thời (Explorer, bdswitch, DUMeter )

4 Mở Explorer vào thư mục Windows\System32 xóa các tập tin bpk, bpkhk.dll, bpkwb.dll

Trang 11

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER

Cách tìm và tiêu diệt Easy Keylogger

Sau khi cài đặt xong và khởi động Easy Keylogger có 1 biểu tượng chạy ở system tray

Chức năng chính của Easy Keylogger :

+ Cho phép đặt phím tắt, mặc định : Shift + Ctrl + alt +V

+ Tập tin dùng để Capture thao tác : Ekey.dll

+ Chỉ có thể Capture thao tác, không có chế độ chạy ẩn, không có chức năng đính kèm Keylogger

* Ghi chú nhỏ : Có thể máy tính của chúng ta đang chạy rất nhiều chương trình ứng dụng, nên khi dùng lệnh : tasklist /m

Chúng ta sẽ khó theo dõi được, để đạt hiệu quả cao chúng ta hãy xuất vào

1 tập tin tạm (stout) ra 1 tập tin txt

Dùng lệnh :

1 Vào mục Start -> Run gõ : cmd

2 Ở màn hình Dos gõ : tasklist /m > ctemp.txt

(Ở đây chúng ta ví dụ xuất vào ổ đĩa C với tập tin temp.txt)

* Cách tìm :

Yêu cầu : Chỉ áp dụng được với Windows 2K và XP (Windows 9x không

hỗ trợ)

1 Vào mục Start -> Run gõ : cmd

2 Ở màn hình Dos gõ : tasklist /m Ekey.dll

Nếu không có Keylogger bạn sẽ nhận được 1 thông báo lỗi :

INFO: Không tasks running with the specified criteria

Nếu có Keylogger màn hình sẽ hiển thị :

Image Name PID Modules Diễn giảiTOTALCMD*************** - 2040 - ekey.dll < - quen thuộcEasy Keylogger*************** 2340 - ekey.dll < - Keylogger

Sở dĩ chúng ta tìm tập tin Ekey.dll là vì đây chính là tập tin Easy Keylogger dùng để ghi lại thao tác trên máy tính

* Cách diệt : (Lưu ý ở đây sẽ có nhiều cách diệt khỏi Process)

Đã tìm được tên đích danh rồi chúng ta hãy thực hiện các bước sau để tiêu diệt :

1 Cách diệt thông thường :

+ Vào mục Start -> Run gõ : cmd

Trang 12

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG I TÌM HIỂU KEYLIGER+ Ở màn hình Dos gõ : taskkill /f /im Easy Keylogger*************** /tERROR: Invalid Argument/Option - 'Key'.

2 Cách diệt sử dụng wildcard :

+ IProgram Files>taskkill /f /im EasyKe~1*************** /t

ERROR: The process "EasyKe~1***************" not found

3 Cách diệt sử dụng được :

+ Vào mục Start -> Run gõ : cmd

+ Ở màn hình Dos gõ : taskkill /f /fi "pid ge 2340" /im *

Giải thích : Để hiểu được chúng ta hãy xem lại phía trên khi chúng ta tìm Ekey.dll Windows đã phát hiện ra được rằng Easy Keylogger đang chạy ở thread 2340 đúng không Đây là cách dùng để loại bỏ tên tập tin dài

4 Tắt tất cả các chương trình đang chạy hiện thời

5 Mở Explorer tìm và xóa các tập tin Easy Keylogger***************, Ekey.dll

Cách tìm và tiêu diệt Active Keylogger

Sau khi cài đặt xong và khởi động Active Key Logger có 1 biểu tượng chạy

ở system tray

Chức năng bên trong của Active Keylogger :

- Tập tin dùng để Capture : smode.dll, CMD16.dll

- Chức năng Security : (cho phép ẩn hoàn toàn trên hệ thống)

+ Disable Task Manager

+ Remove Shortcut from Desktop

+ Remove Shortcut from Start Thực đơn

+ Remove Active Keylogger from Uninstall List

- Stealth Mode : Cho phép chạy ẩn

Phân tích sơ bộ về Active Keylogger :

- Có khả năng Capture tất cả các thao tác trên máy tính

- Không có khả năng tự đính kèm, tuy nhiên vẫn có thể dùng một số

chương trình khác để đính kèm vào được

- Cho phép gởi tập tin log qua email (mặc định port 25), tập tin log có tên

*.kl (có thể thay đổi được)

Cách diệt :

Chúng ta hãy dùng cách tìm và diệt giống như của Easy Keylogger, vì Active Key Logger cũng là 1 tập tin có tên dài quá 8 ký tự

Trang 13

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

CHƯƠNG II:GIỚI THIỆU CHƯƠNG TRÌNH KEYLOGGER 2.1 Các kiến thức liên quan để phát triển chương trình Keylogger 2.1.1 Tìm hiểu về hàm xác định phím đã được ấn.

Sử dụng hàm : GetAsyncKeyState() để lấy thông tin phím đã được bấm

hàm này yêu cầu thư viên: User32.lib

Header trong lập trinh C++ yêu cầu: Winuser.h (include Windows.h)

Cú pháp như sau:

SHORT WINAPI GetAsyncKeyState(

_In_ int vKey

2.1.2 Tìm hiểu về thuật toán mã hóa file Log

Chương trình Keylogger em viết có sử dụng mã hóa cổ điển, chính xác là

mã hóa thay thế Trong chương trình có sử Key mặc định để mã hóa là:

6784354 Đây là một cách mã hóa đơn giản và tốn ít tài nguyên xử lý Mã hóa và giải mã sẽ rất nhanh Chi tiết mã hóa sẽ như sau:

Sau khi bắt được các phím đã ấn (Keypress) Keypress này sẽ được đổ vào

1 file chưa mã hóa Ngay lập tức ký tự này sẽ được cộng thêm một giá trị nữa đó là khóa do người dùng nhập vào Kết quả của việc cộng này sẽ được

đổ vào file log mã hóa Mặc dù hơi rắc rối cho việc tạo 2 file nhưng không ảnh hưởng nhiều tới tốc độ xử lý hay chiếm tài nguyên lớn cho máy chính

của chúng ta.

Trang 14

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

2.1.3 Tìm hiểu một số hàm của Windows phục vụ cho việc upload file log tới FTP server của chúng ta.

2.1.3.1 InternetOpen function : Hàm này sử dụng thư viện Wininet.lib

InternetOpen là hàm WinInet đầu tiên được gọi bởi một ứng dụng Nó thông báo cho các DLL Internet để khởi tạo cấu trúc dữ liệu nội bộ và chuẩn bị cho các cuộc gọi từ các ứng dụng tương lai Khi ứng dụng kết thúc bằng cách sử dụng chức năng của Internet, nên gọi InternetCloseHandle để giải phóng và xử lý bất kỳ tài nguyên liên quan.Ứng dụng này có thể làm bất kỳ các cuộc gọi InternetOpen, mặc dù một cuộc gọi duy nhất là đủ Các ứng dụng có thể cần phải xác định hành vi riêng biệt cho mỗi trường hợp InternetOpen, chẳng hạn như các máy chủ proxy khác nhau cho mỗi cấu hình

Sau khi ứng dụng gọi đã kết thúc bằng cách sử dụng HINTERNET xử lý trả về bởi InternetOpen, nó phải được đóng lại bằng cách sử dụng hàm InternetCloseHandle

Giống như tất cả các khía cạnh khác của WinInet API, chức năng này không thể được gọi một cách an toàn từ bên trong DllMain hoặc constructor và destructor của các đối tượng

Cú pháp của hàm này như sau :

Ý nghĩa giá trị của các tham số như sau :

lpszAgent : Con trỏ trỏ đến một chuỗi null-chấm dứt chỉ định tên của ứng

dụng hoặc ứng dụng gọi hàm WinInet Tên này được sử dụng như tác nhân người dùng trong giao thức HTTP

wAccessType: Kiểu truy cập yêu cầu Tham số này có thể là một trong

những giá trị sau

INTERNET_OPEN_TYPE_DIRECT: Giải quyết tất cả các tên máy chủ

Trang 15

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

INTERNET_OPEN_TYPE_PRECONFIG: Lấy proxy hoặc cấu hình trực tiếp từ registry.

INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY: Lấy proxy hoặc cấu hình trực tiếp từ người đăng ký và ngăn việc sử dụng khởi động Microsoft JScript hoặc cài đặt Internet (INS) tập tin.

INTERNET_OPEN_TYPE_PROXY: Thông qua yêu cầu đến proxy trừ khi một danh sách bỏ qua proxy được cung cấp và các tên được giải quyết bỏ qua proxy Trong trường hợp này, các chức năng sử dụng

INTERNET_OPEN_TYPE_DIRECT

lpszProxyName [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt chỉ định tên

của máy chủ proxy (s) để sử dụng khi truy cập proxy được xác định bằng cách thiết lập dwAccessType INTERNET_OPEN_TYPE_PROXY Không

sử dụng một chuỗi rỗng, bởi vì InternetOpen sẽ sử dụng nó như là tên proxy Các chức năng WinInet chỉ nhận ra loại CERN proxy (HTTP chỉ )

và là cửa ngõ TIS FTP ( FTP ) Nếu Microsoft Internet Explorer được cài đặt, các chức năng này cũng hỗ trợ SOCKS proxy Yêu cầu FTP có thể được thực hiện thông qua một loại CERN chủ proxy hoặc bằng cách thay đổi chúng bằng một yêu cầu HTTP hoặc bằng cách sử dụng InternetOpenUrl

Nếu dwAccessType không được thiết lập để INTERNET_OPEN_TYPE_PROXY, tham số này được bỏ qua và phải là NULL Để biết thêm thông tin về danh sách các máy chủ proxy, xem phần máy chủ liệt kê Proxy của Kích hoạt chức năng Internet

lpszProxyBypass [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt chỉ định

một danh sách tùy chọn tên máy chủ hoặc địa chỉ IP hoặc cả hai, không nên định tuyến thông qua các proxy khi dwAccessType được thiết lập để

INTERNET_OPEN_TYPE_PROXY Danh sách có thể chứa ký tự đại diện Không sử dụng một chuỗi rỗng, bởi vì InternetOpen sẽ sử dụng nó như là danh sách bỏ qua proxy Nếu tham số này xác định "<local> " macro thì hàm bỏ qua các proxy cho bất kỳ tên máy chủ mà không có một khoảng thời gian

Theo mặc định, WinInet sẽ bỏ qua proxy cho các yêu cầu sử dụng các tên máy " localhost", " loopback " , "127.0.0.1" , hoặc " [ :: 1 ] " Hành vi này tồn tại bởi vì một máy chủ proxy từ xa thông thường sẽ không giải quyết được những địa chỉ đúng

Internet Explorer 9 : Chúng ta có thể loại bỏ các máy tính cục bộ từ danh sách bỏ qua proxy sử dụng các " < - loopback > " macro

Trang 16

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆUNếu dwAccessType không được thiết lập để INTERNET_OPEN_TYPE_PROXY, tham số này được bỏ qua và phải là NULL.

dwFlags [in]: Tùy chọn, tham số này có thể là một sự kết hợp của các giá

INTERNET_FLAG_OFFLINE: Giống INTERNET_FLAG_FROM_CACHE không thực hiện các yêu cầu mạng Tất cả các đơn vị được trả về từ bộ nhớ cache Nếu các yêu cầu không có trong bộ nhớ cache, một lỗi thích hợp, chẳng hạn như ERROR_FILE_NOT_FOUND được trả về.

2.1.3.2 InternetConnect function : Hàm này sử dụng thư viện Wininet.lib

Để cho các trang web FTP, InternetConnect thực sự thiết lập một kết nối tới máy chủ Kết nối thực tế không được thành lập cho đến khi ứng dụng yêu cầu một giao dịch cụ thể

Cú pháp của hàm này như sau:

_In_ DWORD dwService,

_In_ DWORD dwFlags,

_In_ DWORD_PTR dwContext

);

Chi tiết các tham số như sau:

hInternet [in]: Handle được trả về bởi một cuộc gọi trước đến

InternetOpen

Trang 17

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

lpszServerName [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt chỉ định tên

máy chủ của một máy chủ Internet Thay vào đó, các chuỗi có thể chứa số

IP của trang web, trong ASCII định dạng chấm thập phân (ví dụ , 11.0.1.45 )

nServerPort [in]: Cổng trên máy chủ Transmission Control Protocol hoặc

Internet Protocol (TCP / IP) Các flag thiết lập cho cổng được sử dụng Dịch vụ này được thiết lập bởi giá trị của dwService Tham số này có thể là một trong những giá trị sau

INTERNET_DEFAULT_FTP_PORT: Sử dụng cổng mặc định cho các máy chủ FTP (port 21).

INTERNET_DEFAULT_GOPHER_PORT: Sử dụng cổng mặc định cho các máy chủ Gopher (port 70 )

Lưu ý Windows XP và Windows Server 2003 R2 và trước đó chỉ

INTERNET_DEFAULT_HTTP_PORT: Sử dụng cổng mặc định cho các máy chủ HTTP ( cổng 80 )

INTERNET_DEFAULT_HTTPS_PORT: Sử dụng cổng mặc định cho an toàn Hypertext Transfer Protocol (HTTPS) máy chủ ( cổng 443 )

INTERNET_DEFAULT_SOCKS_PORT: Sử dụng cổng mặc định cho máy chủ SOCKS tường lửa (port 1080).

INTERNET_INVALID_PORT_NUMBER: Sử dụng cổng mặc định cho các dịch vụ theo quy định của dwService

lpszUsername [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt chỉ định tên

của người sử dụng để đăng nhập vào Nếu tham số này là NULL, hàm sử dụng một mặc định thích hợp Đối với các giao thức FTP, mặc định là "vô danh"

lpszPassword [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt có chứa mật

khẩu sử dụng để đăng nhập vào Nếu cả hai lpszPassword và lpszUsername

là NULL, chức năng sử dụng mặc định "vô danh" mật khẩu Trong trường hợp của FTP, mật khẩu mặc định là tên email của người dùng Nếu lpszPassword là NULL, nhưng lpszUsername không phải là NULL, chức năng sử dụng một mật khẩu trống

dwService [in]: Loại hình dịch vụ truy cập, tham số này có thể là một trong

Trang 18

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

INTERNET_SERVICE_HTTP:Dich vụ HTTP.

dwFlags [in]: Tùy chọn cụ thể cho các dịch vụ sử dụng nếu dwService là

INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE các ứng dụng

để sử dụng ngữ nghĩa FTP mặc định

dwContext [in]: Con trỏ trỏ đến một biến có chứa một giá trị ứng dụng xác

định được sử dụng để xác định bối cảnh ứng dụng cho điều khiển trả về trong callbacks

2.1.3.3 InternetWriteFile function : Hàm này sử dụng thư viện Wininet.lib

Khi ứng dụng được gửi dữ liệu, nó phải gọi hàm InternetCloseHandle để kết thúc truyền dữ liệu

Lưu ý WinInet không hỗ trợ triển khai máy chủ Ngoài ra, nó không nên được sử dụng từ một dịch vụ cho việc triển khai dịch vụ máy chủ sử dụng Microsoft Windows HTTP Services ( WinHTTP )

Cú pháp của hàm InternetWriteFile như sau:

BOOL InternetWriteFile(

_In_ HINTERNET hFile,

_In_ LPCVOID lpBuffer,

_In_ DWORD dwNumberOfBytesToWrite, _Out_ LPDWORD

lpdwNumberOfBytesWritten

);

Ý nghĩa của các tham số như sau:

hFile [in]: Handle được trả về từ một cuộc gọi trước để FtpOpenFile hoặc một HINTERNET xử lý gửi HttpSendRequestEx

lpBuffer [in]: Con trỏ trỏ đến một bộ đệm có chứa các dữ liệu được ghi

vào tập tin

dwNumberOfBytesToWrite [in]: Số byte được ghi vào tập tin.

lpdwNumberOfBytesWritten [out]: Con trỏ trỏ đến một biến nhận được số

byte ghi vào tập tin InternetWriteFile đặt giá trị này bằng không trước khi làm bất cứ công việc hay kiểm tra lỗi

Giá trị hàm này trả về như sau : Trả về TRUE nếu hàm thành công , hoặc FALSE khác Để có được thông tin lỗi mở rộng, gọi GetLastError Một ứng dụng cũng có thể sử dụng InternetGetLastResponseInfo khi cần thiết.

2.1.3.4 FtpOpenFile function : Hàm này sử dụng thư viện Wininet.lib Sau

khi gọi hàm FtpOpenFile và cho đến khi gọi InternetCloseHandle, tất cả

Trang 19

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆUcác cuộc gọi khác đến FTP và cùng một phiên xử lý sẽ thất bại và thiết lập các thông báo lỗi để ERROR_FTP_TRANSFER_IN_PROGRESS Sau khi ứng dụng gọi đã kết thúc bằng cách sử dụng HINTERNET xử lý trả về bởi FtpOpenFile, nó phải được đóng lại bằng cách sử dụng hàm InternetCloseHandle

Chỉ có một tập tin có thể được mở trong một phiên FTP duy nhất Do đó, không xử lý tập tin được trả về và các ứng dụng chỉ đơn giản là sử dụng FTP phiên xử lý khi cần thiết

Cú pháp hàm này như sau:

HINTERNET FtpOpenFile(

_In_ HINTERNET hConnect, _In_ LPCTSTR lpszFileName, _In_ DWORD dwAccess,

_In_ DWORD dwFlags,

_In_ DWORD_PTR dwContext

);

Ý nghĩa của các tham số như sau:

hConnect [in]:Handle của một phiên FTP (session).

lpszFileName [in]: Con trỏ trỏ đến một chuỗi null-chấm dứt có chứa tên

của tập tin được truy cập

dwAccess [in]: Kiểu truy cập Tham số này có thể GENERIC_READ hoặc

GENERIC_WRITE, nhưng không được là cả hai

dwFlags [in]: Điều kiện trong khi truyền tải xảy ra Ứng dụng nên chọn

một loại chuyển giao và bất kỳ cờ mà chỉ ra bộ nhớ đệm của các tập tin sẽ được kiểm soát

Loại chuyển giao có thể là một trong những giá trị sau

FTP_TRANSFER_TYPE_ASCII: Chuyển các tập tin bằng cách sử dụng FTP của ASCII ( Type A) phương pháp chuyển giao Kiểm soát và thông tin định dạng được chuyển đổi để tương đương.

FTP_TRANSFER_TYPE_BINARY: Chuyển các tập tin bằng cách sử dụng FTP cho hình ảnh ( loại I ) phương pháp chuyển giao Các tập tin được chuyển chính xác như nó tồn tại không thay đổi Đây là phương pháp chuyển file mặc định

FTP_TRANSFER_TYPE_UNKNOWN: Mặc định là

FTP_TRANSFER_TYPE_BINARY

Trang 20

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

INTERNET_FLAG_TRANSFER_ASCII: Truyền tập tin như ASCII.

INTERNET_FLAG_TRANSFER_BINARY: Truyền các tập tin như nhị phân.

Các giá trị sau được sử dụng để kiểm soát bộ nhớ đệm của tập tin Ứng dụng có thể sử dụng một hoặc nhiều các giá trị

INTERNET_FLAG_HYPERLINK: Buộc tải lại nếu hết thời gian và không

có thời gian lastmodified trở về từ máy chủ, để biết cần tải lại các mục từ mạng.

INTERNET_FLAG_NEED_FILE: Một tập tin tạm thời được tạo ra nếu các tập tin không được lưu trữ.

INTERNET_FLAG_RELOAD: Buộc tải về các tập tin được yêu cầu, đối tượng, hoặc danh sách thư mục từ máy chủ gốc, không phải từ bộ nhớ cache.

INTERNET_FLAG_RESYNCHRONIZE: Tải lại nguồn HTTP nếu nguồn tài nguyên đã được sửa đổi kể từ lần cuối cùng nó đã được tải về Tất cả các tài nguyên FTP được nạp lại.

Windows XP và Windows Server 2003 R2 và trước đó : Nguồn Gopher cũng được nạp lại.

dwContext [in]: Con trỏ trỏ đến một biến có chứa các giá trị ứng dụng định

nghĩa liên kết tìm kiếm này với bất kỳ dữ liệu ứng dụng nào Điều này chỉ được sử dụng nếu ứng dụng đã được gọi là InternetSetStatusCallback để thiết lập một chức năng trạng thái gọi lại

Giá trị trả về từ hàm này: Trả về một handle nếu thành công, hoặc NULL nếu khác Để lấy một thông báo lỗi cụ thể gọi GetLastError

2.2 Kết quả của chương trình keylogger

Ý tưởng :Lấy được thông tin nhập từ bàn phím Sau khi lấy được các ký tự

này sẽ được ghi vào trong một file (thường được hiểu là file log) File này

sẽ được mã hóa dựa vào thuật toán đối xứng và theo kiểu mã hóa thay thế Khi user bấm 1 phím bất kỳ trên bàn phím ký tự này sẽ được đổ vào một file chưa mã hóa sau đó dựa vào file này từng ký tự sẽ được đổ vào file mã

hóa dựa vào mã hóa thay thế và key mặc định mang giá tri INT Tới đây

chương trình Keylogger đã tạo được 1 file log mã hóa Việc tiếp theo đó là

sử dụng file log này gửi về một FTP server chúng ta có đăng ký tài khoản sẵn tại FTP server Để file log có thể gửi đến FTP server của chúng ta cần cung cấp URL của FTP server, username, password Trong chương trình này chúng ta có sử FTP server: ftp.driverhq.com

Trang 21

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG II GIỚI THIỆU

Username:freedomelem Password:123456

Mục đích của việc đăng ký tài khoản là để lấy được file log gửi đến FTP server và chúng ta có thể đọc thông tin bất kỳ đâu có internet File log được gửi đến FTP Server với tên là Ngày_tháng_giờ _phút _giây để tiện cho việc theo dõi ngày ghi và giờ ghi file log Ví du:

Logdate_29Jul_time_114112.txt

Một đăc điểm của chương trình nữa đó là có thể thay đổi thời gian gửi về FTP Server của chúng ta Cứ đến khoảng thời gian đó thì file log sẽ được gửi về FTP server

Vì chương trình hiện tạo có mục đích để theo dõi và bắt các lỗi nên em có làm giao diện để thao tác và truyền tham số đầu vào

Trang 22

BÁO CAO TTTN ĐẠI HỌC CHƯƠNG III DEMO CHƯƠNG TRINH

Ngày đăng: 03/05/2015, 22:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w