Файл CAP содержит основной класс апплета и все другие данные файла класса при выгрузке в формате ASCII - PullRequest
1 голос
/ 12 ноября 2019

Я использую комплект разработчика javacard 3.0.4 для создания файла шапки. Файлы классов генерируются с помощью команды javac -g -classpath% JC_HOME% \ lib \ api.jar;% JC_HOME% \ lib \ installer.jar PATH_TO_THE_JAVA_FILES_OF_THE_PROJECT '.

Использую конвертер для преобразования файлов классов в файл CAP, предоставив файл конфигурации. Содержимое файла конфигурации:

-out EXP JCA CAP
-classdir PATH_TO_CLASS_FILES
-exportpath PATH_TO_EXPORT_API_FILES
-applet 0xa0:0x00:0x00:0x00:0x62:0x12:0x34 MyWallet.Wallet
MyWallet 0xa0:0x00:0x00:0x00:0x62:0x12:0x34 1.0

Колпачок успешно создан. Но когда я вижу формат шапки ascii (используя capdump.bat), я вижу, что он содержит всю информацию о файлах классов апплета, что является проблемой безопасности.

Когда я генерирую файл cap, используя eclipse (на котором установлен плагин JCOP), файл CAP не содержит никакой информации о файле класса.

Так что, пожалуйста, кто-нибудь, помогите мне избавиться от классаИнформация о файле в файле CAP при генерации с использованием CONVERTER.bat в командной строке.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2019

Спасибо Maarteen за объяснение, оно помогло мне понять концепцию маскировки. Моя проблема была решена после настройки муравьиной задачи для сборки файла cap. Информация о файле класса в файле cap была удалена сборкой ant.

0 голосов
/ 17 ноября 2019

Декомпиляция всегда может иметь место, в конце концов Java нацеливается на JVM в конце концов, используя подмножество байт-кода Java. Поэтому я бы не стал слишком доверять таким мерам, как сокрытие имени класса / метода.

Однако, если вы не хотите генерировать такую ​​информацию, просто удалите параметры EXP, которые требуютсясвязать с вашим апплетом и опцией JCA, которая согласно документации Oracle является

... текстовым представлением содержимого файла CAP. Чтобы замаскировать апплет Java Card в смарт-карту, вам необходимо преобразовать класс апплета и все классы в его пакете в файл JCA. Затем вы указываете файл JCA и файлы JCA для любых других пакетов, которые должны быть включены в маску, в качестве входных данных для генератора маски.

Поэтому использовать этот файл нужно только тогда, когда требуется маскирование ПЗУ. Если вы просто хотите загрузить его самостоятельно, файл JCA не требуется.

...