#forensics #cybersecurity #identify #regex #cryptography #text-file #packet

bin+lib lemmeknow

Identify any mysterious text or analyze strings from a file

9 releases (breaking)

0.8.0 May 20, 2023
0.7.0 Oct 19, 2022
0.6.0 Jul 30, 2022
0.5.0 Jul 12, 2022
0.1.0 Aug 29, 2021

#594 in Text processing

Download history 72/week @ 2024-11-17 51/week @ 2024-11-24 21/week @ 2024-12-01 67/week @ 2024-12-08 14/week @ 2024-12-15 5/week @ 2024-12-22 2/week @ 2024-12-29 11/week @ 2025-01-05 14/week @ 2025-01-12 33/week @ 2025-01-19 35/week @ 2025-01-26 289/week @ 2025-02-02 29/week @ 2025-02-09 30/week @ 2025-02-16 445/week @ 2025-02-23 666/week @ 2025-03-02

1,176 downloads per month
Used in 7 crates (5 directly)

MIT license

48KB
586 lines

lemmeknow

⚡ 🦀 🔍
Just ask "lemmeknow"!
The fastest way to identify anything

Built with ❤︎ by swanandx and contributors

lemmeknow can be used for identifying mysterious text or to analyze hard-coded strings from captured network packets, malwares, or just about anything.

Try it online here

Watch the video on YouTube

🧰 Usage

lemmeknow [OPTIONS] <TEXT/FILENAME>
demo
JSON Output

If you want output in JSON format, then pass -j / --json flag. e.g.

lemmeknow UC11L3JDgDQMyH8iolKkVZ4w --json
demo

Run lemmeknow --help for all options!


🔭 Installation


Download executable 📈

You can directly download executable and run it. No need for any installation.

Check releases here.


Using cargo 🦀

cargo install lemmeknow

Using Nix ❄️

nix-env -iA nixpkgs.lemmeknow

Build it from source 🎯

Clone repository

git clone https://github.com/swanandx/lemmeknow && cd lemmeknow

then build and run

cargo run -- <TEXT/FILENAME> [OPTIONS]

OR

cargo build --release
cd target/release/
./lemmeknow <TEXT/FILENAME> [OPTIONS]


🚀 API

Want to use this as a crate in your project? or make a web api for it? No worries! Just add a entry in your Cargo.toml

[dependencies]
lemmeknow = { version = "0.7", default-features = false }

OR

[dependencies]
lemmeknow = { git = "https://github.com/swanandx/lemmeknow", default-features = false }

Refer to documentation for more info.

lemmeknow supports webassembly, that is, it can be compiled for wasm32-unknown-unknown target! e.g. lemmeknow-frontend


⚔️ Benchmarks

lemmeknow is around 33x faster than pywhat for a file of 8.7MB, and it is 3x faster for a single string!

A file of 8.7MB A single string
Summary: lemmeknow.exe floss.exe ran 33.13 ± 9.74 times faster than pywhat floss.exe Summary: lemmeknow.exe 3FZ..Zc5 ran 3.29 ± 0.77 times faster than pywhat 3FZ..Zc5
File benchmark String benchmark

Thanks to SkeletalDemise for the benchmarks and the whisker plots ✨


🚧 Contributing

You can contribute by adding new regex, improving current regex, improving code performance or fixing minor bugs! Just open a issue or submit a PR.


💖 Acknowledgement

This project is inspired by PyWhat! Thanks to developer of it for the awesome idea <3 .

Dependencies

~2.8–5.5MB
~101K SLoC