Releases: hexhacking/xDL
Releases · hexhacking/xDL
xDL v2.1.1
Bugs fixed
Fixed the bug of incorrect symbol name matching in xdl_dsym()
.
This bug could cause xdl_dsym()
to return the wrong address when .symtab
contains symbol names with the same prefix. For example: querying the address of abcdef
, but incorrectly returning the address of abcde
.
This bug only exists in 2.1.0
version.
Bugs 修复
修复 xdl_dsym()
符号名匹配错误的 bug。
当 .symtab
中含有相同前缀的符号名时,这个 bug 可能会导致 xdl_dsym()
返回错误的地址。比如:查询 abcdef
的地址,但是错误的返回了 abcde
的地址。
这个 bug 只存在于 2.1.0
版本中。
xDL v2.1.0
Announcements
- Compatible with Android 14.
Improve
- Improve the success rate of force dlopen.
公告
- 兼容 Android 14。
改进
- 改进 force dlopen 的成功率。
xDL v2.0.0
xDL v1.2.1
Improve
- Improve the compatibility of
xdl_iterate_phdr()
on Android 4.x.
The first LOAD segment of ELF may be read-only (use the linker option --rosegment
), and the /proc/self/maps
at this time may look like this:
75b8d000-75b9f000 r--p 00000000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75b9f000-75bde000 r-xp 00012000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75bde000-75be1000 r--p 00051000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75be1000-75be2000 rw-p 00054000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
In Android 4.x, xdl_iterate_phdr()
in previous versions of xDL will not recognize the above libquick.so
.
改进
- 改进
xdl_iterate_phdr()
在 Android 4.x 中的兼容性。
ELF 的第一个 LOAD segment 可能是只读的(用链接器选项 --rosegment
),此时的 /proc/self/maps
大概是这样的:
75b8d000-75b9f000 r--p 00000000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75b9f000-75bde000 r-xp 00012000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75bde000-75be1000 r--p 00051000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75be1000-75be2000 rw-p 00054000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
在 Android 4.x 中,此前版本 xDL 中的 xdl_iterate_phdr()
会无法识别到上面的 libquick.so
。
xDL v1.2.0
Incompatible Changes
xdl_info
structure renamed toxdl_info_t
.
New features
- Added new API
xdl_info()
.xdl_info()
obtains information about the dynamically loaded object referred to byhandle
(obtained by an earlier call toxdl_open
).
不兼容的变更
xdl_info
结构体更名为xdl_info_t
。
新特性
- 增加了新的 API
xdl_info()
。xdl_info()
通过handle
(xdl_open
的返回值)来获取动态加载对象的信息。
xDL v1.1.5
Announcements
- Compatible with Android 13.
公告
- 兼容 Android 13。
xDL v1.1.4
xDL v1.1.3
Bugs fixed
- In previous versions, in Android 5.x,
xdl_dsym
failed ifxdl_open
only specified the ELF filename (without specifying the full path).
Bugs 修复
- 在之前的版本中,在 Android 5.x 中,如果
xdl_open
仅指定 ELF 文件名(没有指定全路径),此时xdl_dsym
会执行失败。
xDL v1.1.2
Bugs fixed
- Fix an occasional SIGBUS crash when parsing
.symtab
in.gnu_debugdata
.
Improve
- Improve the performance of
xdl_open()
andxdl_addr()
in Android 5.x. - Upgrade NDK to 23.1. Enable LLVM ICF and machine outliner.
Bugs 修复
- 修复了一个偶发的在解析
.gnu_debugdata
中的.symtab
时的 SIGBUS 崩溃。
改进
- 改进 Android 5.x 中
xdl_open()
和xdl_addr()
的性能。 - 升级 NDK 版本到 23.1。启用 LLVM ICF 和 machine outliner。
xDL v1.1.1
Incompatible Changes
- Replace
Dl_info
with customxdl_info
. - Remove
XDL_WITH_LINKER
fromxdl_iterate_phdr()
flags options. Nowxdl_iterate_phdr()
will always contain linker.
Bugs fixed
- Fix force dlopen failed on Android 8.0 and 8.1.
New features
- Compatible with Android 12 (API level 31).
Improve
- Improved the speed of opening linker, app_process and vDSO with
xdl_open()
. - Update version for gradle, AGP and NDK.
不兼容的变更
- 用自定义的
xdl_info
替代Dl_info
。 - 从
xdl_iterate_phdr()
的 flags 选项中删除了XDL_WITH_LINKER
。现在xdl_iterate_phdr()
将始终包含 linker。
Bugs 修复
- 修复了在 Android 8.0 和 8.1 中强制 dlopen 时失败的 bug。
新特性
- 兼容 Android 12 (API level 31)。
改进
- 提升了用
xdl_open()
打开 linker, app_process 和 vDSO 的速度。 - 升级 gradle,AGP 和 NDK 的版本。