moonD4rk / HackBrowserData

Extract and decrypt browser data, supporting multiple data types, runnable on various operating systems (macOS, Windows, Linux).
MIT License
10.62k stars 1.54k forks source link

Feature Request: Provide multiple drivers for sqlite3, controlled through golang compilation options. #293

Open moonD4rk opened 7 months ago

moonD4rk commented 7 months ago

Feature Description

Select the corresponding SQLite driver through Golang compilation configuration.

Currently, there are three types of drivers to consider. Through flexible configuration, during Golang compilation, the required binary version can be compiled according to the compilation options to meet the needs of different personnel.

Here we will consider go-sqlite3, modernc sqlite, and sqinn-go with smaller size respectively.

After simple testing, their differences are as follows. The full score is 5 stars (the higher the better).

Method Binary Size Reliability BuildEase
go-sqlite3 (CGO) ⭐⭐⭐ 8.3 MB ⭐⭐⭐⭐⭐ ⭐⭐⭐
modernc sqlite (PureGO) ⭐ 11 MB ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
sqinn with go embed ⭐⭐⭐⭐ 6.3 MB ⭐⭐⭐
sqinn with go-bindata ⭐⭐⭐⭐⭐ 6.1 MB ⭐⭐⭐

Why is this feature needed?

go-sqlite3 (CGO): the most stable and popular driver. modernc sqlite : uses SDK for external use, removing CGO dependencies. go-sqinn: reduces binary size and is convenient for Red Team usage.

Checklist

Screenshots/Videos

If applicable, add screenshots or videos to help explain your proposal.

Additional Context

Add any other context or screenshots about the feature request here.

moonD4rk commented 7 months ago

Ref: