#cybersecurity #identify #regex #forensics #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

#338 in Text processing

Download history 5/week @ 2023-12-11 28/week @ 2023-12-18 11/week @ 2023-12-25 186/week @ 2024-01-01 28/week @ 2024-01-08 163/week @ 2024-01-15 7/week @ 2024-01-22 3/week @ 2024-01-29 5/week @ 2024-02-05 4/week @ 2024-02-12 23/week @ 2024-02-19 61/week @ 2024-02-26 46/week @ 2024-03-04 31/week @ 2024-03-11 36/week @ 2024-03-18 55/week @ 2024-03-25

173 downloads per month
Used in 6 crates (4 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–5MB
~97K SLoC