Skip to content

Type library for LDR_DATA_TABLE shuld be updated to differentiate the 3 linked lists  #6492

@utkonos

Description

@utkonos

Version and Platform (required):

  • Binary Ninja Version: 4.2.6455
  • OS: macOS
  • OS Version: 15.3.2
  • CPU Architecture: x64

Bug Description:
The LDR_DATA_TABLE_ENTRY offsets shown in binja are misaligned and incorrect compared to in the binary in a debugger.

Steps To Reproduce:

  1. Open the binary (provided below)
  2. Navigate to 0x401757
  3. Change to Graph View (this was shellcode before converting to a PE, so graph view is just easier to understand).
  4. Compare _LDR_DATA_TABLE_ENTRY::InLoadOrderLinks.Flink and _LDR_DATA_TABLE_ENTRY::SizeOfImage to what this loop shows in a debugger. For some reason, this switches from InInitializationOrderModuleList (correct) to InLoadOrderLinks

Expected Behavior:
This loop iterates through the InInitializationOrderModuleList and therefore at 0x40174a, the struct member should be the pointer to the Buffer element of the BaseDllName UNICODE_STRING

Screenshots/Video Recording:
View in binja:
Image
Here is the _PEB_LDR_DATA::InInitializationOrderModuleList.Flink in the debugger selected with the cursor.
Image
Here is the BaseDllName with the Length MaximumLength and Buffer selected with the cursor:
Image

Binary:
Reference phrase: "brave wizard glows boldly"

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions