Я изменил строку 25 на:
await message.channel.send("lmao")
Кажется, сейчас работает:)
Я склонен использовать strings
программа (с'-a
'опция или мой собственный вариант, где'-a
'поведение является стандартным), и ищите контрольные знаки. Например, в одной из моих собственных библиотек, я нахожу:
/work1/gcc/v4.2.3/bin/../lib/gcc/sparc-sun-solaris2.10/4.2.3/include
/work1/gcc/v4.3.0/bin/../lib/gcc/sparc-sun-solaris2.10/4.3.0/include
/work1/gcc/v4.3.1/bin/../lib/gcc/sparc-sun-solaris2.10/4.3.1/include
/work1/gcc/v4.3.3/bin/../lib/gcc/sparc-sun-solaris2.10/4.3.3/include
Это предполагает, что код в библиотеке был скомпилирован со множеством версий GCC в течение лет (на самом деле, я вполне поражен для нахождения такого количества версий в единственной библиотеке).
Другая библиотека содержит:
cg: Sun Compiler Common 11 Patch 120760-06 2006/05/26
acomp: Sun C 5.8 Patch 121015-02 2006/03/29
iropt: Sun Compiler Common 11 Patch 120760-06 2006/05/26
/compilers/v11/SUNWspro/prod/bin/cc -O -v -Xa -xarch=v9 ...
Так, обычно существуют цифровые отпечатки в объектных файлах, указывающих, какой компилятор использовался. Но необходимо знать, как искать их.
Библиотека, как предполагается, является библиотекой C++ или C?
Если это - библиотека C, затем называют искажение, не может быть проблема, поскольку нет ни одного в C. Это могло быть однако в неправильном формате. Нельды раньше имели библиотеки в a.out формате, но почти всех более новых версиях, переключенных на более мощные форматы как ELF.
Если это - библиотека C++, затем называют искажение, может быть проблема. Большинство компиляторов встраивает некоторые символы, которые являются компилятором, конкретным в код, поэтому если у Вас есть инструмент как nm для списка символов, можно, надо надеяться, вывести, из какого компилятора он прибыл.
Например, g ++ создает символ
__ gxx_personality_v0
в он - библиотеки
Извлеките объектные файлы из архива, затем выполненного strings
команда на некоторых из них (сначала на меньших с тех пор было бы меньше шума для отсеивания через). Много компиляторов вставляют подписи ASCII в объектные файлы.
Например, следующий бессмысленный исходный файл, foo.c
:
extern void blah();
при компиляции на моей машине Fedora 10 в foo.o через gcc -c -o foo.o foo.c
результаты в 647 байтах foo.o
объектный файл. Выполнение strings
на foo.o
результаты в
GCC: (GNU) 4.3.2 20081105 (Red Hat 4.3.2-7) .symtab .strtab .shstrtab .text .data .bss .comment .note.GNU-stack foo.c
который проясняет, что компилятор был GCC. Даже если я скомпилировал его с -fno-ident
, раздел ELF примечания.GNU-стека все еще присутствовал бы.
Можно извлечь объектные файлы с помощью ar
утилита или Полуночный Командующий использования (который интегрирует площадь), или можно просто работать strings
на архиве (который мог бы дать Вам больше шума и быть менее релевантным, но все еще поможет.)