Releases: hexhacking/xDL
xDL v2.3.0
Announcements
Compatible with Android 16.
New features
Added new API xdl_open2().
See the description of xdl_open2() in the README for details.
Bugs fixed
Fixed the bug when xdl_addr() and xdl_addr4() encountered thumb instruction function. (Issue: #25. Thanks: @XMDS)
(commit: 790ad1a)
For thumb instruction function, st_value is an odd number, and the instructions are stored in the range: [st_value - 1, st_value - 1 + st_size).
Improved rules for ignoring LLVM suffixes in xdl_dsym().
(commit: dc74265)
Previously, only suffixes starting with . could be ignored. Now, suffixes starting with $ can be ignored.
公告
兼容 Android 16。
新特性
增加了新的 API xdl_open2()。
具体请查看 README 中对 xdl_open2() 的描述。
Bugs 修复
修复 xdl_addr() 和 xdl_addr4() 遇到 thumb 指令函数时的 bug。 (Issue: #25. Thanks: @XMDS)
(commit: 790ad1a)
对于 thumb 指令的函数,st_value 是奇数,函数指令的存储范围是:[st_value - 1, st_value - 1 + st_size)。
改进了 xdl_dsym() 中忽略 LLVM 后缀的规则。
(commit: dc74265)
之前只能忽略以 . 开头的后缀,现在新增了以 $ 开头的后缀的忽略。
xDL v2.2.0
Announcements
Compatible with Android 15. Compatible with 16KB page size.
New features
Added new API xdl_addr4().
See the description of xdl_addr4() in the README for details.
Bugs fixed
Fixed the bug that the wrong address is returned when querying the indirect function address.
When querying the address of an indirect function (STT_GNU_IFUNC) via xdl_sym(), the correct address is now returned. Previously, the address of the indirect function itself was incorrectly returned.
公告
兼容 Android 15,兼容 16KB page size。
新特性
增加了新的 API xdl_addr4()。
具体请查看 README 中对 xdl_addr4() 的描述。
Bugs 修复
修复查询 indirect function 地址时返回错误地址的bug。
当通过 xdl_sym() 查询 indirect function (STT_GNU_IFUNC) 地址时,现在能返回正确的地址了,之前错误的返回了 indirect function 本身的地址。
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_infostructure 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_dsymfailed ifxdl_openonly specified the ELF filename (without specifying the full path).
Bugs 修复
- 在之前的版本中,在 Android 5.x 中,如果
xdl_open仅指定 ELF 文件名(没有指定全路径),此时xdl_dsym会执行失败。