Additions
- Added a Nuget Package
- Added a
ToJson()
method to all browser information classes (Cookie
,Login
,Bookmark
, ...) that serializes the class into a JSON string - Added Unit Tests for the different browser grabber classes.
- It's now possible to retrieve the form history and saved credit cards from browsers (for now, credit cards only from Blink-based browsers).
- CockyGrabber does now support the gathering of data on multiple blink browser profiles.
- The
BlinkGrabber
andGeckoGrabber
classes now have two methods for each browser information that check if the related file that stores that information exists:[name of the data]Exist(string)
andAny[name of the data]Exist()
(e. g:CookiesExist(string)
andAnyCookiesExist()
). The former returns a bool indicating if the, to the information corresponding, file of a specified browser profile exists, and the latter returns a bool indicating if that file exists on any browser profile (given that the browser supports having different profiles). - Added a
SameSiteType
enum in each of the Blink and Gecko cookie model classes, replacing the return type of theSameSite
fields.
Improvements
- Browser file paths are now dynamic (they now use
Environment.GetFolderPath(Appdata)
instead ofC:\\Users\\{Environment.UserName}\\AppData...
) and support other drive letters thanC:\
- Improved the
UniversalGrabber
Get-methods by usingParallel.ForEach
insead offoreach
making them faster by a LOT. - Changed the
GetKey()
method of theBlinkGrabber
to virtual so that it can be overwritten by the user. - Fixed a bug in the
GetKey()
method ofBlinkGrabber
class that caused it to crash when the JSON objectos_crypt
, that stores the valueencrypted_key
, contained other values thanencrypted_key
. (Changed regex expression from\"os_crypt\"\\s*:\\s*{\\s*\"encrypted_key\"\\s*:\\s*\".*?\"\\s*}
to\"os_crypt\"\s*:\s*\{\s*.*?(?=\"encrypted_key)\"encrypted_key\"\s*:\s*\"(?<encKey>.*?)\"\s*\}
) - The Universal
GetAllBlink...()
methods are now checking if the related file and theLocal State
file, which stores the key, exist before grabing the information to avoid any errors - Fixed the wrong expiry dates in the
GetGeckoCookies()
&GetGeckoCookiesBy()
methods (Their cookie expiry dates used to always be:01.01.1970 00:00:00 +00:00
) - Some variables have been renamed to make them more readable
- The arrays which contain the browser classes in the
UniversalGrabber
(BlinkGrabbers[]
andGeckoGrabbers[]
) are now public instead of private so that the user can change them if needed (e.g. to add a new browser) - The Timestamp conversion methods like
UnixTimeInMillisecondsToDate(milliSeconds)
orWebkitTimeStampToDateTime(microSeconds)
in the EngineGrabbers have been moved to the newTime
class in theUtility
namespace - Some paths in the grabber classes (e.g:
BraveGrabber
;ChromeGrabber
;OperaGrabber
) have changed