跳转至

未完待续

TODO

Now

  • Support load symbol-file like gdb.
  • Some symbols will be optimized out.
  • support Qemu
  • support multi-thread and make each thread safety, use ptrace(2).
  • Add ulpatches that already patched symbols to task symbols.
  • Support uninitialized variable yet, see .bss SHT_NOBITS
  • ULPatch VMA better isn't file map

Further

  • Support static executable ELF (no need to any dynamic libraries).
  • Support sign and check.
  • How to patch to strip ELF process.
  • loongarch64 support.
  • GUI support, like GTK/Qt, etc.
  • Like kernel module has module_init and module_exit, ULPatch should has too, if create thread and thread callback is in ULP vma, during unpatch, segvfault will be triggered.
  • Support capstone to show ULPatch assembler.

No support (ideal is plump, reality is bony)

  • Anon vma for each patch and use prctl(2)(CONFIG_ANON_VMA_NAME) set vma's name, and I try to submit kernel patch, but David Hildenbrand don't like it, see LKML Link
  • Maybe we could use dlopen/dlsym to map ulpatch file.