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

fix(user/module): read openssl version 3+ #661

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

xxxxxliil
Copy link
Contributor

openssl 3+(尚未排查出是哪个 commit 导致)不再把版本号放入 libssl.so 的 .rodata 段中,导致自动检测失败从而回落到 openssl 3.0.0。 幸运的是 libcrypto.so 的 .rodata 段中有期望的版本号字符串且 libssl.so 链接到 libcrypto.so,自动获取 libssl 路径时从 libcrypto.so 读取是一个低成本的解决方案。 debian 的 libssl3 包 与 fedora 的 openssl-libs 包会把 libcrypto.so 和 libssl.so 打包在一起,没有查看 alpine 这类更小的发行版是否发生拆分。只能乐观地假设 libssl.so 存在但 libcrypto.so 不存在是不可接受的(环境损坏)。

fix: https://github.com/gojue/ecapture/issues/609 or #609

openssl 3+(尚未排查出是哪个 commit 导致)不再把版本号放入 libssl.so 的 .rodata 段中,导致自动检测失败从而回落到 openssl 3.0.0。
幸运的是 libcrypto.so 的 .rodata 段中有期望的版本号字符串且 libssl.so 链接到 libcrypto.so,自动获取 libssl 路径时从 libcrypto.so 读取是一个低成本的解决方案。
debian 的 libssl3 包 与 fedora 的 openssl-libs 包会把 libcrypto.so 和 libssl.so 打包在一起,没有查看 alpine 这类更小的发行版是否发生拆分。只能乐观地假设 libssl.so 存在但 libcrypto.so 不存在是不可接受的(环境损坏)。

fix: `https://github.com/gojue/ecapture/issues/609` or gojue#609
@cfc4n cfc4n added the help wanted Extra attention is needed label Nov 8, 2024
@xxxxxliil
Copy link
Contributor Author

我需要提供什么额外的说明吗?

@cfc4n
Copy link
Member

cfc4n commented Nov 9, 2024

尽量解析openssl 3.x so文件内的版本号,实现精确匹配吧。

@xxxxxliil
Copy link
Contributor Author

尽量解析openssl 3.x so文件内的版本号,实现精确匹配吧。

我用 cutter 看过字符串, libssl.so dynstr 段里只有多个 0 结尾且不能精确表达版本信息的版本号,而且这样版本号不能匹配 openssl 3.2.3 和 openssl 3.3.2。
image

@cfc4n
Copy link
Member

cfc4n commented Nov 10, 2024

能否尝试找其他特征? 当前PR的修复方式,很不准确,我不赞成这个方格式。

@xxxxxliil
Copy link
Contributor Author

抱歉,我目前只能想到这种依赖 libcrypto.so 但是相对更精确的方式。除非可以从没有调试信息的 libssl.so 搜索各种偏移

@cfc4n
Copy link
Member

cfc4n commented Nov 10, 2024

嗯,晚点我看看吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants