Найдите язык программирования используемым

Названия таблиц и столбцов не могут быть заменены параметрами в PDO.

В этом случае вы просто захотите фильтровать и дезинфицировать данные вручную. Один из способов сделать это - передать сокращенные параметры функции, которая будет выполнять запрос динамически, а затем использовать оператор switch() для создания белого списка допустимых значений, которые будут использоваться для имени таблицы или имени столбца. Таким образом, пользовательский ввод никогда не попадает непосредственно в запрос. Например:

function buildQuery( $get_var ) 
{
    switch($get_var)
    {
        case 1:
            $tbl = 'users';
            break;
    }

    $sql = "SELECT * FROM $tbl";
}

Не оставляя случая по умолчанию или используя случай по умолчанию, который возвращает сообщение об ошибке, вы убедитесь, что используются только значения, которые вы хотите использовать.

34
задан Ed Guiness 16 December 2008 в 18:34
поделиться

12 ответов

Попробуйте PEiD

, конечно, если они использовали упаковщика, некоторая распаковка должна будет быть сделана сначала:)

27
ответ дан shadow 11 October 2019 в 06:57
поделиться

Вы могли попытаться использовать , Зависит для наблюдения, какие зависимости во время выполнения это имеет, который мог бы дать некоторый ключ к разгадке.

3
ответ дан Paul Dixon 11 October 2019 в 06:57
поделиться

Запустите его и проверьте то, что DLLs во время выполнения это использует с Проводником Процесса.

, Если это сразу не делает его очевидным, ищите сеть ссылки на те DLLs.

Большинство дизассемблеров (включая Olly я думаю) может легко показать Вам, текст содержал в EXE или DLL, и который может также иногда давать ключ к разгадке. Типы Дельфи часто снабжаются префиксом T как в TMyClass.

, Если это - маленький исполняемый файл без ссылок DLL и никакого текста, Вы могли бы быть СОЛЬ. В той точке необходимо было бы искать идиомы конкретных компиляторов, и это будут главным образом догадки.

11
ответ дан Ed Guiness 11 October 2019 в 06:57
поделиться

Самый легкий путь состоит в том, чтобы спросить разработчика программы. Это не требует никакого знания и утилит.

2
ответ дан HS. 11 October 2019 в 06:57
поделиться
  • Определяют Использование Приложения
  • Дельфи eda_preview270.exe (от здесь ) или некоторый другой инструмент шпиона и проверяют имена классов окна. Если они читают как TButton или TfrmBlubb, это - приложение VCL. Если существует "Afx" в них, это - вероятно, MFC.
1
ответ дан Uli Gerhardt 11 October 2019 в 06:57
поделиться

Скомпилированные языки (я имею в виду отсутствие языков сценариев или Java, .NET и т. Д.) Компилируются в инструкции сборки ЦП, что по сути является односторонним преобразованием. Обычно невозможно определить, на каком языке была написана программа. Однако, используя обходчик зависимостей, вы потенциально можете определить, какую библиотеку времени выполнения загружала программа (если таковая имеется) и, следовательно, определить, какой язык она использовала (например, MS Visual C ++ 9 использует msvcr90.dll).

1
ответ дан 27 November 2019 в 16:55
поделиться

вы можете проверить, является ли сборка .net или нет, попытавшись открыть с помощью инструмента ildasm.exe

1
ответ дан 27 November 2019 в 16:55
поделиться

Существует искусство определять, на каком языке написана программа. Это возможно, но нет жестких правил. Это требует большого опыта (и это также приводит к вопросу «Зачем вам ...», но вот несколько идей, как это сделать.

То, что вы ищете, - это «подпись» ". Подпись может быть определенной строкой, включенной компилятором, ссылкой на API, который довольно часто используется в используемом инструменте программирования, или даже стилем программирования, который является общим для используемых инструментов, видимым в строки, содержащиеся в приложении.

Кроме того, существуют стили развертывания приложения: различные файлы конфигурации, находящиеся в каталоге развертывания, библиотеки DLL и сборки и даже изображения, каталоги или значки.

Приложения Java, заключенные в самозапускающийся исполняемый файл, будут содержать ссылки на библиотеки java и, вероятно, будут иметь определенные библиотеки или файлы, включенные в тот же каталог, что указывает на то, что это java.

Как указано в других ответах, управляемая сборка будет также показывают определенные признаки: вы можете открыть его в Reflector и т. д. Хотя это правильно, что c # и VB "взаимозаменяемы" после компиляции, неверно, что они идентичны. Если вы используете Reflector для дизассемблирования кода VB, вы довольно часто увидите, что сборка ссылается на сборку Microsoft.VisualBasic.dll. Вы сможете увидеть разницу между Mono приложениями, потому что они, скорее всего, будут содержать ссылки на моно-сборки.

Многие компиляторы собирают и связывают код определенными способами и оставляют следы. вкладка в Process Explorer , вы увидите много строк. Используя их, вы можете определить стили программирования, вызываемые методы, методы ошибок или трассировки внутри исполняемого файла.

Примером является то, что компиляторы используют различные механизмы для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

вкладка в Process Explorer , вы увидите много строк. Используя их, вы можете определить стили программирования, вызываемые методы, методы ошибок или трассировки внутри исполняемого файла.

Примером может служить использование компиляторами различных механизмов для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Используя их, вы можете определить стили программирования, вызываемые методы, методы ошибок или трассировки внутри исполняемого файла.

Примером может служить использование компиляторами различных механизмов для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Используя их, вы можете определить стили программирования, вызываемые методы, методы ошибок или трассировки внутри исполняемого файла.

Примером может служить использование компиляторами различных механизмов для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Примером может служить то, что компиляторы используют разные механизмы для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Примером может служить то, что компиляторы используют разные механизмы для локализации: Microsoft хранит локализованные строки в файлах XML или файлах ресурсов. Другие компиляторы будут использовать другую тактику.

Другой пример - изменение имени в C ++ . Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

Компилятор CodeWarrior использует другой алгоритм для искажения имен переменных-членов и функций вызова, чем Visual Studio.

Я полагаю, вы могли бы написать книгу на тему точного определения происхождения любого исполняемый файл. Этот предмет, вероятно, можно было бы назвать «археология программирования».

8
ответ дан 27 November 2019 в 16:55
поделиться

В общем, нельзя.

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

0
ответ дан 27 November 2019 в 16:55
поделиться

Хороший вопрос. Нет никакого общего способа сказать, но я уверен, что большинство компиляторов и библиотек оставляют отметку в результирующем EXE-файле. Если вы хотите потратить на это много времени, вы можете собрать кучу EXE, написанных на известных языках, и сканировать общие строки.

Dependancy Walker , о котором упоминал кто-то другой, было бы хорошим способом поиска явных зависимостей, таких как версии MSVCRT и т. Д.

0
ответ дан 27 November 2019 в 16:55
поделиться

Я бы попробовал запустить .exe через "строковую" программу, чтобы получить различные подсказки.

0
ответ дан 27 November 2019 в 16:55
поделиться

Если я правильно помню Дизассемблер PE Explorer дает некоторую информацию о компиляторе, который создает заданные двоичные файлы не .net и java, для использования .net Reflector или Инструмент ILDAsm

0
ответ дан 27 November 2019 в 16:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: