RIIR
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 18/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Ambito
- reverse-engineering, tooling
Direzione di ricerca
Esamina innanzitutto la C API esistente e confronta i parser Rust PE proposti, goblin e object. Valuta poi l’impatto sulla major version e sui progetti downstream winchecksec e uthenticode; il lavoro sarebbe completato quando saranno definiti l’ambito della riscrittura, la scelta del parser, il piano di compatibilità e il lavoro di migrazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I think it's time to consider rewriting this project in Rust: it receives very little maintenance or novel feature development, has had a few memory corruption vulnerabilities discovered through fuzzing over the years, and has a relatively simple C API that could be exposed from a Rust core.
In other words: from an external users' perspective, all that would change is the C API (we'd have to make breaking changes to accommodate internal changes). External users would not need to know Rust.
If we decide to do this, we should do it as a major breaking change, with a new major (3.x) release series.
As part of a potential rewrite, we should reuse an existing high-quality Rust PE parser, rather than writing our own. Two options:
goblin: https://crates.io/crates/goblinobject: https://crates.io/crates/object
A rewrite here would also have downstream repercussions for a few of our projects, including winchecksec and uthenticode. It's my opinion that those repercussions would be largely positive, although it's still churn that would need to be performed. It would also be a strong motivating point for rewriting some of those projects in Rust as well.
CCing for opinions: @ekilmer @yardenshafir @ret2libc @alessandrogario
- Lingua principale
- C++
- Stelle
- 913
- Fork
- 171
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di trailofbits/pe-parse
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
trailofbits/pe-parse#216 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
trailofbits/pe-parse#207 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
trailofbits/pe-parse#201 ·
-
Problem in parsing 2 filesApertabug help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 32/100
trailofbits/pe-parse#190 · 4 commenti ·
-
enhancement help wanted
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
trailofbits/pe-parse#188 · 1 commento ·
Tutte le issue di trailofbits/pe-parse
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Icinga/icinga2#11058 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
component: split-view platform: windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
zen-browser/desktop#15616 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
area/ysql kind/bug priority/medium status/awaiting-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
yugabyte/yugabyte-db#34415 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
WayfireWM/wayfire#3148 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno