
توليد قوائم الكلمات باستخدام المنطق النمطي والتعبيرات.
قم بتوليد قوائم كلمات باستخدام منطق الأنماط والتعبيرات
التثبيت • التوثيق • الاستخدام • المساهمة
[!NOTE] تمت إعادة تسمية هذا المشروع من
fuse/fuse-generatorإلىmapcharابتداءً من الإصدار 7.0.2. لقد تغيرت حزمة PyPI وأمر CLI واسم حزمة Python تبعًا لذلك. إذا كنت تستخدم الاسم القديم، فيرجى تحديث عمليات التثبيت والاستيراد.
[!NOTE] يُوصى بالتثبيت باستخدام
pipxأوpipللحصول على نسخة PyPI.
| الطريقة | ملاحظات |
|---|---|
pipx install mapchar | يمكن استخدام pip بدلاً من pipx |
git clone https://github.com/pwnfo/mapchar.git && cd mapchar && pip install . | استنساخ وتثبيت مباشرة من GitHub |
لدليل كامل وشروحات الميزات وأمثلة متقدمة، يرجى زيارة التوثيق.
لتوليد قائمة كلمات من تعبير بسيط:
mapchar '/l{2,4}'
لدمج الملفات مع المولدات:
mapchar '^:^' names.txt pass.txt
يمكن معالجة المخرجات وتصفيتها وحفظها.
General Options:
-h, --help show this help message and exit
-v, --version show version information and exit
-S, --stats show pattern statistics and exit
-q, --quiet suppress non-essential output
-n, --non-interactive
skip the confirmation prompt before execution
Generation Options:
-d, --delimiter <string>
string inserted between generated entries
-b, --write-buffer <size>
output buffer size
-w, --workers <1-64> number of worker processes (default: 1)
-k, --flush-threshold <size>
flush output after reaching this byte threshold (default: 512KB)
Input Options:
-f, --file <path> load patterns from file
-s, --start <word> start writing output from <word>
-e, --end <word> stop writing output at <word>
Output Options:
-o, --output <path> write output to a file
-z, --compress <format>
compress output (supported: gzip, bzip2, lzma)
-l, --compresslevel <level>
compression level for the selected format
[...] عنصرًا واحدًا لكل موضع.مثال:
$ mapchar '/l{2,3}'
# output: aa, ab, ac, ..., ZY, ZZ
مثال: /l/l يُنتج جميع تركيبات الحرفين (كبيرة وصغيرة).
[abc] تختار حرفًا واحدًا من a أو b أو c.| لفصل بدائل الكلمات الكاملة داخل الفئة:
[admin|root|123] تُدرج admin أو root أو 123 في تلك النقطة.|| لفصل التعبيرات على المستوى الأعلى:
mapchar 'admin/d||guest/d' يربط نمطين مستقلين.يمكنك تحليل النمط قبل إنشائه باستخدام العلامة -S/--stats. يعرض ذلك عدد الرموز والحجم المقدر وتفاصيل تصفية النطاق.
mapchar -S '/l{3}||/d{3}'
{N} — كرر بالضبط N مرة{min,max} — كرر بين min وmax مرة (شامل)? — اختياري (0 أو 1 مرة)أمثلة:
$ mapchar '[XYZ]{3}' # XXX, XXY, ..., ZZZ
$ mapchar '[XYZ]{2,5}' # XY, XZ, ..., XYZXY
$ mapchar 'Ryan?/d' # Rya0, Rya1, ..., Ryan9
$ mapchar '[XYZ]?Ryan' # Ryan, XRyan, YRyan, ZRyan
#[1-10] → يُنتج 1,2,3,4,5,6,7,8,9,10#[1-10:2] → يُنتج 1,3,5,7,9#[2-10:2] → يُنتج 2,4,6,8,10يمكن استخدام هذه النطاقات الرقمية في أي موضع من التعبير.
استخدم ^ في التعبير كنقطة استبدال لوسيطة الملف التالية. يستهلك كل ^ ملفًا واحدًا ويكرر على سطوره:
$ mapchar '^/d' names.txt
# output: Bob0, Bob1, ..., Ana0, Ana1, ...
$ mapchar '^-^' names.txt years.txt
# output: Bob-1990, Ana-1991, Ryan-1992, ...
أضف // بادئة لاسم الملف لمعاملته كتعبير مضمن بدلاً من مسار ملف.
استخدم <@name=expr> لتقييم تعبير مرة واحدة لكل سطر مخرج وتخزينه، ثم إعادة استخدامه باستخدام <@name>.
على عكس الربط، يُقدم هذا تبعية، لذا لا يتم إنشاء منتج ديكارتي بين التعريف ومراجعه.
$ mapchar '<@d=/d>-<@d>'
# output: 0-0, 1-1, ..., 9-9
$ mapchar '<@x=^>:<@x>' words.txt
# output: foo:foo, bar:bar, ...
$ mapchar '<@n=/d{2}>_<@n>'
# output: 00_00, 01_01, ..., 99_99
يدعم Mapchar الضغط أثناء الكتابة عند كتابة ملفات الإخراج.
# gzip (fast, balanced)
mapchar '/l{5}' -z gzip -o wordlist.txt.gz
# lzma (best compression)
mapchar '/l{5}' -z lzma -o wordlist.txt.xz
# bzip2 (middle ground)
mapchar '/l{5}' -z bzip2 -o wordlist.txt.bz2
استخدم \ لإفلات الأحرف الخاصة.
$ mapchar '\/d/d'
# output: /d/0, /d/1, ..., /d/9
نرحب بالمساهمات في Mapchar! سواء كانت إضافة ميزات جديدة، تحسين التوثيق، أو إصلاح الأخطاء، فإن مساعدتك مقدرة.
لا تتردد في فتح مشكلة أو تقديم طلب سحب على مستودع GitHub الخاص بنا في pwnfo/mapchar.
MIT © Ryan R. <[email protected]>
| الرمز | المعنى |
|---|
/l | أحرف (a–z, A–Z) |
/a | أحرف صغيرة (a–z) |
/A | أحرف كبيرة (A–Z) |
/d | أرقام (0–9) |
/D | أرقام غير صفرية (1–9) |
/h | سداسي عشري صغير (0–9, a–f) |
/H | سداسي عشري كبير (0–9, A–F) |
/s | مسافة |
/o | أرقام ثمانية (0–7) |
/p | رموز خاصة |
/b | سطر جديد (\n) |