You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, patching and writing to memory work fine. However, after the code is patched, the analysis is not updated and the graph still displays the old code. A reanalysis fixes the problem.
There are multiple ways to fix this. One way is to register a binary data notification and update the analysis from within in. However, when we patch the code normally (i.e., when there is no debugger attached), the analysis is updated, and it does not rely on binary data notification. I am yet to understand why it works.
The text was updated successfully, but these errors were encountered:
The problem turns out to be that BinaryDataNotifications are not called for any custom binary view that overrides PerformWrite(). The notification callback marks the binary view for update. In commit 0ad5529, I explicitly called BinaryView::NotifyDataWritten() and now it works.
However, there might still be a problem since it is hard for people outside of the dev team to figure out this. Also, BinaryData does other things besides notifying the callbacks, most notably, updating the binaryview's modification status. Although missing that is fine for debugger, since a modification status itself for the DebugProcessView is not very meaningful/helpful.
The Python debugger seems not bothered by this. The binary view is properly updated after making patches. It uses two BinaryViews, one to hold the memory content, the other one to provide higher-level functionalities. However, in the C++ version, we are only having one view. We should experiment whether using two views resolve the issue, in a better way.
Currently, patching and writing to memory work fine. However, after the code is patched, the analysis is not updated and the graph still displays the old code. A reanalysis fixes the problem.
There are multiple ways to fix this. One way is to register a binary data notification and update the analysis from within in. However, when we patch the code normally (i.e., when there is no debugger attached), the analysis is updated, and it does not rely on binary data notification. I am yet to understand why it works.
The text was updated successfully, but these errors were encountered: