Saturday, March 29, 2014

Writing DFIR Books: Questions

Based on my Writing DFIR Books post, Alissa Torres tweeted that she had a "ton of questions", so I encouraged her to start asking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.  I think that getting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 questions out and asked now would be a great way to get started, for a couple of reasons.  First, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Summit is a ways away still, and it's unlikely that she's going to remember cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 questions.  Second, we don't know how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 panel itself is going to go, so even if she did remember her "ton of questions", she may not be able to ask all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.  Third, it's likely that some questions, and responses, are going to generate furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r questions, which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves won't be asked due to time constraints.  Finally, it's unlikely that everyone is going to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 questions and responses, and it's likely that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r panelists are going to have answers of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own.  So...I don't really see how someone asking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir questions now is really going to take anything away from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 panel that Suzanne Widup is putting togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r...if anything, I believe strongly that getting questions and answers out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re now is going to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 panel that much better.

So, I scooped up some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 questions from her tweets, and decided to answer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m via a medium more conducive to doing so, and here are my answers...

Forensics research is constantly in a state of new discovery. When does one stop researching and start writing?

The simple answer is that you're going to have to stop researching and start writing at some point.  It's up to you to decide, based on your topic, what you want to address, your outline, your schedule, etc.  The best advice I can give about this is to write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way you'd write a report...you'll want to be able to explain to a client (or anyone else) how you reached your conclusions 6 months or a year later, right?  The same holds true for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book...explain what you were doing in your research, in a clear and concise manner.  That way, if someone comes to you with a question about a new discovery after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book is published, you can discuss this new information intelligently.

Publishing Timelines
One thing to keep in mind about writing books is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book doesn't immediately go to print as soon as "put down your pen". Racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, once you've completed writing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 manuscript, it goes into a review process (separate from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical review process) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proofs are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n sent to you for review. Once you approve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proofs and send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m back, it can be 2 or 3 more months before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book is actually available on shelves.  So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simple fact is that a published book is always going to be just a bit behind new developments.  However, that doesn't make a book any less valuable...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are always new people coming into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 field, and none of knows everything, so a well-written book is going to be very useful, regardless.

If new research disproves something that you wrote, does it work against you later as an expert witness?

With respect to this question, writing a book is no different from conducting analysis and writing a report for a client.  Are you going to write something into a report that someone working for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client is going to disprove in a week or two when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y read it?  If you found during your analysis that malware on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system had created a value beneath cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's Run key in order to remain persistent, are you going to say in your report that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware started up each time cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system was booted?  No, you're going to say that it was set to start whenever cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user logged in, and because you did a thorough analysis, which included creating a timeline of system activity, you're going to have multiple data points to support that statement.

That is not to say that something won't change...things change all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time, particularly when it comes to DFIR work, and particularly with respect to Windows systems.  However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's very likely going to be something that changed...some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r application was installed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, some Registry value was set a certain way, a patch had been installed that modified a DLL, etc.

If you've decided to do "research" and add it to your book, do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same thing you would with a report that you're writing for a client.  Describe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conditions, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 versions of tools and OS utilized, etc.  Be clear and concise, and if necessary, caveat your statements as necessary.

When I was writing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fourth edition of Windows Forensic Analysis, I wanted to include updated information regarding Windows 8 and VSCs in chapter 3, so I took what was in that chapter in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 third edition, and I ran through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process I'd described, using an image acquired from a Windows 8 system...and it didn't work.  So, I figured out why, and was sure to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 updated information in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chapter.

Something else to keep in mind is that most publishers want you to have a technical reviewer or editor, someone who will be reviewing each chapter as you submit it.  You can stick with whomever cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y give you, and take your chances, or you can find someone you know and trust to hold you accountable, and offer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir name to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publisher.  This is a great way to ensure that something doesn't "slip through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cracks".  Like a report, you can also have someone else review your work...submit it to peer review.  This way, you're less likely to provide research and documentation that is so weak that it's easily disproved.

As to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part about being an expert witness, well...as Alissa said before, "forensics research is constantly in a state of new discovery".  I've never been an expert witness, but I could not imagine an attorney putting an expert witness on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stand to testify based on research or findings that are five years old, or so weak that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could be so easily disproved.   I mean, I'd hardly think that such a witness would qualify as "expert".

You all have to address time management as well - how did you juggle paid work/full-time job with book writing?

Short answer: you do.

Okay...longer answer:  This is something you have to consider before you even sign a contract...when am I going to write?  How often, how much, etc?

I learned some useful techniques while writing fitness reports in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Marine Corps...one being that it's easier to correct and modify something than it is to fill empty space.  Write something, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n step away from it.  When I wrote fitreps, I'd jot some bullets down, flesh out a paragraph, and step away from it for a day or so.  Coming back to it later would give me a fresh perspective on what I was writing, allowing my thoughts to marinate a bit.  Of course, it also goes without saying that I didn't wait until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last minute to get started.

Something that I've recommended to folks before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y start looking at signing a contract to have a book published is to try writing a couple of chapters.  I will provide a template for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one that I use for my publisher...and have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m try writing a chapter or two.  I think that this is a very good approach to getting folks to see if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y really want to invest cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time required to write a book.  One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 things I've learned about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR community, and technical folks as a whole, is that people really do not like writing...case notes, reports, books, etc.  So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first hurdle is for a potential author to see what it's like to actually write, and it's usually much harder if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y haven't put a good deal of thought into what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y want to write, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y haven't started by putting a detailed outline togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.  Once something is ready for review, I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n offer to take a look at it and provide feedback...writing a book, just like a report, isn't about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first words you put down on paper.  Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential author gets to see what that part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process is like...and it's like having to do 50 push ups, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n being told to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m over because 19 of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m didn't count.  ;-)

So far, good questions.  Like I said, I think that getting some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se questions out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re and answered now really doesn't take away from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 panel, but instead, brings more attention to it.  And it appears that Suzanne agrees, so keep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 questions coming...

Addendum:  Shortly after I tweeted this blog post, Corey Harrell tweeted this question:

What's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one thing you know now that you wish you knew writing your first book?

That it's so hard to get input or thoughtful feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community.  Most often, if you do get anything, it's impossible to follow up and better understand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 person's perspective.

Seriously...and I'm not complaining.  It's just a fact that I've come to accept over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 years.

Most folks who do this sort of thing want some kind of feedback.  When I taught courses, I had feedback forms.  I know ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r courses, and even some conferences, include feedback forms.  It's this interaction that allows for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 improvement of things such as books, open source tools, and analysis processes.  I'm a firm believer that it's impossible to know everything, but by engaging with each ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, we can all become better analysts.  The great thing about writing a book, in this context, is that I've taken cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first step by putting something out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re to be scrutinized.

One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 things I've found over time is that my books have been and are being used in academic and training (government, military) courses.  This is great, and I really appreciate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 course developers and instructors find enough value in my books to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.  When I have had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chance to talk to some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se instructors, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y've mentioned that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have thoughts on what could be done...what could be added or modified in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book...to make it more useful for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir purposes.  When I've asked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to share cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir thoughts, or asked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to elaborate on statements such as "...cover anti-forensics...", most often, I don't hear anything.

Now and again, I do hear through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 grapevine that someone has/had comments about a book, or specific material in one of my books, but what I've yet to see much of, beyond cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reviews posted on Amazon, is thoughtful feedback on how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 books might be improved.  That is not to say that I haven't received it...just recently I did receive some thought feedback on one of my books from a course instructor, but it was a one-shot deal and it's been impossible to engage in a discussion so that I can better understand what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're asking.

Had I known that when writing my first book, I would've had different expectations.

Friday, March 28, 2014

Writing DFIR Books

Suzanne Widup (of Verizon) recently asked me to sit on an author's panel that she's putting togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, in order to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rounds of several conferences.  I won't be available for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 panel at CEIC, but David Cowen will be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re...be sure to stop by and see what he, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r panel members have to share about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir experiences.

I thought I'd put togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a blog post on this topic for a couple of reasons.  First, to organize my thoughts a bit, and provide some of those thoughts.  Also, I wanted to let folks know that I'll be a member of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author panel at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SANS DFIR Summit in Austin, TX.

How did I get started?
Several years ago, a friend asked me to be a tech reviewer for a book that he was co-authoring, and during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process, I provided some input into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book itself.  It wasn't a great deal of information really, just a paragraph or so, but I provided more than just a terse "looks good" or "needs work".  After cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book was completed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publisher asked my friend if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y knew of anyone who wanted to write a book, and he provided three names...of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three, I was apparently cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only one to respond.   From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, I went through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of writing my first book.  After that book was published, it turned out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publisher had no intention of continuing with follow-on editions, and our contract provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right of first refusal, which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y did, and I moved on to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r publisher.

Why write a book?
I can't speak for everyone, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reason I decided to write a book initially was because I couldn't find a book that covered cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 digital forensic analysis of Windows systems in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 manner that I would've liked.  Like many in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR community, I've had notes and stuff sitting all over, and in a lot of cases, those notes were on systems that I no longer have; over time, I've upgraded systems, or installed new OSs.  Writing a book to use as a reference means that racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than rummaging all over looking for something, I can reach up to my bookshelf, open to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chapter in question and find what I'm looking for.

What goes into writing a book?
A lot of work.  Writing books for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR community is hard, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's so much information out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re that is constantly changing.  Even if you pick a niche to focus on, it's still a lot of work, because historically, our community isn't really that good at writing.  People in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR community tend to not like to write case notes and reports, let alone a book.  

For most, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of writing a book starts with an idea, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n finding someone to publish cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book.  Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's interest from a publisher, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential author starts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of putting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary information togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 format needed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publisher, which is usually a proposal or questionnaire of some kind.  If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proposal is accepted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author likely receives a contract spelling out things like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timeline for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book development, page/word count, specifics regarding advances and royalties, etc.  Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contract is signed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 writing process begins.  As cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 authors send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chapters in, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are subjected to a review process and sent back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author for updates.  Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 manuscript...chapters, front- and back-matter, etc...are all submitted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proofs are put togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author to review, and once those are done, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book goes to printing.  The time between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author sending cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proofs back and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book being available for shipping can be 2 - 3 months.

I'm not saying that I agree with this process...in fact, I think that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a lot that can be done to not only make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire process easier, but also result in better quality DFIR books being available.  However, my thoughts on this are really a matter for anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r blog post.

How do you decide what to put in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book?
When you feel like you would like to write a DFIR book, start with an outline.  Seriously.  This helps organize your thoughts, and it also helps you see if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's enough information to put into a book. Preparation is key, and this is true when taking on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 task of writing a book.  I've found over time that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more effort I put into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 outline and organizing my thoughts ahead of time, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easier it is to write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book.  Because, honestly, we all know how much folks in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR profession like to write...

What do you get from writing a book?
It depends on what you want from writing a book, and what you put into it.  For example, I started writing books because I wanted a reference, some sort of consolidated location for all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bits and pieces, tips and tricks that I have laying around.

First, let me clear something up...some people seem to think that when you write a book, you make a lot of money.  Yes, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are royalties...most contracts include cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m...but it's also really easy to sit back and assume what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 percentages are and what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 checks look like, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact is that most people that think like that are wrong.  I've had people ask me why I didn't include information about Windows Mobile Devices in my books...eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r for full analysis or just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registry...and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y've suggested that I make enough money in royalties to purchase cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se devices.  If you think that writing a book for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR community is going to make you enough money to do something like that, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you probably shouldn't start down that road.  Yes, a royalty check is nice, but it's also considered taxable income by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IRS, and it does get reported to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IRS, and it does get taxed.  This takes a small amount and makes it smaller.  I'm not complaining...I have engaged in this process with my eyes open...I'm simply stating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 facts as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are so that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs are aware.

One thing that you do get from writing a book, whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r you want it or not, is notoriety.  This is especially true if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book is useful to folks, and looked upon favorably...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y get to know your name (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same is also true if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book ends up being really bad).  And yes, this notoriety kind of puts you in a club because honestly, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 percentage of folks who have written successful DFIR books is kind of small.  But this can also have a down-side; a lot of people will look at you as unapproachable.   I was told once during an interview process that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential employer didn't feel that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could afford me...even though we hadn't talked salary, nor salary history...because I'd written books.  I've received emails from people in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry, some that I've met in person, in which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y've said that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y didn't feel that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could ask me a question because I'd written books.

What I get from writing books is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 satisfaction of completing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book and seeing it on my bookshelf.  I've actually had occasion to use my books as references, which is exactly what I intended cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to be.  I've gone back and looked up tools, commands, and data formats, and used that information to complete exams.  I've also been furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r blessed, in that some of my books have been translated into ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r languages, which adds color to my bookshelf.

Book Reviews
Book reviews are very important, not just for marketing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book, but because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're one way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author gets feedback and can decide to improve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book (if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y opt to develop anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r edition).

Book reviews need to be more than "...chapter 1 contains...chapter 2 covers..."; that's a table of contents (ToC), not a book review, and most books already have a ToC.  

A review of a DFIR book should be more about what you can't get from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ToC.  If you review a restaurant on Yelp, do you repeat cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 menu (which is usually already available online), or do you talk about your experience?  I tend to talk about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 atmosphere, how crowded cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 restaurant was, how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 service was, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 food was, etc.  I tend to do something similar when reviewing DFIR books.  The table of contents is going to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same regardless of who reads cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book; what's going to be different is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reader's experience with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book.

When writing a book review and making suggestions or providing input, it really helps (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author, and ultimately cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community) to think about what you're suggesting or asking for.  For example, now and again, one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 things I've been asked to add to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WFA book is a chapter on memory analysis.  Why would I do that if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Volatility folks (and in particular, Jamie Levy) have already put a great deal of effort into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool documentation AND cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have a book coming out?  The book is currently listed as being 720 pages long...what would I be able to provide in a chapter that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y don't already provide in a much more complete and thorough manner?

Now, I know that not everyone who purchases a book is going to actually open it.  I know this because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are folks who've asked me questions and knowing that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y own a copy of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book, I've referenced cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate page number in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book.  But if you do have a book, and you have some strong feelings about it (whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r positive or negative), I would strongly encourage you to write a review, even if you're only going to send it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author.  The reason is that if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author has any thought of updating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r edition, or writing anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r book all togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, your feedback can be helpful in that regard.  In fact, it could change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 direction of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book completely.  If you share cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 review publicly, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author has no intention of updating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 book, someone else may see your review and that might be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 catalyst for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to write a book.  

Saturday, March 22, 2014

Coding for Digital Forensic Analysis

Over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 years, I've seen a couple of questions on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 topic of coding for digital forensic analysis.  Many times, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se questions tend to devolve into a quasi-religious debate over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programming language used, and quite honestly, that detracts from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 discussion as a whole, because regardless of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 language used, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se questions are very often more about deconstructing or reconstructing data structures, processing logs, or simply obtaining context and meaning from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 available mass of data.

Languages
Programming languages abound, and from what I've seen, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one chosen comes down to personal preference, usually based on experience and knowledge of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 language.

I started programming BASIC on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Apple IIe back around 1982.  I typed a couple of BASIC programs into a Timex-Sinclair 1000, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n took cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 required course in BASIC programming my freshman year in college.  In high school, I took cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 brand new AP Computer Science course, which focused on using PASCAL...I ended up using TurboPASCAL at home to compile my programs and bring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in on a 5.25 in. floppy drive.  In graduate school, I took a C/C++ programming course, but it didn't involve much more than opening a file, writing to it, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n closing it.  I also did some M68000 assembly language programming. We used MatLab a lot in some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 different courses, particularly digital signal processing and neural networks, and I used it to perform some statistical analysis for my cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365sis.

In 1999, I started teaching myself to program Perl in order to have something to do.  I was working as a consultant at Predictive Systems, and we didn't have a security practice at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time.  I could hear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network operations team talking about how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y needed someone who could program Perl, so I started teaching myself what I could so that maybe I could offer some assistance.  From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, I branched out to interacting with Windows systems through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API provided by Dave Roth's Perl modules.  At one point, while working at TDS, I had a fully-functional product that we were using to replace cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of ISS's Internet Scanner, due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of false positives and cryptic responses we were receiving.

Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n, I've used Perl for a wide variety of tasks, from IIS web server log processing to RegRipper to decoding binary data structures.

However, I'm NOT suggesting that Perl is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 be-all and end-all of programming languages, particularly for DFIR work. Not at all.  All I've done is provided my experience.  Over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 years, ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r programming languages have been found to be extremely useful.  I've seen R used for statistical analysis, and it makes a lot of sense to use this language for that task.  I've also seen a lot of programming in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFIR space using C# and .NET, and even more using Python.  I've seen folks switch from anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r language to Python because "everyone is doing it".  I've seen so much of a use of Python, that I've started learning it myself (albeit slowly) in order to better understand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code, and even create my own.  The list of projects written in Python is pretty extensive, so it just makes sense to learn something about this language.

Defining cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Problem
The programming language you use to solve a problem is really irrelevant.  I've got bits of Perl code lying around...stuff for parsing certain data structures, printing binary data to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 console in hex editor format, etc...so if I need to pull something togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r quickly, I'm likely going to use a snippet of Perl code that I already have.  I'm sure that I'm no different from any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r analyst in that regard.

But when it comes to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 particular language or approach I'm using, it depends on what I'm trying to achieve...what are my goals?  If I'm trying to put something togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r that I'm going to eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r have a client use, or leave behind after I'm done for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client to use, I may opt for a batch file.  If I need something quickly, but with more flexibility than is offered by a batch file, I may opt for a Perl script.

I've found over time that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programming languages used can be difficult to work with...what I mean by that is that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools written and made available by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 authors display cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir results in a GUI, and are closed source.  So, you can't see what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool is doing, and you can't easily incorporate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools using techniques like timeline analysis.

Task-Specific Programming
Some folks have asked about learning programming specifically for DFIR work; I'm not sure if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are any.  What it comes down to is, what do you want to do?  If you want to read binary data and parse out data structures based on some definition, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n C/C++, C#, Python, Perl, and some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r languages work well.  For many, some snippets of code are already available online for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tasks.  If you're trying to process text-based log files, I've found Perl to be well-suited for this task, but if you're more familiar with and comfortable with Python, go for it.

When it really comes down to it, it isn't about which programming language is "cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best", it's about what your goal is, and how you want to go about achieving it.

Resources
Python tutorial
80+ Best Free Python Tutorials/books
List of free programming books, Python section

Saturday, March 01, 2014

Reconstructing Data Structures

I've posted before on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 topic of understanding data structures (here, here, and here), and some recent analysis brought this back to me yet again.  I had an opportunity to make use of my understanding of data structures, specifically within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows Registry, in order to attempt to gain some information from a file where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools normally used by analysts had failed.

The situation was that we had a Windows system that had been compromised...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bad guy had accessed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system using stolen credentials, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n used it to move laterally to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r systems.  Between this and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 response activities, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system had been infected with malware that overwrites and deletes files.  A responder had collected potentially usable files from this system, including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registry hives from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compromised user account, and had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n run some Registry parsing tools against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hives, none of which worked.  Yep.  All of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools failed...even cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 viewers.

I was sent a Registry hive file and a list of "strings of interest", and asked to provide some context to those strings, and if possible, when those strings had been created within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file.  My first step was to get an idea as to why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools used to view and parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive had reportedly failed...so, I opened cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file in a hex editor.

The first thing I noticed was that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was no 'regf' header.  In Windows Registry hive files, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first four bytes of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file should read "regf" (or "72 65 67 66" in hexadecimal)...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was no header.  Next, I looked for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first 'hbin' section, which is usually found at offset 0x1000 within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, and starts with 'hbin'.  In this case, I didn't find an 'hbin' section until I reached offset 0x10000 in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file...and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire space up to that point was all zeros.  I could tell right away that this wasn't good.  Even worse, when I was finally able to locate a key node structure within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file, it wasn't cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root node.  In fairly short order, it was easy to see why all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 parsing tools had failed, as none had been able to discern a recognizable file structure.

Each hbin section is 4096 (0x1000) bytes in size, which means that if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first hbin section was located at offset 0x10000 within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, I was missing over a dozen complete hbin sections.  Not a great way to get started, eh?  As I scrolled through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file quickly, I could see what looked like legitimate key and value nodes, but I could also see ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r sections  of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file...large sections...that were full of zeros, as well as some that were full of binary stuff that made no sense whatsoever.  In some cases, I could see sections that contained what appeared be Unicode strings, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re were no discernible structures surrounding those strings.

When I was reading over this article prior to posting it, I tried to imagine that last paragraph as scary as possible, just for effect. I pictured myself reading this out loud like a scout leader telling a bunch of scouts a ghost story around a campfire, or huddled under a blanket with a flashlight. I don't know if that helps get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point across about how badly damaged this file was, or if it was just funny.   I mean, for me, saying, "...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first hbin in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file was found at offset 0x10000..." IS a horror story!  Eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r way, in attempting to provide anything at all, I had my work cut out for me...this was going to be tough.

Some background about myself...I was "trained" as an electrical engineer; that is, my undergraduate studies were in EE.  One of my professors would constantly say that "electrical engineers are inherently lazy", meaning that racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than making a complicated solution, or worse, making wild, unsupported assumptions about what we were looking at, electrical engineers would always seek cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simplest solution. He even told us a story once about how a radar system used across cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Air Force had been "fixed" by soldering a resistor in parallel to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r resistor on a circuit board, racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than replace cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire circuit board.  Seeking a simple solution, I thought it best to seek out some reference material for help.  My reference for this work was/is Windows Registry Forensics; in this case, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lower half of pg 26 (in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 soft cover edition).

By now I pretty much knew that I had my work cut out for me.  I had a list of strings of interest, but just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings.  If I was going to make any sense of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se strings at all, I'd have to know where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were located within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  So, I ran MS/SysInternals strings.exe with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 -o switch, so that I could get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string was located within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  Once I had done that, I noted a couple of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings of interest, and opened cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file in a hex editor.  I picked one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of strings gives me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset in decimal, so I converted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset to hexidecimal...and located it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  I did this with several of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings, and in each case, my findings fell into one of three categories:

1.  The string was a value name.
Pp. 29 - 31 of WRF cover cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure of a Registry value.  The value node header is 20 bytes long, and starts with a 4-byte (DWORD) value that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 overall structure itself (i.e., cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 header and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name).  An example value is illustrated in figure 1.

Fig 1: Registry value structure
In figure 1, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value header starts 8 bytes into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 listing, with "D8 FF FF FF".  This value translates to -40, and tells us that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure is 40 bytes in size.  Next, we see "vk", which is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value node identifier.  The next two bytes, "10 00", tell us that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value is 16 bytes long.  The name starts immediately following cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value structure, so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no offset to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name listed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value header; in this case, we can see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name, "GroupByDirection", which is clearly 16 bytes in size.

The remaining elements of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value header can be found in table 1.2 in WRF.  The value types can be found in table 1.3.

2.  The string was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name of a deleted value.
In several instances, I located cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string in question and following cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure of a 'nearby' value, found that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string was indeed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value name.  However, when a node (key, value) is deleted in a Registry hive file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size value (first DWORD) is converted to a positive number.

Consider figure 1 again...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first DWORD is "D8 FF FF FF", which is equal to -40.  Had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value been deleted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DWORD would be "28 00 00 00".

3.  The string was value data.
In some cases, I found strings at offsets where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was no 'nearby' value (vk) or key (nk) node.   Instead, immediately before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string was what appeared to be a DWORD indicating a negative size value.  In figure 2, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value is '88 FF FF FF'.

Fig 2: Value Data

The string illustrated in figure 2 is an excerpt of a value data entry that I extracted from one of my own systems, but it illustrates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point very well.  In this case, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first DWORD translates to -120, indicating that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string value is 120 bytes in length.  Again, figure 2 illustrates an excerpt of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registry value data, not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire string.

Just to be clear, I wasn't looking for all available strings, and I also did not look at all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings of interest. By this point, I had looked at about a dozen of so of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings of interest, out of several dozen.  I mention this because some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings of interest could have been key names, but at this point, none of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings I'd looked at were, in fact, key names.  I should mention that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings appeared as Unicode strings in those sections of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file that I mentioned earlier in this post...while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string was clearly visible, and of interest in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 overall examination, I could not find any discernible structure (Registry key or value node, shell item, etc.) near or surrounding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string.

Now, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows Registry is described as a hierarchical database, but it's also something of a singly-linked list of structures.   What I mean by this is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root key node in a Registry hive file points to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r keys (subkeys) and values.  Subkeys point to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r keys and values, and values only point to data.  When I say "point to", I'm referring to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value or key header structure that tells us where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next element is located.  This offset is not measured from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file (from 0); racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, it starts at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first hbin structure, which is (usually) at offset 0x1000.  Let's say that you find an offset value within a value header structure that points to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset is "D8 54 01 00".  Translating endianness, we would look for that data structure at 0x0154D8 + 0x1000 within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file, or at offset 0x0164D8 from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.

Because key nodes point to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r key nodes and value nodes, and value nodes point to data, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registry can be described as a singly-linked list.  By contrast, active processes in memory are maintained as a doubly-linked list...each process points to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next process in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous process in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list.  In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registry, a value does not point to it's parent key, nor do keys point to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir parent key.  This can make it difficult to reconstruct a damaged Registry hive file, particularly when strings of interest that may be pertinent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 investigation can be seen within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 instance I was looking at, just scrolling through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file, I could see that a good deal of it had been destroyed.  In fact, it looked as if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virus had successfully overwritten entire sectors with zeros, and in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r some cases, some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sectors that made up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file I was sent did not even contain discernible structures.  I knew that I couldn't start at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file and reconstruct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file...too much was missing.  One approach might have been to comb through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file and catalog all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key and value node structures that I could locate (both allocated and unallocated), and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n run consecutive scans to (a) locate associated value data, and (b) correlate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate keys.

What I did instead was pick out a couple of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more interesting strings, and locate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file.  I had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strings.exe output, so I went to that offset in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, found cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n found cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure, of which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string was a member.  I noted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure type (value, data) and recorded cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure.  I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n subtracted 0x1000 from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset, reversed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 endianness, and searched for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hive file.

Here's an example...in one instance, I located a string that was a value name, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value structure began at offset 0x164D8 within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  Subtracting 0x1000, I got 0x154D8, and reversing endianness, I got "D8 54 01 00".  I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n searched for that hex string in UltraEdit.  What that led to was a structure that maintained a list of offsets to values associated with a key.  So, I repeated this process, using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 location where this structure started.  What that led me to discover was that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key had been obliterated from hive; it wasn't "deleted" in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sense that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first DWORD had been converted to a positive value...it simply no longer existed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.

As laborious as it is, this process can be used to gain some modicum of context and value for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 investigator.

Process
When confronted with a hive file as badly damaged as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one I was looking at, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are basically two ways to go about collecting some modicum of information and context from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  The first is to comb through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire file, cataloging each discernible structure, as if you were putting puzzle pieces out on a table.  Each structure would have to include not just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information it contained, but also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset to where it was located within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.  Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scanning process had been completed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pieces could be assembled much like a puzzle, albeit with a lot of missing pieces.

The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r way to go about this would be to do something like what I did...find a string of interest, locate it within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, determine what type of structure it belonged to (if it was part of a structure...), and attempt to reconstruct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path based on knowledge of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structures.  I opted for this approach because it gave me some answers quickly.

Take-away
My biggest take away from this exercise was that understanding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structure of what I was looking at allowed me to not only troubleshoot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 issue and determine why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools weren't working, but it also allowed me to provide some information, context, and insight regarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data when those tools were not able to do so.

Final Thought
One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments to one of my previous posts on this topic included cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following question:

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r question might be: With all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data structures out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, is it even possible to truly understand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m all?

I would suggest that, no, it's not possible for any single analyst to understand all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structures available on a Windows system.  That's why none of us try to do so...instead, some of us document what we know, in books or by posting to a wiki, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n offer ourselves as resources.  That way, if someone has a question, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have to do is ask.  So, if an analyst runs across something that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y don't understand, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can continue to not understand it, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can ask someone who appears to know something about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 topic, and in fairly short order, get an understanding.