Странный.C файл

Не спрашивайте, где и почему я его получил, но у меня много таких строк в файле.c:

0005080: 3465 3434 2035 6635 6620 2064 6c65 2e5f  4e44 5f5f  dle._
0005090: 5f44 544f 525f 454e 445f 5f0a 3030 3031  _DTOR_END__.0001
00050a0: 3334 303a 2030 3035 6620 3566 3663 2036  340: 005f 5f6c 6
00050b0: 3936 3220 3633 3566 2036 3337 3320 3735  962 635f 6373 75
00050c0: 3566 2036 3936 6520 3639 3734 2020 2e5f  5f 696e 6974  ._
00050d0: 5f6c 6962 635f 6373 755f 696e 6974 0a30  _libc_csu_init.0

Что я могу с этим сделать? Это программа?

2 ответа

Это не файл C Это не файл C вообще!

Похоже, что здесь произошло то, что кто-то переключил некоторые параметры, пытаясь скомпилировать файл; что-то вроде gcc -o my_file.c my_file.c, Или что-то в этом роде.

Если вы работаете в Linux, вы можете запустить file Утилита, чтобы выяснить, что это такое.

Замечания:

Это также может быть частью вредоносного ПО: предприимчивый потенциальный злоумышленник отправил вам файл, надеясь, что вы дважды щелкните по нему в файловом менеджере, заставив его выполнить и сделать что-то неприятное.

Редактировать:

Кроме того, является ли это буквальное содержимое файла, или файл, как видно через xxd? Если это первое, это скорее ошибка какого-то рода; но если это последнее: остерегайтесь.

Это похоже на вывод hexdump команда.

Если у вас есть файл temp.c со следующим кодом:

#include<stdio.h>
int main()
{
        printf("Hello World!\n");
        return 0;
}

Затем, hexdump -C temp.c будет производить вывод как:

00000000  23 69 6e 63 6c 75 64 65  3c 73 74 64 69 6f 2e 68  |#include<stdio.h|
00000010  3e 0a 69 6e 74 20 6d 61  69 6e 28 29 0a 7b 0a 09  |>.int main().{..|
00000020  70 72 69 6e 74 66 28 22  48 65 6c 6c 6f 20 57 6f  |printf("Hello Wo|
00000030  72 6c 64 21 5c 6e 22 29  3b 0a 09 72 65 74 75 72  |rld!\n");..retur|
00000040  6e 20 30 3b 0a 7d 0a                              |n 0;.}.|
00000047

Последние несколько строк скомпилированного выходного файла (a.out в целом) для вышеуказанной программы читают:

\ 00__data_start \ 00__gmon_start __ \ 00__dso_handle \ 00_IO_stdin_used \ 00 __libc_csu_init \ 00_end \ 00_start \ 00__bss_start \ 00main \ 00_Jv_RegisterClasses \ 00__TMC_END ___ 00_T_M_N_T_M_N_

В вашем случае это выглядит как hexdump (или аналогичная) команда использовалась на a.out (то есть файл объектного кода) и последние несколько строк выходных данных.

Удачи!

Другие вопросы по тегам