【问题标题】:How can I find out if this code is encrypted or compiled and then reverse engineer it?如何确定此代码是否已加密或编译,然后对其进行逆向工程?
【发布时间】:2020-04-28 18:33:35
【问题描述】:

我想查看一个文件的代码,它要么是加密的,要么是编译的,但我不知道它是哪一个。代码可能是 c 但我什至找不到 c 反编译器。我可以看到两种类型的代码,一种是当我用崇高文本打开它时,它会在列中显示一些数字和字母,另一种是当我用 Visual Studio 代码打开它时,它会显示一些未知字符和一些普通文本't 将被编译的代码(例如:它应该打印的文本) 无法在此处粘贴 Visual Studio 代码,但我发现了一些可能会有所帮助的有趣内容:“GCC: (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4”

Sublime Text 代码示例:

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

【问题讨论】:

    标签: cryptography reverse-engineering decompiling


    【解决方案1】:

    您正在查看 GCC 编译的 ELF Linux 可执行文件的 hexdump,基于文件的开头(幻数)。它本身不是加密文件,但可能使用加密功能。

    根据您使用的操作系统,您可以尝试 Ghidra、IDA 或 GDB(为了调试汇编代码,您首先应该知道文件是否可以安全地实际运行)。

    作为 RE 入门者,我建议安装 Ghidra,因为它可以为您提供类似 C 的伪代码,帮助您了解二进制文件在做什么、它正在使用哪些库等。

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

    https://github.com/coreutils/coreutils/blob/master/src/whoami.c

    并将其与二进制文件进行比较,例如(向您展示一些有助于 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 文件格式的更多信息:

    https://linuxhint.com/understanding_elf_file_format/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-16
      • 2015-04-23
      • 2023-03-24
      • 2013-10-05
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多