#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

#572 in Text processing

Download history 51/week @ 2024-07-22 26/week @ 2024-07-29 22/week @ 2024-08-05 23/week @ 2024-08-12 20/week @ 2024-08-19 25/week @ 2024-08-26 9/week @ 2024-09-02 34/week @ 2024-09-09 20/week @ 2024-09-16 99/week @ 2024-09-23 58/week @ 2024-09-30 35/week @ 2024-10-07 57/week @ 2024-10-14 35/week @ 2024-10-21 23/week @ 2024-10-28 37/week @ 2024-11-04

155 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–5.5MB
~101K SLoC