#if 0 /* this is for testing PDMNetGsoCarveSegmentQD. ** Make the NAT engine grok large frames? Could be more efficient. Slirp_input(pThis->pNATState, m, pSgBuf->cbUsed) Struct mbuf *m = (struct mbuf *)pSgBuf->pvAllocator If (pThis->enmLinkState = PDMNETWORKLINKSTATE_UP) */Īssert(pThis->enmLinkState = PDMNETWORKLINKSTATE_UP) #if 0 /* Assertion happens often to me after resuming a VM - no time to investigate this now. I started with a default component: the NAT emulation code in /src/VBox/Devices/Network/DrvNAT.cpp.Īt the time, I just wanted to get a feel for the code, so there was no specific methodical approach to this other than scrolling through the file and reading various parts.ĭuring my scrolling adventure, I landed on something that caught my eye: static DECLCALLBACK(void) drvNATSendWorker(PDRVNAT pThis, PPDMSCATTERGATHER pSgBuf) In my eyes, network hardware emulation seemed like the right (and usual) route to go. And as the mantra goes: where there is complexity, there are bugs.įor Pwn2Own, it was a safe bet to target an emulated component. The complexity involved in both emulating hardware devices and passing data safely to real hardware is astounding. ![]() Virtualization is an incredibly interesting target. Back in March, I was preparing to have a pop at the Vancouver contest and had decided to take a break from writing browser fuzzers to try something different: VirtualBox. It’s an exciting competition which involves rummaging around to find critical vulnerabilities in the most commonly used (and often the most difficult) software in the world. The Pwn2Own contest is like Christmas for me.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |