Cryptography 我怎样才能知道这段代码是加密还是编译的,然后对其进行反向工程?

Cryptography 我怎样才能知道这段代码是加密还是编译的,然后对其进行反向工程?,cryptography,reverse-engineering,decompiling,Cryptography,Reverse Engineering,Decompiling,我想看一个文件的代码,它要么是加密的,要么是编译的,但我找不出是哪一个。代码可能是c,但我甚至找不到c反编译器。我可以看到两种类型的代码,一种是当我用升华文本打开它时,它会在列中显示一些数字和字母;另一种是当我用visual studio代码打开它时,它会显示一些未知字符,其中一些普通文本不是编译的代码,例如:它应该打印的文本 visual studio代码不能粘贴到这里,但我发现一些有趣的东西可能会有所帮助:GCC:ubuntu4.8.4-2ubuntu1~14.04.3 4.8.4 升华文本

我想看一个文件的代码,它要么是加密的,要么是编译的,但我找不出是哪一个。代码可能是c,但我甚至找不到c反编译器。我可以看到两种类型的代码,一种是当我用升华文本打开它时,它会在列中显示一些数字和字母;另一种是当我用visual studio代码打开它时,它会显示一些未知字符,其中一些普通文本不是编译的代码,例如:它应该打印的文本 visual studio代码不能粘贴到这里,但我发现一些有趣的东西可能会有所帮助:GCC:ubuntu4.8.4-2ubuntu1~14.04.3 4.8.4

升华文本代码示例:

7f45 4c46 0201 0100 0000 0000 0000 0000
0200 3e00 0100 0000 d00a 4000 0000 0000
4000 0000 0000 0000 2822 0000 0000 0000
0000 0000 4000 3800 0900 4000 1e00 1b00
0600 0000 0500 0000 4000 0000 0000 0000
4000 4000 0000 0000 4000 4000 0000 0000
f801 0000 0000 0000 f801 0000 0000 0000
0800 0000 0000 0000 0300 0000 0400 0000
3802 0000 0000 0000 3802 4000 0000 0000
3802 4000 0000 0000 1c00 0000 0000 0000
1c00 0000 0000 0000 0100 0000 0000 0000
0100 0000 0500 0000 0000 0000 0000 0000
0000 4000 0000 0000 0000 4000 0000 0000
bc18 0000 0000 0000 bc18 0000 0000 0000
0000 2000 0000 0000 0100 0000 0600 0000
101e 0000 0000 0000 101e 6000 0000 0000
101e 6000 0000 0000 e002 0000 0000 0000
3067 0000 0000 0000 0000 2000 0000 0000
0200 0000 0600 0000 281e 0000 0000 0000
281e 6000 0000 0000 281e 6000 0000 0000

您正在查看一个GCC编译的ELF-Linux可执行文件的hextump,它基于fileMagic编号的开头。它本身不是加密文件,但可以使用加密函数

根据您使用的操作系统的不同,您可以尝试Ghidra、IDA或GDB来调试汇编代码,但您应该首先知道文件是否可以安全运行

作为重新开始,我建议安装Ghidra,因为它可以给您一个类似C的伪代码,帮助您了解二进制文件正在做什么,它正在使用哪些库,等等

如果您想了解更多信息,请尝试重新学习课程,或尝试编写非常小的C程序,编译和调试它们,并尝试阅读coreutils:

并将其与二进制文件进行比较,例如向您展示一些帮助RE的工具,但忽略了大部分输出:

$ cat /usr/bin/whoami | less
$ xxd /usr/bin/whoami | less
$ xxd -b /usr/bin/whoami | less
$ readelf -a /usr/bin/whoami
$ file /usr/bin/whoami
/bin/rm: ELF 64-bit LSB executable, x86-64, version1 (SYSV), dynamically linked (uses shared libs), .....
$ man elf
$ objdump -d /usr/bin/whoami | less
$ binwalk /pathto/yourfile
您还可以阅读有关ELF文件格式的更多信息: