Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #28 +/- ##
===========================================
- Coverage 92.33% 81.90% -10.44%
===========================================
Files 5 24 +19
Lines 300 1663 +1363
===========================================
+ Hits 277 1362 +1085
- Misses 23 301 +278
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
0b7f414 to
0fe80b8
Compare
Miauwkeru
left a comment
There was a problem hiding this comment.
I am a bit torn on passing the PE object to every directory and section etc, while in most cases passing just the file handle will do (with some additional flags). This makes it a bit harder in the future to test specific parts without creating a PE object first as it is strongly coupled to the PE object.
But then again, how often would we encounter a file or a set of bytes where we know it is a BaseReloactionDirectory for example, and just want to parse that part without the PE file.
So we could leave it as it is and only change it when it is actually needed. aka, if we want to parse directories or sections without a PE file.
Cross that bridge when we get there. |
Co-authored-by: Miauwkeru <Miauwkeru@users.noreply.github.com>
|
|
||
|
|
||
|
|
||
| /* TODO */ |
There was a problem hiding this comment.
Because there are a ton of structures and enums related to symbols and dynamic relocations that aren't in this file yet but don't need to be in there for now. Can be a future improvement.
Miauwkeru
left a comment
There was a problem hiding this comment.
From what I have read OS2 is a separate executable format so it doesn't fit inside the PE class. So while good enough for now, if we ever want to fully implement the OS2 format we should move it to a different class. If that case ever happens
I know, that's why I also didn't build it out any further. |
While reviewing #10 it quite quickly became apparent that it was more beneficial to create a new parsing base to work from. This PR implements that base. This means that almost all code here is made with the intent to parse, not to write. The idea is that instead of trying to wreck our brain on how to create a nice interface to both read and write, we first focus on making a nice parsing/reading interface, and to take the lessons learned from #10 regarding writing and at some later point apply them to this new base.
Notably this base focuses on:
No hard feelings to anyone involved with #10. Love you @sud0woodo.
Todo for this PR:
Depends on #29 for some minor project cleanup.