JonathanSalwan / Triton

Triton is a dynamic binary analysis library. Build your own program analysis tools, automate your reverse engineering, perform software verification or just emulate code.
https://triton-library.github.io
Apache License 2.0
3.39k stars 524 forks source link

Incorrectly handled x86 instruction, rcl memory, immediate #1312

Open jaihysc opened 3 months ago

jaihysc commented 3 months ago

These instructions cause a vector subscript out of range for all registers, I listed only eax and rax

The code used for testing

auto ctx = triton::Context();
ctx.setArchitecture(triton::arch::architecture_e::ARCH_X86_64);

uint8_t opcode[] = {0xd1, 0x14, 0x24}; // rcl dword ptr [rsp]
auto instruction = triton::arch::Instruction(opcode, 3);
ctx.processing(instruction);
jaihysc commented 3 months ago

Tried on the vcpkg and master branch - same issue.

JonathanSalwan commented 3 months ago

Thx for the report. I will dig into this bug as soon as I can :)