Skip to content
This repository was archived by the owner on Aug 4, 2025. It is now read-only.

Support resolving PEI files#10

Merged
river-li merged 1 commit into
mainfrom
pei_services
Jul 18, 2024
Merged

Support resolving PEI files#10
river-li merged 1 commit into
mainfrom
pei_services

Conversation

@river-li
Copy link
Copy Markdown
Contributor

  1. support parsing PEI_services
  2. support defining PEI Notify Descriptors
  3. support parsing PPIs

The related types are in this branch: https://github.com/Vector35/binaryninja/compare/dev...efi_pei_types
(included PPIs inside MdePkg/Include/Ppi folder)

Result of resolved services and PPIs:

image

Result of resolved notify descriptors:

image

Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py
Comment thread ppi.py
Comment thread __init__.py Outdated
@river-li
Copy link
Copy Markdown
Contributor Author

Still working on resolving the EFI_PEI_SERVICES pointers read from IDTR, will commit changes together.

@river-li river-li marked this pull request as draft June 21, 2024 22:07
@river-li river-li marked this pull request as ready for review June 26, 2024 00:21
@river-li
Copy link
Copy Markdown
Contributor Author

river-li commented Jun 26, 2024

Added support for parsing platform-related PEI SERVICES pointers. However, due to a type-propagation issue in core, the return types are not correctly propagated.

Update: Added a temp fix

Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread ppi.py Outdated
Comment thread utils.py Outdated
@river-li river-li force-pushed the pei_services branch 3 times, most recently from f52ad1b to 0d3a76b Compare July 18, 2024 16:26
Changes:
1. support parsing PEI services
2. support defining PEI descriptors
1. support defining platform specific PEI services pointers
2. add module strings and function strings
3. add a utils.py
4. rename functions (e.g. propagate_system_table_pointer ->
propagate_function_param_types)
5. fix the log error when opening TE files
6. add a typorary solution for vector35/binaryninja#749
7. add exception handling code for accessing references, in case of
involving infinite loops
8. add support for previously created BNDB files, parse type from both
bv.types and platform types
@river-li river-li merged commit 953047f into main Jul 18, 2024
@river-li river-li deleted the pei_services branch August 6, 2024 22:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Resolve PEIM-to-PEIM Interfaces (PPI) from calls to EFI_PEI_SERVICES APIs Propagate EFI_PEI_SERVICES for Terse Executable PEIMs

2 participants