Vector35 / Vector35/binaryninja-api
Possible bug in MediumLevelILFunction::GetLLILSSAToMLILExprMap
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 1.3k
- フォーク
- 298
- 平均マージ
- 5日 5時間
- マージ済み PR(30日)
- 19
説明
Version and Platform (required):
- Binary Ninja Version:
dev/5.2.8353
Bug Description:
In mediumlevelil.cpp, in MediumLevelILFunction::GetLLILSSAToMLILExprMap, I see this code:
for (auto& [oldExprIndex, newExprIndices]: m_translationData->mlilToMlilExprMap)
[..]
size_t oldLLILSSADirect = m_translationData->copyingFunction->GetLowLevelILExprIndex(oldExprIndex);
[..]
info.higherToLowerDirect = newDirect && oldExprIndex == oldLLILSSADirect;
I haven't tried to test/reproduce this, but it seems wrong that oldExprIndex (an MLIL expression index) is being compared to both oldLLILSSADirect (an LLIL expression index). I think this is probably supposed to be comparing oldLLILSSADirect to oldLLILSSAIndex.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Start in mediumlevelil.cpp at MediumLevelILFunction::GetLLILSSAToMLILExprMap and inspect the translation data fields used in the loop, especially oldExprIndex, oldLLILSSADirect, and oldLLILSSAIndex. Confirm whether the comparison mixes MLIL and LLIL expression indices; done means the index comparison is consistent and the relevant behavior is covered by existing validation.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- reverse-engineering
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100