public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Parsing Structures postmortem from memory dump
@ 2008-05-06 19:04 Adrian Sud
  2008-05-06 22:37 ` Dan Noé
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian Sud @ 2008-05-06 19:04 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Hi,

I am working on a project attempting to extend the volatility toolkit 
(www.volatilesystems.com) to read Linux memory; for now I am attempting 
to support Kernel 2.6.22-14 using i686 arch.

What I mean to do is have it first identify that the image is from a 
linux environment, and then parse out the processes that were running 
when the image was taken.

I've looked at /include/linux/sched.h and tried to understand the 
task_struct structure, but it appears to be variable-length, determined 
at compile time, and I can't tell exactly how these are stored 
throughout memory--In a list? a tree?

If anyone can point me to more information toward finding out how to 
trace this, I would appreciate it.

Thank you,

Adrian Sud

UMass Amherst
Dept. of Computer Science

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Parsing Structures postmortem from memory dump
  2008-05-06 19:04 Parsing Structures postmortem from memory dump Adrian Sud
@ 2008-05-06 22:37 ` Dan Noé
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Noé @ 2008-05-06 22:37 UTC (permalink / raw)
  To: Adrian Sud; +Cc: Linux Kernel Mailing List

Adrian Sud wrote:
> I've looked at /include/linux/sched.h and tried to understand the 
> task_struct structure, but it appears to be variable-length, determined 
> at compile time, and I can't tell exactly how these are stored 
> throughout memory--In a list? a tree?

The task_struct structures are stored on one or more lists.  Note the 
list_head types within the structure - each of this is a list that the 
structure is (potentially) a member of.

This is a good explanation of how the kernel's lists work:

http://kernelnewbies.org/FAQ/LinkedLists

I don't know if a generalized printer/parser exists for the kernel 
linked list, but this might be a good way to start exploring your 
project.  There are macros to traverse the lists easily, so it shouldn't 
be too difficult.

Hope that helps.

Cheers,
Dan

-- 
                     /--------------- - -  -  -   -   -
                     |  Dan Noé
                     |  http://isomerica.net/~dpn/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-05-06 22:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-06 19:04 Parsing Structures postmortem from memory dump Adrian Sud
2008-05-06 22:37 ` Dan Noé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox