Just_F Ответов: 1

Как заставить это РЕПО virustotal github снова работать?


доброе утро

Я пытался использовать это РЕПО для своего проекта Android, основанного на Java: GitHub - tushroy/virus-total: a Java API for VirusTotal[^]

Проблема в том, что это РЕПО обновлено до 2013 года, и предоставленная ссылка (внутри Virustotal.Java) возвращает ошибку 404, поэтому ссылка VirusTotal устарела.

Не могли бы вы помочь мне снова заставить это РЕПО работать? Я не являюсь его владельцем, поэтому я пытаюсь заставить его работать внутри моего проекта Android, а не редактировать его в GitHub.

Заранее спасибо,

Ф.

Что я уже пробовал:

Я попытался адаптировать его для проекта Android, так что внутри MainActivity.class так оно и есть:

[...]


   private void getAllFilesOfDir(File directory) throws IOException {
        Log.d("get files", "Directory: " + directory.getAbsolutePath() + "\n");

        final File[] files = directory.listFiles();

        if ( files != null ) {
            for ( File file : files ) {
                if ( file != null ) {
                    if ( file.isDirectory() ) {  // it is a folder...
                        getAllFilesOfDir(file);
                    }
                    else {  // it is a file...
                        Log.d("files", "File: " + file.getAbsolutePath() + "\n");

                        System.out.println("[*] Scanning file: " + file);

                        byte[] data = FileUtils.readFileToByteArray(file);

                        String sha256Hex = DigestUtils.sha256Hex(data);

                        //The VirusTotal class allows you to search for results using various hashes
                        //and details as supported on the VirusTotal search functionality.
                        Set<Report> reports = VirusTotal.scan(sha256Hex);

                        //Output the details of each scan result from a vendor
                        for (Report report : reports) {
                            System.out.println(report.getVendor() + " - " + report.getMalwarename());
                            Log.e("report virus",report.getVendor() + " - " + report.getMalwarename());
                        }

                     
                    }
                }
            }
        }
    }

Richard MacCutchan

В чем же проблема?

Just_F

Привет, спасибо за помощь
Проблема в том, что в этом классе https://github.com/tushroy/virus-total/blob/master/src/com/api/virustotal/VirusTotal.java если вы проверите сайт https://www.virustotal.com/en/file/%s/analysis/ вы получаете ошибку 404, поэтому, когда вы реализуете ее в приложении, вы не получаете результатов

Richard MacCutchan

Вам нужно использовать строковый формататор для замены %s с некоторыми реальными данными, которые VirusTotal может использовать.

Just_F

Уже сделано: String VT_URL = String.format(URL_VIRUS_TOTAL, ключевое слово);

Richard MacCutchan

Каково фактическое значение URL-адреса, который вы отправляете?

Just_F

https://www.virustotal.com/gui/file/(файл SHA256)/обнаружение/
Пример: https://www.virustotal.com/gui/file/1cfe9f6b9b7ddc7dca8cb24eb0687c4c84693ba9cdb2ee6295833ffd25f33cc3/detection

David Crow

***** Немного не по теме *****

Отправив почти уникальное 32-битное значение в VirusTotal.scan(), как этот метод знает, что связанный файл является вирусом или нет?

1 Ответов

Рейтинг:
1

Richard MacCutchan

Я предлагаю вам также прочитать https://developers.virustotal.com/v3.0/reference#errors[^]


Just_F

Привет
Я обновил приложение, но проблема в том, что оно выглядит так, как будто не подключается к сети.
То, что я пробовал: вместо того, чтобы https://www.virustotal.com/en/file/%s/analysis/ я обновился до https://www.virustotal.com/gui/file/%s/detection/ но я не получаю результатов: Я не извлекаю ошибки или результаты. Обновленный код в главном посте. Я не получаю журналы для "report virus", но даже не для общих ошибок. Похоже, что он не может подключиться к веб-сайту, даже если у меня есть разрешение на это (через манифест)

Richard MacCutchan

Этот URL-адрес недействителен, вы должны заменить %s значением, которое ведет к фактической странице на веб-сайте VirusTotal. Это не проблема кодирования или разрешений. Вам нужно зайти на сайт VirusTotal и узнать, как пользоваться их сервисом.

Just_F

Как было написано выше, уже есть: String VT_URL = String.format(URL_VIRUS_TOTAL, ключевое слово); где ключевое слово-это фактический необходимый SHA256. Просто посмотрите пример: https://www.virustotal.com/gui/file/1cfe9f6b9b7ddc7dca8cb24eb0687c4c84693ba9cdb2ee6295833ffd25f33cc3/detection

Richard MacCutchan

Ну, это прекрасно работает, так в чем же проблема?

Just_F

Проблема в том, что приложение с этой интеграцией (как показано на GitHub, но с обновленной ссылкой) не получает ни данных, ни ошибок, даже если я правильно установил все разрешения

Richard MacCutchan

Когда я набираю этот URL-адрес в своем веб-браузере, он возвращает страницу информации. Так что же происходит, когда вы это делаете?

Just_F

Бывает, что он не извлекает информацию, но и не дает мне ошибок (нет 404, нет ошибок из-за самого приложения...) просто ничего.
Я не получаю список, который вы можете увидеть на странице https://github.com/tushroy/virus-total с помощью "антивирус - вирус ... antivirus2 - вирус" и т. д.
Повторяю: внутри моего приложения для Android

Richard MacCutchan

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

Just_F

Как уже было сказано, отладчик пуст (никаких ошибок или заметок), поэтому я и запустил этот поток

Richard MacCutchan

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