下面这个图片文件看上去好像很正常:
但双击后,打开并不是一张图片,而是一个可执行程序,这是如何办到的呢。
很简单,流程如下:
1. 在自己的app工程中,使用和jpg图片一样的图标。build可执行的exe文件,比如:ABCjpg.exe.
2. 拷贝exe文件名到文本编辑器(如Notepad++)中,然后将ANSI码转换为Unicode码(USC2),保存到test.txt.
3. 用16进制编辑器(如WinHex)打开test.txt,看到的应该是这个样子:
4. 在WinHex中进行如下编辑,然后保存。
“20 2E"是Unicode中的RLO符(Right to Left Override)
5. 用现在test.txt中的内容重命名可执行文件,可执行文件的名字是ABCexe.jpg。
但是Windows在判断文件格式时,还是认为这是个exe文件,所以它是可以双击执行的。
6. 双击这张“图片”吧,然后想想你能造成多少破坏。
But, don't be evil.
PS: 其实还有更简单的方法: 对生成的exe文件,直接重命名。先输入ABC;然后右键,选择Insert Unicode Control Character -> RLO;再依次按下:gpj.exe。
效果是一样的。
不光是jpg,用mp3,gif,rar等等都可以作恶。
再收到这类文件时,一定要小心为上。