Comments (5)
Thank you for the feedback! The LIST_ENTRY
code is definitely only half baked. I think I might've started on it when chipping away at kernel mode support, and just committed what I had done. Unfortunately I don't think I will get to fixing this one up in the very near future, but as always, feedback such as this helps me know what to prioritize when I get time.
Out of curiosity, are you dealing with a LIST_ENTRY
in user mode, or are you coaxing DbgShell to work for kernel mode? (I personally haven't often needed to deal with LIST_ENTRY
lists in user mode.)
from dbgshell.
Kernel structures, user mode - specifically, _HEAP
with its list of _HEAP_SEGMENT
(and probably others in short order)
from dbgshell.
Can EnumerateLIST_ENTRY be implemented as a wrapper around EnumerateLIST_ENTRY_raw? I don't know how StreamFromDbgEngThread
runs under the hood so I'm wondering if there are any thread safety/deadlock concerns.
from dbgshell.
I should probably just delete EnumerateLIST_ENTRY
... I think maybe I had a script implementation of it, and was trying to write it in C# instead... oh, yep; found it: Expand-LIST_ENTRY
in OtherUtils.ps1. I don't remember why I wanted to write it in C#... oh, probably so that it would be available to other C# code. I'll need to find some time to page in what I was trying to do there, but I suspect that I will need to largely scrap it and implement in terms of the other "raw" one.
StreamFromDbgEngThread
is conceptually very simple. There is a dbgeng thread, and a pipeline execution thread, and cmdlets run on the latter, but actually interacting with dbgeng must happen on the former. StreamFromDbgEngThread
just lets you pass in a Func
to run on the dbgeng thread, and as the func produces results, StreamFromDbgEngThread
handles shuttling them back over to the pipeline execution thread, where they pop out of the returned IEnumerable<T>
. It handles all the thread safety stuff, to make it easy to use from the pipeline execution thread.
from dbgshell.
My implementation: Zhentar@11fa946
from dbgshell.
Related Issues (20)
- Integrate with C#? HOT 1
- Integrate capstone (or something) as the disassembler HOT 4
- Use ClrMd to synthesize a DbgModuleInfo for managed modules
- Add Output Decolorizer/No color option HOT 4
- Read-DbgDisassembly doesn't resolve Address from Piped Get-DbgSymbol HOT 3
- Unhandled Exception: System.Exception: Could not load dbgeng.dll on Win7. HOT 2
- Skinny Null Terminated String Functions Don't Allow Partial Reads HOT 3
- Enhancement: dps but with recursive safe pointer following HOT 2
- PEB not included in process level namespace HOT 1
- Make enum for psuedo registers HOT 4
- AltPropertyColumn Displays null as $null rather than blank HOT 2
- Memory Search HOT 6
- AddressTransformation integer handling does the opposite of what it is supposed to HOT 2
- Trying to access an element of a `Span<byte>` throws a VerificationException HOT 2
- Can't pipeline directory contents to Mount-DbgDumpFile HOT 9
- DbgHelp is slow and other symbol "fun" HOT 2
- Formatting: Format-Table et al need to handle -Property HOT 1
- Need some rails to prevent dbgeng-unsupported scenarios like mixed dump + live proc
- captured stdout output is garbled HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dbgshell.