Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] Extend rules database layout: support i18n and version detection #984

Open
2 tasks done
nitram84 opened this issue Nov 11, 2023 · 1 comment
Open
2 tasks done
Labels
enhancement New feature or request

Comments

@nitram84
Copy link

nitram84 commented Nov 11, 2023

Checklist / 检查清单

  • No one has submitted a similar or identical feature request before. / 之前没有人提交过类似或相同的功能请求。
  • This suggestion does not depart from the original intention of LibChecker. / 这个建议不会背离 LibChecker 的初衷。

Enhancement propose / 改进目的

In my opinion two extensions for the current rules database layout would help LibChecker to get a greater audience and to support more features:

  1. Introduce a column e.g. "description_en" make this database translatable. Descriptions in rules like in

https://github.com/LibChecker/LibChecker-Rules/blob/master/native-libs/libfb.so.json

are incomprehensible for most people living in countries with latin character based languages. A possibility to translate the LibChecker database to english would help a lot.

  1. The LibChecker database could also store information to identify specific versions of libraries. I'm thinking of a table with following attributes:
  • foreign key to rules table
  • sha1 hash of the native library
  • group id
  • artifact id (group and artifact id may be different between different versions of the same library)
  • min version
  • max version (The version is a range since the native lib may be used unchanged in different versions of a library)

For most known open source libraries with native libs in the LibChecker database these information could be aggregated by scraping maven central. If those version data would be available in LibChecker database the app could identify specific versions by calculating and comparing hashes of native libs. Together with OWASP dependency check database LibChecker could even spot security issues in apps.

Another use case are decompilers: I recently used LibChecker rules database in a decompiler skylot/jadx#2040 (see sample script in issue)
Having dependency information with version numbers would make new ways possible to break code obfuscation.

The more uses cases exist for LibChecker rules database, the more people will contribute to this project.

Solution / 解决方案

No response

Additional info / 额外信息

No response

@nitram84 nitram84 added the enhancement New feature or request label Nov 11, 2023
@qhy040404
Copy link
Member

qhy040404 commented Nov 11, 2023

Internationalizing the description is a good idea, but at present, the database is manually maintained and is not integrated into ci. This will be a lot of work.
Secondly, it is not realistic to maintain the version information. Not all libraries will be published in maven central, and some libraries will be released separately through aar or jar. These content published on the open platform may not be available to the public, and applying for relevant permissions is also part of the overhead.
If the database is revised in the future, I will prefer to design a back-end, because at present, a large number of jsons correspond to the same description.
At present, LibChecker does not involve profit, and it is not necessarily in the future. It may be unrealistic to maintain a back-end. The current solution may be relatively cost-effective.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants