Vector35 / Vector35/debugger

Step to Return sometimes does not stop at caller's next instruction, execution continues running instead

Open
#1,195 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
331
Forks
33
PR merge metrics
No merged PRs in 30d

Description

Version and Platform (required):

  • Binary Ninja Version: 6.1.10562
  • OS: Windows 11
  • OS Version: 10.0.26200 N/A Build 26200
  • CPU Architecture: x64
  • Local or Remote Debugging: Local

Bug Description:
When debugging locally and clicking "Step to Return" while inside a function that was entered via "Step Into", execution continues running to completion instead of stopping at the instruction after the call in the caller.

Steps To Reproduce:

  1. Open md5.exe in Binary Ninja
  2. Launch with command line arguments: .\helloworld.exe
  3. At 006c2054 sub_6c19f0(*eax_10, esi_1), click "Step Into" to enter sub_6c19f0
  4. Click "Step to Return"
  5. Observe that the program runs to completion instead of stopping at the instruction following the call at 006c2054

Expected Behavior:
Clicking "Step to Return" should stop execution at the instruction immediately after the call at 006c2054 in the caller, not run the program to completion.

Screenshots/Video Recording:

https://github.com/user-attachments/assets/60a0fe75-fb54-4ade-93ae-93988af5652d

Binary:
md5.exe

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue in Binary Ninja using test/binaries/Windows-x86_64/md5.exe: enter sub_6c19f0 with Step Into at 006c2054, then use Step to Return. Trace the debugger's Step to Return handling and verify that execution stops at the instruction immediately after the caller's call rather than running to completion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools, reverse-engineering
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.