-
Notifications
You must be signed in to change notification settings - Fork 562
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
Detect interactive ppt features #786
base: master
Are you sure you want to change the base?
Detect interactive ppt features #786
Commits on Nov 28, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 6069d4b - Browse repository at this point
Copy the full SHA 6069d4bView commit details -
(new IDE complained about these)
Configuration menu - View commit details
-
Copy full SHA for 59bd5cf - Browse repository at this point
Copy the full SHA 59bd5cfView commit details -
ppt_record_parser: Add many types, parse CString
Parse more record types from [MS-PPT] and some more from [MS-ODRAW], show more info in __str__ for debugging and extending
Configuration menu - View commit details
-
Copy full SHA for 952bc7c - Browse repository at this point
Copy the full SHA 952bc7cView commit details -
olevba: Detect interactive record types in ppt
Old powerpoint files (.ppt) can contain links to webpages or programs that are neither ActiveX nor VBA nor other tested types. They are saved in regular ppt-specific records and allow powerpoint to start arbitrary commands upon click or hovering over some item. The tineout for "hovering" is pretty fast here, it is very likely that users trigger this without realizing it. Add detection for these items to olevba
Configuration menu - View commit details
-
Copy full SHA for 5f5f977 - Browse repository at this point
Copy the full SHA 5f5f977View commit details -
record_base: Provide complete record data for testing
Expose existing param in record_base.test which is used to help extend and debug record-based streams (currently only ppt_record_parser).
Configuration menu - View commit details
-
Copy full SHA for ab9b348 - Browse repository at this point
Copy the full SHA ab9b348View commit details -
record_base: Improve stability for real-word samples
(1) Do not parse all sub-records in a container when constructing it (2) Allow for stray bytes at end of container data
Configuration menu - View commit details
-
Copy full SHA for 9919410 - Browse repository at this point
Copy the full SHA 9919410View commit details -
ppt_parser: Relax requirements
Had too harsh a requirement for ppt files, that it only contains root streams and no sub-streams. Not sure whether this theoretically should be true, but in any case it is not the case in real-world samples.
Configuration menu - View commit details
-
Copy full SHA for 325caf5 - Browse repository at this point
Copy the full SHA 325caf5View commit details -
This is left-over from my initial attempt to parsing ppt documents. Never worked properly.
Configuration menu - View commit details
-
Copy full SHA for d3ba646 - Browse repository at this point
Copy the full SHA d3ba646View commit details -
oleobj: Do not trust is_zipfile
This can easily be fooled as shown by some malware sample. So, do it the pythonic way: try treating it like a zip file and deal with the exceptions if it is not.
Configuration menu - View commit details
-
Copy full SHA for 54b5693 - Browse repository at this point
Copy the full SHA 54b5693View commit details -
ppt_record_parser: Optimize data loading
Do not remember potentially huge blobs in memory, need that just for debugging.
Configuration menu - View commit details
-
Copy full SHA for 76da83a - Browse repository at this point
Copy the full SHA 76da83aView commit details -
tests: Add sample and test for interactive ppt
Self-made sample that triggers default browser with an URL upon clicking a shape, and that calls calc.exe upon hovering over another shape.
Configuration menu - View commit details
-
Copy full SHA for feb2309 - Browse repository at this point
Copy the full SHA feb2309View commit details -
tests: Add helper to temporarily extract malware samples
When testing json-output we need to run samples through the "main" functions of modules, not just their "process_file" functions that would accept the extracted and decrypted data from the existing helper function "loop_over_files". They need a filename as input, so add helper to create a temp dir and extract&decrypt samples to that temporarily.
Configuration menu - View commit details
-
Copy full SHA for 547cd30 - Browse repository at this point
Copy the full SHA 547cd30View commit details -
tests: Return path-part from loop_and_extract
When unzipping into temp dir, we often need to know the original sample name.
Configuration menu - View commit details
-
Copy full SHA for d67ae41 - Browse repository at this point
Copy the full SHA d67ae41View commit details -
tests: Start test to run all tools on all data
In another branch I missed a bug that occurred in one of our test samples. Avoid this by running all tools over all data
Configuration menu - View commit details
-
Copy full SHA for 9668cf6 - Browse repository at this point
Copy the full SHA 9668cf6View commit details