Skip to content

Duplicate HighIL statement when lifting fsbase + 0x28 #8439

Description

@jvoisin

Version and Platform (required):

  • Binary Ninja Version: 5.4.10466-dev Personal (42e25af5)
  • Edition: Non-Commercial
  • OS: Fedora Linux
  • OS Version: 44
  • CPU Architecture: M2

Bug Description:

The following assembly:

00402f38  488b55f8            mov     rdx, qword [rbp-0x8 {var_10}]
00402f3c  64482b142528000000  sub     rdx, qword [fs:0x28]
00402f45  7405                je      0x402f4c

is lifted to HighIL:

00402f3c        *(fsbase + 0x28)
00402f3c        
00402f45        if (rax != *(fsbase + 0x28))

instead of being correctly lifted to HighIL

00402f45        if (rax != *(fsbase + 0x28))

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Open the binary
  2. Go to 0x402f3c
  3. Notice the incorrect lifting

Expected Behavior:

I expect the following assembly:

00402f38  488b55f8            mov     rdx, qword [rbp-0x8 {var_10}]
00402f3c  64482b142528000000  sub     rdx, qword [fs:0x28]
00402f45  7405                je      0x402f4c

to be correctly lifted to HighIL:

00402f45        if (rax != *(fsbase + 0x28))

Screenshots/Video Recording:

Image

Binary:

Reference phrase: celestial system cycles delicately

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions