它是脚本还是二进制文件?

Lan*_*nes 5 linux bash truecrypt binary

最后,它看起来只是一个普通的 sh 脚本:

[USER@MACHINE ~/Desktop/D] head -2 truecrypt-7.1-setup-x86 
#!/bin/sh
CHECKSUM=163123652
Run Code Online (Sandbox Code Playgroud)

但@脚本结束:

[USER@MACHINE ~/Desktop/D] tail -2 truecrypt-7.1-setup-x86 
5??\V<Rx+÷o??6?F!&8???????^??T4
Sk?!?0"?W???L?`???Su?VP?!m?]5????C'}?/???%???????8?4???N;:??zgf?q?14S%oL?h?z????+?????<'??jN7)m?H?^??a??:?S???so[?$_?/Ø??&#X?+x????
                                                                                                                                                        Sd  hz=??H????)n?_???????48?,4?M?x?w??z?Mp??)??a=2a??0?I
???YI??`??om??0?3???,?}????I.??G???x???g???Þ%?H??4??{35??0?C!?$F????.?T?U?Ea???38sl)??[x"??,
                                                                                               /?/???o???hV???R?`???n??a???=~{#??FV????35?5Y;k??D??[mK????9 *lY??hD?:??{n??????$^?'???w?!$?????????*?????!'?????????????+?L#(+?V
Run Code Online (Sandbox Code Playgroud)

嗯..二进制数据..如何?

[USER@MACHINE ~/Desktop/D] file truecrypt-7.1-setup-x86 
truecrypt-7.1-setup-x86: POSIX shell script text executable
[USER@MACHINE ~/Desktop/D] 
Run Code Online (Sandbox Code Playgroud)

该文件怎么可能也包含 ASCII + 二进制数据?该脚本作为脚本启动,但以二进制数据结束?他们怎么能这样做?如何在脚本末尾保留“hello word”二进制文件?[并从脚本启动二进制部分?]

Ign*_*ams 10

文本和二进制之间的唯一区别在于您如何解释它。*nix 倾向于解释它们,因此以这种方式混合它们很好;脚本的文本部分可以使用各种命令提取脚本二进制部分的内容。