@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
在編寫某個(gè)hta的用戶環(huán)境分析工具的時(shí)候,經(jīng)常發(fā)現(xiàn)用戶被一些莫名其妙的代理服務(wù)器所劫持以后,一個(gè)正常的文本請求卻下載到了一個(gè)圖片。這種log看多了以后sidney就開始投訴了,想搜集到用戶那里收到的到底是個(gè)什么圖片。
這個(gè)圖片用戶那里雖然可以看,但是要生成到log里面就要另外保存一個(gè)文件,如果要上傳的話還要開發(fā)相應(yīng)的圖片上傳功能,這就麻煩了。
當(dāng)然還可以用eml或者mht的形式吧圖片打包在log里面,這樣圖片就會以base64形式編碼進(jìn)去嵌在log的文本里面了。但是hta記得似乎控制save命令的時(shí)候不能制定mht格式(沒試過),eml要依賴客戶端有郵件客戶端,還要能通過js操控,更麻煩。
還好IE其實(shí)也有類似的功能,并且效率更高,唯一的問題是要依賴activex,不過這再hta里面就不算問題了。
IE下的圖片文件(圖片)base64編碼代碼是這樣的:
<SCRIPT LANGUAGE="JavaScript">
<!--
var x= new ActiveXObject("Msxml2.XMLHTTP.6.0");
x.onreadystatechange=function(){
if(x.readyState<4)return;
var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
var tmpNode = xml_dom.createElement("tmpNode");
tmpNode.dataType = "bin.base64";
tmpNode.nodeTypedValue = x.responseBody;
base64string=tmpNode.text.replace(/\n/g,"");
document.write("<img src=\"data:image/bmp;base64,"+base64string+"\">")
}
x.open("get","http://www.tkk7.com/images/blogjava_net/emu/1359/o_emu120.jpg",true);
x.send("");
//-->
</SCRIPT>