Skip to content

Releases: hexhacking/xDL

xDL v2.1.1

17 Jan 12:05
v2.1.1
228742f
Compare
Choose a tag to compare

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

09 Jan 13:01
v2.1.0
753d043
Compare
Choose a tag to compare

Announcements

  • Compatible with Android 14.

Improve

  • Improve the success rate of force dlopen.

公告

  • 兼容 Android 14。

改进

  • 改进 force dlopen 的成功率。

xDL v2.0.0

03 Mar 14:00
v2.0.0
6edc5e5
Compare
Choose a tag to compare

Incompatible Changes

  • Change POM group ID from io.hexhacking to io.github.hexhacking.

Bugs fixed

  • Fix crash on x86 architecture. (Issue: #10. Thanks: @zqhGeek)

不兼容的变更

  • POM group ID 从 io.hexhacking 修改为 io.github.hexhacking

Bugs 修复

  • 修复 x86 架构上的崩溃问题。 (Issue: #10. Thanks: @zqhGeek)

xDL v1.2.1

02 Dec 13:56
v1.2.1
9d6189d
Compare
Choose a tag to compare

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

09 Nov 07:49
v1.2.0
0e09289
Compare
Choose a tag to compare

Incompatible Changes

  • xdl_info structure renamed to xdl_info_t.

New features

  • Added new API xdl_info(). xdl_info() obtains information about the dynamically loaded object referred to by handle (obtained by an earlier call to xdl_open).

不兼容的变更

  • xdl_info 结构体更名为 xdl_info_t

新特性

  • 增加了新的 API xdl_info()xdl_info() 通过 handlexdl_open 的返回值)来获取动态加载对象的信息。

xDL v1.1.5

30 Aug 14:03
v1.1.5
6ef0f9f
Compare
Choose a tag to compare

Announcements

  • Compatible with Android 13.

公告

  • 兼容 Android 13。

xDL v1.1.4

18 Jun 04:51
v1.1.4
e8af9ab
Compare
Choose a tag to compare

Bugs fixed

  • Issue #4. Improve the success rate of force xdl_open.

Bugs 修复

  • Issue #4. 提高 force xdl_open 的成功率。

xDL v1.1.3

21 Mar 13:39
v1.1.3
3865f1d
Compare
Choose a tag to compare

Bugs fixed

  • In previous versions, in Android 5.x, xdl_dsym failed if xdl_open only specified the ELF filename (without specifying the full path).

Bugs 修复

  • 在之前的版本中,在 Android 5.x 中,如果 xdl_open 仅指定 ELF 文件名(没有指定全路径),此时 xdl_dsym 会执行失败。

xDL v1.1.2

09 Dec 13:40
v1.1.2
e327d28
Compare
Choose a tag to compare

Bugs fixed

  • Fix an occasional SIGBUS crash when parsing .symtab in .gnu_debugdata.

Improve

  • Improve the performance of xdl_open() and xdl_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

04 Aug 15:03
v1.1.1
5ce4d41
Compare
Choose a tag to compare

Incompatible Changes

  • Replace Dl_info with custom xdl_info.
  • Remove XDL_WITH_LINKER from xdl_iterate_phdr() flags options. Now xdl_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 的版本。