Проверить содержимое в файлах .class

Предположим, что кто-то узнал, что определенный разработчик жестко закодировал кучу имен пользователей и паролей в приложение, которое превратило его в Production. О-о...!

Вы знаете как имя пользователя, так и пароль - есть ли способ проверить байт-код и определить, было ли на самом деле имя пользователя, пароль жестко запрограммирован?

Ответ 1

Простым способом увидеть, какие литералы String используются в файле .class, является использование утилиты javap в вашем Установка JDK для сброса файла с помощью опции "-v". Затем grep для текста, который выглядит как <String "...">, где ... - это строка, которую вы ищете.

UPDATE

Последняя документация для javap здесь, но старая версия выглядит более приятной IMO.

Ответ 2

Вы можете использовать декомпиляторы java для декомпиляции вашего класса (и проверить, содержит ли класс жестко заданные имя пользователя/пароли) Посмотрите:

Ответ 3

Вы заглянули в JD-GUI? Вы можете увидеть, если это было жестко закодировано в любой из файлов классов.

Ответ 4

Может быть полезным для других в будущем. (From Как я могу открыть Java.class файлы по-человечески?

Usage: javap <options> <classes>...

where options include:
   -c                        Disassemble the code
   -classpath <pathlist>     Specify where to find user class files
   -extdirs <dirs>           Override location of installed extensions
   -help                     Print this usage message
   -J<flag>                  Pass <flag> directly to the runtime system
   -l                        Print line number and local variable tables
   -public                   Show only public classes and members
   -protected                Show protected/public classes and members
   -package                  Show package/protected/public classes
                             and members (default)
   -private                  Show all classes and members
   -s                        Print internal type signatures
   -bootclasspath <pathlist> Override location of class files loaded
                             by the bootstrap class loader
   -verbose                  Print stack size, number of locals and args for methods
                             If verifying, print reasons for failure