Vxlang هو مشروع مصمم لمنع سلوكيات الهندسة العكسية مثل التحليل الثابت أو الديناميكي ، والعبث الملفات ، والوصول غير المصرح به إلى الذاكرة من قبل المهاجمين.
يستهدف مشروع VXLANG حاليًا X86-64 وثنائيات .NET ، والملفات الثنائية الأصلية لنظام تشغيل Microsoft Windows ، بما في ذلك Executables مع ملحق ".exe" ، وملفات مكتبة الارتباط الديناميكية مع ملحق ".dll" ، وملفات برنامج تشغيل Kernel مع ملحق ".sys". (سيتم توسيع أنواع الثنائيات المستهدفة التي تدعمها VXLang في التحديثات المستقبلية).
ELF .code-flattening العام.-fno-pic في ELF 32bit الثنائي. | Windows exe/dll | Windows kernel محرك | ||
| المحب | المحب | ||
| الافتراضي | الافتراضي | ||
| حامية | حامية | ||
| وحدات Windows UEFI | Windows .NET | ||
| المحب | المحب | ||
| الافتراضي | الافتراضي | ||
| حامية | حامية | ||
| Linux Elf | |
| المحب | |
| الافتراضي | |
| حامية | |
; x86-64 asm
00000001'40001bc6 cmp qword ptr [rsp + 0x20], rax
00000001'40001bcb jae 0x140001bf5
00000001'40001bcd mov rax, qword ptr [rsp + 0x20]
00000001'40001bd2 movzx eax, byte ptr [rsp + rax + 0x50]
; to v-asm
00000000'00002a40 movi exr_0, ${RANDOM}
00000000'00002a4a movi r7, ${RANDOM}
00000000'00002a54 xorr r7, exr_0
00000000'00002a57 movi exr_0, ${RANDOM}
00000000'00002a5d movi exr_1, ${RANDOM}
00000000'00002a63 xorr exr_0, exr_1
00000000'00002a66 mulr r7, exr_0
00000000'00002a69 addr r6, r7
00000000'00002a6c movi exr_0, ${RANDOM}
00000000'00002a76 movi r7, ${RANDOM}
00000000'00002a80 xorr r7, exr_0
00000000'00002a83 addr r6, r7
00000000'00002a86 movr r0, r6
00000000'00002a89 movr r1, rax
00000000'00002a8c ldrr r2, r0
00000000'00002a8f cmpr r2, r1
00000000'00002a92 be 0x2c59
00000000'00002a97 movr r0, rax
00000000'00002a9a movr r6, rsp
00000000'00002a9d movi exr_0, ${RANDOM}
00000000'00002aa7 movi r7, ${RANDOM}
00000000'00002ab1 xorr r7, exr_0
00000000'00002ab4 movi exr_0, ${RANDOM}
00000000'00002aba movi exr_1, ${RANDOM}
00000000'00002ac0 xorr exr_0, exr_1
00000000'00002ac3 mulr r7, exr_0
00000000'00002ac6 addr r6, r7
00000000'00002ac9 movi exr_0, ${RANDOM}
00000000'00002ad3 movi r7, ${RANDOM}
00000000'00002add xorr r7, exr_0
00000000'00002ae0 addr r6, r7
00000000'00002ae3 movr r1, r6
00000000'00002ae6 ldrr r2, r1
00000000'00002ae9 movr rax, r2
; compile
e7 f8 f1 e5 01 e1 a2 9a 22 87 c3 93 61 e5 06 e1
a2 9a 22 87 c3 93 61 eb 06 01 e6 01 e0 a2 9a 22
e6 0a e1 a2 9a 22 ec 01 0a d6 06 01 da 07 06 e5
01 e1 a2 9a 22 87 c3 93 61 e5 06 c1 a2 9a 22 87
c3 93 61 eb 06 01 da 07 06 e7 f7 f8 e7 fc e5 c6
00 08 a9 00 03 bb c6 01 00 00 e7 f7 e5 e7 f8 f1
e5 01 6d 86 d3 6d 7f 86 9d a2 e5 06 6d 86 d3 6d
7f 86 9d a2 eb 06 01 e6 01 6c 86 d3 6d e6 0a 6d
86 d3 6d ec 01 0a d6 06 01 da 07 06 e5 01 6d 86
d3 6d 7f 86 9d a2 e5 06 4d 86 d3 6d 7f 86 9d a2
قبل
بعد
قبل
بعد
Optimization : تحقق من أن vxvirtualizationbegin و vxVirtualizationAnd هي في نفس الكتلة.switch-case : في حالة التبديل ، عندما لا تكون حركة الفرع قيمة IMM ، قد يتم نقلها إلى الموضع الأصلي.Exception handling : حاليًا ، لا تدعم وحدة المعالجة المركزية الافتراضية معالجة الاستثناءات. تم تطوير النسخة الكاملة من Vxlang وتشغيلها تحت التبرع من خلال Patreon.
سيتم مشاركة الاستخدام الدقيق لـ VXLang ومشاركة رمز وحدة التمديد ، والميزات الجديدة لـ Vxlang ، وما إلى ذلك.
إذا كان لديك أي أسئلة ، فيرجى إرسال طلبك إلى البريد الإلكتروني أدناه.
Task-Listdual mode : يسمح لك بتطبيق كل من التغلب على الكود والمحاكاة الافتراضية.