迄今为行所有回复满是一本正经瞎答复的。。。
帐号被(未知原因)封了几天,错过了那个问题。
先抄题
差别格局的文件在硬盘磁片上的二进造数据可能是完全一样的么?完全可能。
那么TXT文件能否有几率当成exe png zip翻开完全可能。
先说第一个完全可能。那么一坨二进造有个学名,叫 polyglot。最早的例子是那个
http://lcamtuf.coredump.cx/squirrel/
或者在阅读器敲入代码
data:text/html, <html><img src="http://lcamtuf.coredump.cx/squirrel/"></html>你翻开那个网页,查看源码,能够发现那 tm 竟然是个 jpeg 文件。也能当 html 衬着。是不是很6666 。原因很简单。阅读器碰到不成解析的 html 字符会主动跳过。
若是你觉得那就完毕了,no no no,还有更炫酷的,蛋痛的人就成批呈现了。
http://www.p01.org/matraka/
点开那个链接,点那个彩色图片进去看在线演示。
DEMOJS 2012s winner 1k intro with 3D graphics and music, written in JavaScript and packaged into a self extracting PNG image. See and hear for yourself! Remember, everything youre about to see and hear fits in 1024 bytes. Watch out, the music is quite loud那货自己是一个网页,JS+GLSL绘造了3D动画+音乐,但是做者手动把那些内容造做成了一个合法的 PNG 格局文件里!并且那一共只要1024字节!
那个文件很小,我就间接贴出来了
$ curl -s "http://www.p01.org/matraka/matraka.png.html" | xxd 0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR 0000010: 0000 04f9 0000 0001 0800 0000 0089 3c24 ..............<$ 0000020: ba00 0003 2049 4441 5478 5e6d 5461 6faa .... IDATx^mTao. 0000030: 4814 7d3f a5c9 4699 8161 9801 4485 374d H.}?..F..a..D.7M 0000040: b0dd be6d 3626 5b6d b75b 8d2f 4119 0b79 ...m6&[m.[./A..y 0000050: 0a66 1851 5bfb df77 466c b749 d70f c3b9 .f.Q[..wFl.I.... 0000060: f79c 7be0 de0b 7e1b b2e9 880d 1399 6191 ..{...~.......a. 0000070: 1469 b946 774d b428 2bb4 c095 3cac 385e .i.FwM.(+...<.8^ 0000080: 54d5 3ddf 4b66 6cca 2a97 7959 84cb 7ccf T.=.Kfl.*.yY..|. 0000090: d348 969b 9044 2bbe 94ea b2cb 5399 8594 .H...D+.....S... 00000a0: 9056 94f1 fc39 930d 9e27 8b5f cfa2 dc16 .V...9...._.... 00000b0: 69f8 1b21 c440 9c19 6922 9330 d9a6 79e9 i..!.@..i".0..y. 00000c0: ec92 5a49 2a1e f8e8 e1d7 eac7 28bf 8be3 ..ZI*.......(... 00000d0: 78f0 cfdd df93 9bc9 9a92 db41 ac7f eafc x..........A.... 00000e0: 3dde dd90 381e 0ed2 267e 8e27 3f6e c893 =...8...&~.?n.. 00000f0: 921b b368 590a 2099 db09 4824 6d3b 82c3 ...hY. ...H$m;.. 0000100: a99c b157 194a b40d 65cb ef39 5dac 6e50 ...W.J..e..9].nP 0000110: 87d2 f182 0077 d13e a46e cf1e 0168 aa1a .....w.>.n...h.. 0000120: 7408 03ff 2378 f94c bd9d 9d95 ad65 7def t...#x.L.....e}. 0000130: f14e 04b9 c5e6 b24c c018 18d4 a3a4 4b89 .N.....L......K. 0000140: 47bd 4e97 a8c0 7789 6f4c 81bc bca4 a44d G.N...w.oL.....M 0000150: 3bd0 3a41 afed c399 29db fd00 6957 ea76 ;.:A....)...iW.v 0000160: 4d70 9af0 a6dc 01e9 50df 276a 4e14 d100 Mp......P.jN... 0000170: 3abe f5c1 50fb 1317 f810 a2c6 b7fb b373 :...P..........s 0000180: 3c9e 8d20 8c26 ace0 bb8b 58cf 1270 15e2 <.. .&....X..p.. 0000190: cd2a 3980 8acb db42 7251 272b b0dc 160b .*9....BrQ+.... 00001a0: bdb3 8b39 a8d1 0ebe e64b 5043 c1e5 5614 ...9.....KPC..V. 00001b0: 173b fc68 d7f8 311a e2aa 1412 cc61 94b1 .;.h..1......a.. 00001c0: 056e d6c7 c8d1 23c4 cc8b 828b 3f4e 19e7 .n....#.....?N.. 00001d0: 841f f59e a32b 7607 049b e0c5 5608 5ec8 .....+v.....V.^. 00001e0: fb7c cd1d 1746 639d b67b 304a b028 6522 .|...Fc..{0J.(e" 00001f0: 3900 a24d 3de8 a809 630a a301 134e 3f8a 9..M=...c....N?. 0000200: d947 9b83 a6bb 2865 536a c788 a078 3625 .G....(eSj...x6% 0000210: c781 65b5 3cb5 d6ff 4bf2 afc9 af2f c06b ..e.<...K..../.k 0000220: cdf4 3b10 e966 f1e3 2581 095e e6ab d588 ..;..f..%..^.... 0000230: 2f24 a01d a29b 366b fc80 f455 290e cddc /$....6k...U)... 0000240: d7c9 1ed0 c054 2d40 a455 c2f4 5d08 adcc .....T-@.U..]... 0000250: 714f c2ee f96c bcc6 fad3 6046 56ad 8061 qO...l....`FV..a 0000260: 4d85 49bb b636 d2ab f17b 48f9 9c21 b48c M.I..6...{H..!.. 0000270: 96d1 545a 9e6b 7bae f2af f1d6 74d5 984e ..TZ.k{.....t..N 0000280: b036 3d05 674a 060d d83c b1fc ee7a c487 .6=.gJ...<...z.. 0000290: 4fac 1fd8 1e31 9506 5d33 cfb5 7aef b51f O....1..]3..z... 00002a0: 9550 39ef 1978 d76d a199 5ad7 2650 acc6 .P9..x.m..Z.&P.. 00002b0: dc6a 40a3 764e b75c ea92 17f6 f449 a8d3 .j@.vN.\.....I.. 00002c0: dc3a c3af e203 bb56 e227 25b9 7ee7 1413 .:.....V.%.~... 00002d0: a996 1875 7b0e 5076 e695 6a7e 6f8e ad7e ...u{.Pv..j~o..~ 00002e0: 0015 f1c0 7474 6569 66fc d6cc 4bff 8380 ....tteif...K... 00002f0: a9f1 17a1 17fe 30be 3790 a1ce 51fc 676c ......0.7...Q.gl 0000300: cca6 8336 9de1 6a3b afa4 0009 4e45 b2bb ...6..j;....NE.. 0000310: 5d27 cf1c 2c10 41c2 cc5a 19f2 5c94 393d ]..,.A..Z..\.9= 0000320: 1378 56ac 7a1a 5831 84ff 7184 7c21 a1e2 .xV.z.X1..q.|!.. 0000330: 7af6 69fa 47a3 a976 e11b 9ae0 5559 6e58 z.i.G..v....UYnX 0000340: 1fc2 6fff 02f6 ca62 143c 6361 6e76 6173 ..o....b.<canvas 0000350: 2069 643d 633e 3c69 6d67 2073 7263 3d23 id=c><img src=# 0000360: 206f 6e6c 6f61 643d 666f 7228 613d 632e onload=for(a=c. 0000370: 6765 7443 6f6e 7465 7874 2827 3264 2729 getContext(2d) 0000380: 2c69 3d65 3d27 272c 533d 5374 7269 6e67 ,i=e=,S=String 0000390: 2e66 726f 6d43 6861 7243 6f64 653b 612e .fromCharCode;a. 00003a0: 6472 6177 496d 6167 6528 7468 6973 2c69 drawImage(this,i 00003b0: 2d2d 2c30 292c 743d 612e 6765 7449 6d61 --,0),t=a.getIma 00003c0: 6765 4461 7461 2830 2c30 2c31 2c31 292e geData(0,0,1,1). 00003d0: 6461 7461 5b30 5d3b 2965 2b3d 5328 7429 data[0];)e+=S(t) 00003e0: 3b28 312c 6576 616c 2928 6529 3e ;(1,eval)(e)>那就是 HTML+JS+PNG 的 polyglot
好,拆逼拆完了,下面起头说说第二个完全可能。一个 txt 和 exe 的二进造完全不异。
那个其实难点不是完全不异,要不异太简单了,难点是 txt 更好是可见字符,也就是可打印 ascii 范畴内。然而 exe 格局良多控造字符。那么世界上有没有人蛋痛得把 exe 做成全可见 ascii 呢?
当然有那么蛋痛的人。cmu 的一个 PhD 就做了一个 C89 编译器,能够把肆意C 代码编译成 exe 而且二进造是可打印 ascii 字符。若何做到的呢?看论文
http://www.cs.cmu.edu/~tom7/abc/paper.txt
炫酷之处在于,那个论文 paper.txt 自己就是个 exe
当然,你在 win10 里下载那个 paper.txt 双击运行是不成能的了。。因为那货是 16bit 的,也就是 DOS 法式。。win10已经不撑持如许玩了。。算一点遗憾吧。
32bit 和 64bit 的 Windows PE 文件能不克不及完全由可见 ascii 字符构成?我估量是可行的。
但是就题主自己那些问题,我觉得已经算完全解答清晰了吧?
别的良多人提到什么 bt 种子藏在 jpg 里实是烂大街了。。还有就是 pdf + zip 格局的 polyglot 也是很常见。好比 https://truepolyglot.hackade.org/ 。以至有人搞出来了 pdf+zip+ocaml bytecode 的 polyglot。
关于文件格局的话题,能够看看 CCC 那个讲座 Funky file formats - 31c3
https://www.slideshare.net/ange4771/funky-file-formats-31c3http://www.corkami.com123 (二维码主动识别)
怎么说呢,一个.jpg文件 AES 后能够得到别的一个合法格局的 .png文件。蛋痛出天际了。还有一个 .jar 文件能够 3DES 后得到一个 .pdf,或者 AES 后得到一个 .flv 。。。。然后还有什么来着?对了 java 原来和 javascript 就是统一门语言!有截图为证!
还有一个可见 ascii 字符的 .txt + .pdf 混合格局。
用 polyglot 还能够用来绕过阅读器的 csp。好比 .js 同时又是一个 .jpg
https://portswigger.net/blog/bypassing-csp-using-polyglot-jpegs