Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/iamsopotatoe-coder/tinyload
أدوات التشفير/فك التشفيرتوليد الحمولةالاستغلالالتهرب من IDS/IPSالهندسة العكسيةشيل كودتحليل الملفات الثنائيةتوليد شيفرة القشرة
GitHubiamsopotatoe-coder/tinyload

TinyLoad

أداة مفتوحة المصدر لتغليف وتشفير ملفات PE القابلة للتنفيذ بنظام ويندوز x64. تقوم بضغط وتشفير الملفات التنفيذية باستخدام آلة افتراضية مخصصة ضمن كعب برمجي ذاتي الاستخراج.

عرض المستودع
1801645منذ 9 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

github-social-preview

TinyLoad v7.4 - أداة تغليف وتشفير PE لنظام ويندوز

build Mentioned in Awesome

TinyLoad هي أداة تشفير/تغليف PE لملفات x64 القابلة للتنفيذ، حيث تقوم بتغليف ملف exe مُدخل بطبقات حماية متنوعة لمنع هندسته عكسيًا. وهي ملف .cpp واحد فقط ولا تحتوي على أي تبعيات خارجية.

كيف تعمل

يقوم TinyLoad بإلحاق حمولتك بنسخة من نفسه. عند تشغيل ملف exe المُغلّف، يقوم باستخراج الحمولة وفك تشفيرها وتنفيذها مباشرة في الذاكرة دون كتابة الملف الأصلي على القرص أبدًا. في كل مرة تقوم فيها بتغليف شيء ما، يتم تغيير أكواد VM التشغيلية عشوائيًا ووضعها في 4 جداول فرعية مستقلة المفاتيح بحيث لا يتشابه أي إصداران.

خط أنابيب pack()
root@kitploit:~
flowchart TD
    start["pack(in, out, vm, comp, veh, noconsole)"] --> load["loadFile(in) → orig"]
    load --> pe{"MZ + PE00 + Machine 0x8664 + NumberOfSections in 1..96?"}
    pe -->|fail| err["printf error / return false"]
    pe -->|ok| init["pay = orig    flags = 0"]
    
    init --> cdec{"--c ?"}
    cdec -->|yes| lz["flags |= 1<br/>lzPack: WINDOW=0xFFFF  MAXCHAIN=4096<br/>MAXMATCH=258  MINMATCH=3  HSIZE=65536<br/>hash4 = FNV-ish fold * 0x1000193<br/>lazy lookahead la = 1,2<br/>out = uint32le origSz + 8-token flag bytes<br/>match → varint dist, varint len-3"]
    cdec -->|no| vmq
    lz --> vmq{"--vm ?"}

    vmq -->|yes| scatter["flags |= 2<br/>Fisher-Yates 32 slots, scatter NUM_OPS=28<br/>into subtables 4x8, unused stay 0xFF<br/>opmap_enc op = tbl shl 6 OR idx"]
    scatter --> canary["canary corridor n=8, skip first 0x400 of pay<br/>canExp c = pay at off XOR prev"]
    canary --> mkvm["makeVmProgram opmap_enc, key1, key2, canary<br/>key1,key2 ← mt19937_64 TickCount64 XOR QPC<br/>opaque predicates + stream loop + canary mask"]
    mkvm --> venc["vmEncryptPayload  192-bit state<br/>k3 = 0x9E3779B97F4A7C15<br/>ks = uint8((k1 XOR k2) + k3)<br/>b = NOT(b XOR ks)<br/>k1 = rotl64(k1,11) XOR k2<br/>k2 = rotr64(k2,19) + k1 + k3<br/>k3 = k3 * phi XOR k1"]
    vmq -->|no| vehq
    venc --> vehq{"--veh ?"}

    vehq -->|yes| vflag["flags |= FLAG_VEH 4"]
    vehq -->|no| stub
    vflag --> stub["stub = loadFile GetModuleFileNameA self<br/>saveFile out, stub as host image"]

    stub --> skey["stubKey = 0x9E3779B97F4A7C15<br/>for i in 0x1000 .. min n, 0x2000:<br/>stubKey = (stubKey XOR stub i) * phi"]
    skey --> disp["prime vmRun dispKey=0 → fill g_off<br/>dispKey ← rng<br/>encOff j = uint64(g_off j) XOR dispKey"]

    disp --> tail["Tail: sig TINYLD60, origSz, packSz, flags,<br/>dispOff x28, subtables 4x8, vmCodeSz,<br/>dispKey, canary*, chunk*,<br/>payHash = SHA-256 orig first 8B"]
    tail --> hide["sig i XOR= stubKey shr 8i<br/>xorOpmap FNV-1a 0x811C9DC5 / 0x01000193<br/>feeds origSz, packSz, vmCodeSz + first 32B<br/>of vmCode and pay, per-table<br/>flags |= FLAG_CHUNK 8"]
    hide --> tenc["XOR-encode Tail fields with stubKey slices<br/>vmCode vi XOR= stubKey shr ((vi*3) and 63)"]

    tenc --> ovl["payload = vmCode || pay<br/>interleave: insert 0x00 after every 3 bytes"]
    ovl --> chunks["split into 4 chunks, shuffle physical order<br/>Tail placeholder TAIL_SERIALIZED_SZ = 419<br/>before each chunk: 128..640 RNG junk"]
    chunks --> tea["xxteaEncrypt bytes after Tail<br/>DELTA=0x9E3779B9  rounds=6+52/n<br/>remainder XOR pxKey0 xor pxKey1 xor pxKey2 xor pxKey3<br/>patch k i XOR FEEDF00D / CAFEBABE /<br/>DEADBEEF / 8BADF00D into _pxBlock<br/>between C0DE1337 and B007DEAD"]
    tea --> ser["XOR chunkOff / chunkSz / chunkOrder / chunkCnt<br/>serializeTail: 16 TLV records id + u16le sz + bytes<br/>Fisher-Yates order, LCG 1103515245+12345<br/>seed = stubKey XOR filesize<br/>append DWORD LE: tailOff XOR stubKey low 32"]

    ser --> fin{"--noconsole ?"}
    fin -->|yes| gui["OptionalHeader.Subsystem = IMAGE_SUBSYSTEM_WINDOWS_GUI"]
    fin -->|no| scr
    gui --> scr["scrambleSections: cycle names<br/>.text .data .rdata .bss .idata"]
    scr --> done["saveFile out, result"]

التحميل

احصل على ملف ثنائي مُجمّع مسبقًا من الإصدارات أو قم ببنائه بنفسك.

البناء من المصدر

تحتاج إلى MinGW (g++). فقط قم بتشغيل:

root@kitploit:~
g++ -o TinyLoad.exe TinyLoad.cpp -static -O2 -s

أو استخدم build.bat.

الاستخدام

root@kitploit:~
TinyLoad.exe --i <input> [--o <output>] [--vm] [--c] [--veh]

تحتاج إلى خيار واحد على الأقل من --vm أو --c أو --veh.

أمثلة

2026-08-1118-55-14-ezgif com-video-to-gif-converter

صور DIE

die-gui-packed die-gui-entropy

الضغط

ضغط LZ77 مخصص مع مطابقة سلسلة التجزئة ونافذة منزلقة بحجم 64 كيلوبايت. يتم الضغط أولاً، ثم يأتي تشفير VM فوقه بحيث يتم إخفاء أي أنماط في البيانات المضغوطة أيضًا.

تشفير VM

آلة افتراضية مخصصة من 28 كود تشغيلي تعمل داخل الـ stub. يتم وضع الأكواد التشغيلية عشوائيًا في 4 جداول فرعية من 8 لكل منها، ويتم تشفير كل جدول فرعي بـ XOR بمفتاح مختلف مشتق من بيانات الحمولة. كسر جدول فرعي واحد يكشف على الأكثر 8 أكواد تشغيلية من أصل 28. التشفير نفسه هو تشفير تدفقي 128 بت يستخدم خلط مفاتيح rotl و rotr ويعمل بالكامل داخل مترجم VM. يتم تشفير الحمولة باستخدام XXTEA.

فك تشفير خطأ الصفحة VEH

مع تفعيل --veh، يتم تعيين جميع صفحات أقسام PE كـ PAGE_NOACCESS. عندما يحاول البرنامج الوصول إلى صفحة، يتم إطلاق استثناء، ويقوم معالج استثناء متجه بفك تشفير تلك الصفحة الواحدة فقط وتعيين الحماية الصحيحة. يعمل مؤشر ترابط مراقبة في الخلفية ويعيد تشفير أي صفحة لم يتم الوصول إليها خلال 200 مللي ثانية. في أي لحظة معينة، معظم برنامجك لا يزال مشفرًا في الذاكرة بحيث لا تلتقط تفريغات الذاكرة سوى ما تم الوصول إليه مؤخرًا.

مكافحة التفريغ

يتم إعادة توجيه أهم 4 واجهات برمجة تطبيقات (GetModuleHandleA, GetProcAddress, ExitProcess, VirtualAlloc) عبر دوال غلاف داخل الـ stub. بعد تحميل الحمولة، يتم تصفير دليل الاستيراد بالكامل بحيث لا يمكن لتفريغات الذاكرة إعادة بناء جدول الاستيراد.

الترخيص

MIT

ملاحظات جانبية

  • هناك الكثير من الميزات التي لم أضعها في ملف README، يمكنك قراءة الكود بنفسك أو الاطلاع على changelog.md
  • هذا يعمل على معظم الملفات التي اختبرتها، إذا تعطل على ملفك افتح issue وسأبحث في الأمر
  • الاقتراحات وأفكار الميزات توضع أيضًا في issues
  • إذا استخدمته، نجمة تساعد كثيرًا <3
  • نعم، برامج مكافحة الفيروسات تضع علامة على أدوات التغليف، وهذا متوقع. (حاليًا لديها 9 اكتشافات على virustotal، أي ملف تغلّفه به يحصل على 9 اكتشافات، المحتوى لا يهم)
  • من فضلك لا تغلّف برمجيات خبيثة بهذا، فهو مخصص للأغراض المشروعة
تنزيل الأداة
الخياروظيفته
--i <file>ملف exe المُدخل المراد تغليفه
--o <file>مسار الإخراج (الافتراضي: input_packed.exe)
--vmتشفير VM
--cضغط LZ77
--vehفك تشفير خطأ الصفحة VEH
--noconsoleنظام GUI الفرعي