之前写过利用图片重写的方法清除图片中恶意代码的文章,java清除恶意代码 ,但这些图片中的恶意代码是怎么植入进去的呢,有简便方法,也有复杂方法。先来看如下这张图片,是Google的LOGO,是一张完全正常的png图片:
用UltraEdit打开,一切正常,看不到其它JS代码,如下:
下面是一段我们用来测试的JavaScript代码:
<script type="text/javascript"> function writerJSToImage(){ alert('hello shixing!'); } </script>那么如何把这段代码写入该图片呢,其实只要用二进制模式下的拷贝就可以了,按照如下步骤:
1. 将准备好的 logo_cn.png 文件与需要植入的js文件放在C盘根目录下.
2. 打开CMD进入C盘根目录,执行 copy/b logo_cn.png+test.js new_logo.png,如下图(/b参数为以二进制方式拷贝)
3. 进入目录检查生成的new_logo.png文件,打开看看,图片可以显示如下图,表面看不出来什么异常:
4. 用UltraEdit打开看看,发现多了一段代码,就是我们想要的结果,如下图:
注意: 因为每种格式的文件类型,都有一定的规则,所以不能破坏描述文件格式的文件头部分,所以test.js文件只能放到拷贝命令的后面。
如果是linux系统则可以用如下命令:
cat logo_cn.png test.js>new_logo.png
比较复杂的方法可以参考以下文章:
将js/css脚本放到png图片中的实践: http://blog.csdn.net/zswang/article/details/7061560
在GIF图片中隐藏任意脚本的方法:http://www.huangwei.me/blog/2010/10/13/embed-script-inside-gif/