Vector35 / Vector35/binaryninja-api

Need interface to allow control load/store splitting behavior

Open
#4,168 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Core Core: MLIL Effort: Medium Impact: Medium
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Neither validFieldsOnly nor allOffsets setting for load /store splitting does not effect the example code below. I believe that there will be some cases like below where manually split /unsplit option would be useful.

void init_proxy_ctx()

00410d50  init_wsa_ctx(&proxy_ctx.local_wsa)
00410d5a  init_wsa_ctx(&proxy_ctx.remote_wsa)
00410d67  proxy_ctx.local_thread.o = zx.o(0)
00410d6e  InitializeCriticalSection(&proxy_ctx.lock)

proxy_ctx structure:

struct proxy_ctx
{
    int32_t waiting;
    struct wsa_ctx local_wsa;
    int32_t field_1e0;
    struct wsa_ctx remote_wsa;
    int32_t field_3c0;
    HANDLE local_thread;
    int32_t field_3c8;
    HANDLE remote_thread;
    int32_t field_3d0;
    struct cc_handler* cc_handler;
    struct RTL_CRITICAL_SECTION lock;
};

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

Start by tracing how the validFieldsOnly and allOffsets settings affect load/store splitting, using the proxy_ctx example as the reproducer. Determine where an interface for manually selecting split or unsplit behavior would belong, and confirm done when the example can express the requested control without relying on those settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp
Domain
api, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.