Corkami PE Testing - Known Failure Fixes
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 28/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- reverse-engineering
Direzione di ricerca
Esegui git submodule update --init, quindi esamina tests/corkami_test.cpp e usa ./build/dump-pe sul dataset PE di Corkami, iniziando da virtsectblXP.exe e dal relativo assembly. Traccia i fallimenti di parsing segnalati e confronta i file PE con le rispettive sorgenti asm. Il lavoro è completato quando sono state eliminate le eccezioni di test note e sono state aggiunte asserzioni a livello di campo per i PE di Corkami.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Within #145, there are very simple tests to detect whether pe-parse would correctly identify the executables as PE, without erroring. Unfortunately (but not unexpectedly), there are a few executables that are not parsed correctly.
Ideally, we should at least test and enforce that we support parsing of any PE in the Corkami dataset.
- There are no test exceptions (read: known failures) when processing the Corkami dataset of PEs
Reference to known failing tests: https://github.com/trailofbits/pe-parse/blob/4286f109b0763972d1db7177ec6fe5f6791350f8/tests/corkami_test.cpp#L34-L51
Secondly, a much bigger task would be to confirm that pe-parse is correctly parsing all and only the information that the Corkami PEs claim to exhibit.
- There are specific PE field tests/asserts for the Corkami PEs to ensure correctness
How to Start Investigating
First, run git submodule update --init to pull the Corkami dataset (We will be focusing on the PEs here https://github.com/corkami/pocs/tree/master/PE/bin).
Then, running the standalone dump-pe tool that is included in this repo should be an easy way to iterate on code changes, since the testing logic is basically the same.
$ ./build/dump-pe/dump-pe tests/assets/corkami-poc-dataset/PE/bin/virtsectblXP.exe
Error: 3 (Invalid section)
Location: ParsePEFromBuffer:2394
Use that information as a starting point for where to begin debugging. Moreover, most, if not all, of the PEs have a corresponding asm file that provides the source code for building the PE and how the file is constructed. Use this information to gain a better understanding of why pe-parse is having difficulty parsing it and what kind of fix would be needed. Here it is for our example https://github.com/corkami/pocs/blob/master/PE/virtsectblXP.asm
- 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à 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
NVIDIA-RTX/NRI#277 ·
I maintainer di solito rispondono entro 1 giorno
-
os:Linux
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni