* Apply relocations, jump tables are detected correctly now
* Use virtual files for patching and relocation targets
* Create continous sections where possible instead of a section per page
* Support for DOS extender bound LE executables
* Support page compression of type 1 (iterated) and 5 (compressed)
* Add support for 16 bit relocations
* Fix numerous issues, leaks, UB, etc
OpenBSD enables arm64 BTI or Intel IBT by default, except when the
binary was linked with -Wl,-z,nobtcfi in order to opt-out. In this case,
a PT_OPENBSD_NOBTCFI segment will exist, which we can indicate in the
bin info.
See also https://undeadly.org/cgi?action=article;sid=20230714121907
Original Commit: 4551bf03461595a9645051347ad026974227ac6d
Co-authored-by: pancake <pancake@nopcode.org>
* Export float basic op to op_builder header
* Basic vmov with note and question
* Add vmov for immediate
* Add vmov for NEON and VFP
* Add vmsr, vmrs. shared instruction of vfp and neon done
* Add vector logical operations for arm32 il
* Add vmvn for arm32 il
* Solve op builder for rzil float
* Add vector compare instructions (vceq/vcge/vcle/vcgt/vclt, and abs version)
* Rename vcmp to vec_cmp to avoid conflict with VCMP instruction
* Add vtst of NEON instruction set
* Fix FEQ
* Discard unecessary changes
* Add vldn for multiple n-elements
* Add vldn for single-lane and all-lane
* Add vstn
* Add vcvt for float-integer and float-float
* Check codeql warning
* Add vdup
* Fix according to reviewer
* Add vext
* Add vzip
* Fix reg_bits shadowing
* Add vuzp
* Init some eff as EMPTY for loop-seq
* Add vswap
* Add vadd and vsub
* Add vmul for float point in vfp
* Fix test_validate_forder
* Fix reg binding by add missing reg(fpscr)
* Fix memory broken caused by misuse of REG_VAL and others
* Add vldr and vstr
* Fix some bug in rzil float
* Fix a format typo bug in rzfloat
* Add rzil emulateme test for vfp
* Fix fpscr in db arm32 related tests
* Add extra argument info in vfp test
* Remove duplicated macro of float
/wi was falling through the switch case and it was not accepting the
input correctly. Fix this by breaking at the end of the '/w' case so
that the search can begin.
rz_buf_read_at() with a negative addr on a ref (slice) buffer broke all
subsequent calls to rz_buf_read_at(). This is fixed by making sure to
always reset to the initial seek.
This bug was detected through xnu kernelcaches, where we may also skip
any obviously invalid read.
IDREF in plists is an undocumented extension of plist used e.g. in
kernelcaches. This makes it possible to parse certain kext plists.
Backported, original patch b04bc4164cb2875723f3aae870647287e9a331cc
Co-authored-by: Siguza <siguza@siguza.net>