New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added MacOS login items/background items plugins #4790
Added MacOS login items/background items plugins #4790
Conversation
Thanks for the suggested changes, I'll take a closer look later this week. |
Seeing you use a new dependency plistutils also see https://github.com/log2timeline/l2tdocs/blob/main/process/Dependencies.md |
6210a3d
to
69ea59c
Compare
69ea59c
to
31564f1
Compare
31564f1
to
a773f4e
Compare
FYI I rebased with HEAD and did a force push to make sure tests don't fail |
@Spferical I'll make some changes and leave some comment on the review. Unless explicitly tagged by name consider these informational. |
Note that on Mac OS 10.7 and 10.8 the com.apple.loginitems.plist file is slightly different, e.g.
Although Alias and AliasData seem to contain the same data |
The com.apple.loginitems.plist file on Mac OS 10.9 and macOS 10.12, not observed on 10.10 and 10.11
|
@Spferical we need to make sure they can be used given their original license
Looks like this is copyrighted, you need to get permission to redistribute. However given that I have samples from 10.7 - 10.9 I'll use these instead. I've replaced this file with one that can be redistributed under the Plaso license |
These appear to be MIT licensed, this needs to be explicitly called out. I'll see if I can find replacements first that can be redistributed under the Plaso license Found a backgrounditems.btm from High Sierra |
Removed the need for plistutils as a new dependency |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4790 +/- ##
==========================================
+ Coverage 85.84% 85.94% +0.10%
==========================================
Files 419 421 +2
Lines 37985 38195 +210
==========================================
+ Hits 32608 32827 +219
+ Misses 5377 5368 -9 ☔ View full report in Codecov by Sentry. |
Schema of a decoded version 2 plist
Schema of a decoded version 4 plist
Schema of a decoded version 8 plist
Note that the typo in Some sources mention a BackgroundItems-v3.btm and BackgroundItems-v7.btm as well |
Experimental test decode script can be found here https://github.com/libyal/dtformats/blob/main/scripts/decode_nskeyedarchiver_plist.py in case you have other samples. |
StartupParameters.plist is copyrighted but it looks like a Plaso specific one can be easily created. I'll do that in an upcoming push. |
Given loginwindow.plist was significantly modified, and not a close resembling copy of the original, it should be fine. |
Some documentation regarding the loginwindow.plist files |
58f2ff9
to
361fd61
Compare
To my knowledge, they're all binary unless a user manually converts them in-place. |
Found a v7, schema has been documented in https://github.com/libyal/dtformats/blob/main/documentation/Mac%20OS%20background%20item%20bookmark%20data%20format.asciidoc v3 might have been used in macOS 13 pre-release |
5a4f492
to
dc8b7ff
Compare
Running some tests to make the NSKeyedArchiver decoder more reliable https://github.com/libyal/plist-kb/blob/main/plistrc/decoders.py |
dc8b7ff
to
4876436
Compare
866f4c6
to
9037664
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
One line description of pull request
Adds parsers for MacOS login items/background items.
Description:
This PR covers:
Notes:
All contributions to Plaso undergo code review.
This makes sure that the code has appropriate test coverage and conforms to the
Plaso style guide.
One of the maintainers will examine your code, and may request changes. Check off the items below in
order, and then a maintainer will review your code.
Checklist: