Я не уверен, что это подходящее место для вас, любая помощь будет оценена по достоинству. Я хочу создать статический инструмент анализа taint для Java. Я понимаю, что инструмент сканирует все java-файлы, начиная с основной точки входа. И для каждой строки исходного кода он будет декодировать его и выполнить требуемое действие.Статический анализ taint для программ Java
Например,
1- Boolean x=false;
2- String s = x.toString();
Линия-1 объявляет одну логическую переменную и линию-2 преобразует его в строку. Строка-1 будет отмечать, что логическая переменная «x» была объявлена, и она преобразуется в строку в строке-2. И мой инструмент только поймет это, если я поставлю чек для функции toString() и выполнит требуемое действие.
Мой вопрос в том, что мне нужно написать проверки для всех функций, определенных для булевого типа в Java? Как насчет других типов данных и других функций библиотеки?
Например, некоторые другие функции, доступные для булевого типа;
toString(boolean value)
compareTo(Boolean that)
etc.
А что, если я использую StringUtils или гуавы строк? Или десятичный форматтер? У вас есть множество треков для покрытия и больше времени тратить на эту тему. Не упоминание типов для конверсий объектов и кастинг .... Может быть, лучше проанализировать байт-код или провести динамический анализ? – fatfredyy
Согласовано. Вот почему мне было интересно, как это делают другие инструменты для анализа статичных пятен? И все ли другие инструменты работают только на уровне байтового кода? – Junaid