findruction
findruction is instruction finder written in rust.
You can find some instruction from large binary with this tool in millisecond.
findruction has assembler inside it, so you need to just hand over the target assembly.
https://github.com/Yayoi-cs/findruction
example
find swapgs
from vmlinux
with disassembly
In recent kernel, rop gadget tool such as ropr
doesn't detect swapgs
gadget because simply swapgs; ret;
were disappeared. 😢
Here's how you search swapgs
from vmlinux
and check disassembly around them.

find iretq
from vmlinux
without disassembly
Next, let's check out the result when we wanna search iretq
. We don't need disassembly so simply add -n
option and here's the result of it.

It took only 51.19ms. Of course, all result were piked out from only executable section in the vmlinux
.
usage
$ findruction --help
Usage: findruction [OPTIONS] --file <FILE> --asm <ASM>
Options:
-f, --file <FILE>
-a, --asm <ASM>
-n, --no-disass
-h, --help Print help
-V, --version Print version
install
git clone https://github.com/Yayoi-cs/findruction
cd findruction
cargo build --release
echo "export PATH=$PATH:$(pwd)/target/release/" >> ~/.bashrc
Last modified: 09 May 2025