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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/jonathansalwan/triton
التحليل الديناميكي (عزل)الهندسة العكسيةالاختبار العشوائيتحليل الملفات الثنائية
GitHubjonathansalwan/triton

Triton

تريتون هي مكتبة تحليل ثنائي ديناميكي. قم ببناء أدوات تحليل البرامج الخاصة بك، وأتمتة عمليات الهندسة العكسية، وأجرِ التحقق من البرامج، أو فقط قم بمحاكاة الكود.

عرض المستودع
4.3k590منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Triton هي مكتبة تحليل ثنائي ديناميكي. توفر مكونات داخلية تسمح لك ببناء أدوات تحليل البرامج الخاصة بك، وأتمتة الهندسة العكسية، وإجراء التحقق من البرامج، أو ببساطة محاكاة الكود.

  • Dynamic symbolic execution
  • Dynamic taint analysis
  • AST representation of the x86, x86-64, ARM32, AArch64 and RISC-V 32/64 ISA semantic
  • Expressions synthesis
  • SMT simplification passes
  • Lifting to LLVM as well as Z3 and back
  • SMT solver interface to Z3 and Bitwuzla
  • C++ and Python API


نظرًا لأن Triton هو نوع من المشاريع ذات الوقت الجزئي، من فضلك، لا تلومنا إذا لم يكن موثوقًا تمامًا. فتح المشكلات أو طلبات السحب دائمًا أفضل من التصيد =). ومع ذلك، يمكنك متابعة التطوير على تويتر @qb_triton.

      Codecov      

بداية سريعة

  • التثبيت
  • Python API
  • C++ API
  • Python Examples
  • لقد استخدموا Triton بالفعل

الشروع في العمل```python

from triton import *

Create the Triton context with a defined architecture

ctx = TritonContext(ARCH.X86_64)

Define concrete values (optional)

ctx.setConcreteRegisterValue(ctx.registers.rip, 0x40000)

Symbolize data (optional)

ctx.symbolizeRegister(ctx.registers.rax, 'my_rax')

Execute instructions

ctx.processing(Instruction(b"\x48\x35\x34\x12\x00\x00")) # xor rax, 0x1234 ctx.processing(Instruction(b"\x48\x89\xc1")) # mov rcx, rax

Get the symbolic expression

rcx_expr = ctx.getSymbolicRegister(ctx.registers.rcx) print(rcx_expr) (define-fun ref!8 () (_ BitVec 64) ref!1) ; MOV operation - 0x40006: mov rcx, rax

Solve constraint

ctx.getModel(rcx_expr.getAst() == 0xdead) {0: my_rax:64 = 0xcc99}

0xcc99 XOR 0x1234 is indeed equal to 0xdead

hex(0xcc99 ^ 0x1234) '0xdead'

root@kitploit:~
## التثبيت باستخدام pip

يمكن تثبيت Triton باستخدام `pip`:```console
pip install triton-library

التثبيت من المصدر

يعتمد Triton على التبعيات التالية:```

  • libcapstone >= 5.0.x https://github.com/capstone-engine/capstone
  • libboost (optional) >= 1.68
  • libpython (optional) >= 3.6
  • libz3 (optional) >= 4.6.0 https://github.com/Z3Prover/z3
  • libbitwuzla (optional) >= 0.4.x https://github.com/bitwuzla/bitwuzla
  • llvm (optional) >= 12
root@kitploit:~
### Linux وMacOS```console
$ git clone https://github.com/JonathanSalwan/Triton
$ cd Triton
$ mkdir build ; cd build
$ cmake ..
$ make -j3
$ sudo make install

بشكل افتراضي، لا يتم تجميع LLVM وBitwuzla. إذا كنت ترغب في الاستمتاع بالقوة الكاملة لـ Triton، فإن تجميع cmake هو:```console $ cmake -DLLVM_INTERFACE=ON -DCMAKE_PREFIX_PATH=$(llvm-config --prefix) -DBITWUZLA_INTERFACE=ON ..

root@kitploit:~
#### ملاحظة MacOS M1:

إذا واجهت أخطاء تجميع مثل:```
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

حاول تحديد PYTHON_EXECUTABLE و PYTHON_LIBRARIES و PYTHON_INCLUDE_DIRS لإصدار Python الخاص بك:```console cmake -DCMAKE_INSTALL_PREFIX=/opt/homebrew/
-DPYTHON_EXECUTABLE=/opt/homebrew/bin/python3
-DPYTHON_LIBRARIES=/opt/homebrew/Cellar/[email protected]/3.10.8/Frameworks/Python.framework/Versions/3.10/lib/libpython3.10.dylib
-DPYTHON_INCLUDE_DIRS=/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10/
..

root@kitploit:~
يمكنك الحصول على هذه المعلومات من هذا المقتطف:```python
from sysconfig import get_paths
info = get_paths()
print(info)

الإكمال التلقائي في Python

إذا كان الإكمال التلقائي في Python لا يعمل، فاتبع هذه الخطوات:

  1. قم بتشغيل البرنامج النصي
  2. ضع ملف triton.pyi الذي تم إنشاؤه في نفس الدليل الذي يوجد به الكائن المشترك Triton الذي ترغب في توفير تلميحات له (على سبيل المثال، /usr/lib/python3.13/).

يجب أن يدعم بيئة التطوير المتكاملة (IDE) الخاصة بك تحليل ملفات .pyi.

Windows

يمكنك استخدام cmake لإنشاء ملف .sln الخاص بـ libTriton.```console

git clone https://github.com/JonathanSalwan/Triton.git cd Triton mkdir build cd build cmake -G "Visual Studio 14 2015 Win64"
-DBOOST_ROOT="C:/Users/jonathan/Works/Tools/boost_1_61_0"
-DPYTHON_INCLUDE_DIRS="C:/Python36/include"
-DPYTHON_LIBRARIES="C:/Python36/libs/python36.lib"
-DZ3_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/z3-4.6.0-x64-win/include"
-DZ3_LIBRARIES="C:/Users/jonathan/Works/Tools/z3-4.6.0-x64-win/bin/libz3.lib"
-DCAPSTONE_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/capstone-5.0.1-win64/include"
-DCAPSTONE_LIBRARIES="C:/Users/jonathan/Works/Tools/capstone-5.0.1-win64/capstone.lib" ..

root@kitploit:~
يمكنك استخدام setup.py لإنشاء النسخة التصحيحية من triton.pyd على Windows.```console
> git clone https://github.com/JonathanSalwan/Triton.git
> cd Triton
> $env:COMPILER_DIR="C:/deps/llvm/llvm2116r/bin"
> $env:CMAKE_PREFIX_PATH="C:/deps/llvm/llvm-project-21.1.6.src/install/lib/cmake/llvm;C:/code/cxx-common-cmake/build/install"
> python_d -m build --wheel
> python_d -m pip install (Get-ChildItem .\dist\triton_library*)

ومع ذلك، إذا كنت تفضل تنزيل المكتبة المجمعة مسبقًا مباشرة، فتفضل بزيارة القطع الأثرية الخاصة بـ AppVeyor artefacts. لاحظ أنه إذا كنت تستخدم القطع الأثرية الخاصة بـ AppVeyor، فربما تحتاج إلى تثبيت حزم Visual C++ Redistributable الخاصة بـ Visual Studio 2012.

التثبيت من خلال vcpkg

يتم الحفاظ على منفذ Triton في vcpkg محدثًا من قبل أعضاء فريق Microsoft والمساهمين من المجتمع. عنوان vcpkg هو: https://github.com/Microsoft/vcpkg. يمكنك تنزيل وتثبيت Triton باستخدام مدير التبعيات vcpkg:```console $ git clone https://github.com/Microsoft/vcpkg.git $ cd vcpkg $ ./bootstrap-vcpkg.sh # ./bootstrap-vcpkg.bat for Windows $ ./vcpkg integrate install $ ./vcpkg install triton

root@kitploit:~
إذا كان الإصدار قديمًا، يرجى [إنشاء مشكلة أو طلب سحب](https://github.com/Microsoft/vcpkg) في مستودع vcpkg.


# المساهمون

* [**Alberto Garcia Illera**](https://twitter.com/algillera) - أتمتة كروز
* [**Alexey Vishnyakov**](https://vishnya.xyz/) - ISP RAS
* [**Black Binary**](https://github.com/black-binary) - n/a
* [**Christian Heitman**](https://github.com/cnheitman) - Quarkslab
* [**Daniil Kuts**](https://github.com/apach301) - ISP RAS
* [**Jessy Campos**](https://github.com/ek0) - n/a
* [**Matteo F.**](https://twitter.com/fvrmatteo) - n/a
* [**Pierrick Brunet**](https://github.com/pbrunet) - Quarkslab
* [**PixelRick**](https://github.com/PixelRick) - n/a
* [**Romain Thomas**](https://twitter.com/rh0main) - Quarkslab
* [**وغيرهم الكثير**](https://github.com/JonathanSalwan/Triton/graphs/contributors)


## لقد استخدموا تريتون بالفعل

### الأدوات

* [Exrop](https://github.com/d4em0n/exrop): توليد تلقائي لسلسلة ROP.
* [Pimp](https://github.com/kamou/pimp): إضافة R2 مبنية على تريتون للتنفيذ التزامني والتحكم الكامل.
* [Ponce](https://github.com/illera88/Ponce): الفائز في مسابقة إضافة IDA 2016! التنفيذ الرمزي بنقرة واحدة!
* [QSynthesis](https://github.com/quarkslab/qsynthesis): مُركِّب الصندوق الرمادي الموجه لإزالة تشويش تعليمات التجميع.
* [TritonDSE](https://github.com/quarkslab/tritondse): مكتبة DSE مبنية على تريتون مع قدرات التحميل والاستكشاف.
* [Titan](https://github.com/archercreat/titan): Titan هو أداة إزالة الافتراضية لـ VMProtect باستخدام تريتون.

### الأوراق البحثية والمؤتمرات<ul dir="auto">
<li>
<b>Sydr-Fuzz: الاختبار المختلط المستمر والتحليل الديناميكي لدورة حياة تطوير الأمان</b><br />
 <b>محاضرة في</b>: مؤتمر Ivannikov ISP RAS المفتوح، موسكو، روسيا، 2022. [<a href="publications/ISPOPEN2022-sydr-fuzz.pdf">ورقة</a>] [<a href="publications/ISPOPEN2022-slide-sydr-fuzz-vishnyakov.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Vishnyakov A., Kuts D., Logunova V., Parygina D., Kobrin E., Savidov G., Fedotov A.<br />
 <b>الملخص</b>: <em>في الوقت الحالي، هناك طلب كبير على أطر التحليل الديناميكي الآلي للاختبار المستمر لضمان سلامة البرامج وتلبية متطلبات دورة حياة تطوير الأمان (SDL). تتجاوز كفاءة تقنيات الاختبار المختلط المتطورة في اكتشاف الأخطاء الأمنية الاختبار الموجه بالتغطية المستخدم على نطاق واسع. نقترح خط أنابيب تحليل ديناميكي محسّن للاستفادة من إنتاجية اكتشاف الأخطاء الآلي القائم على الاختبار المختلط. نقوم بتنفيذ خط الأنابيب المقترح في مجموعة أدوات الاختبار المستمر Sydr-Fuzz التي تعمل بواسطة منسق الاختبار المختلط، وتدمج أداة DSE الخاصة بنا Sydr مع libFuzzer و AFL++. تتضمن Sydr-Fuzz أيضًا أدوات فحص المسندات الأمنية، وأداة فرز الأعطال Casr، وأدوات لتقليل المجموعة وجمع التغطية. تُظهر مقارنة أداء أداة الاختبار المختلط لدينا مع الحلول البديلة المتطورة تفوقها على أدوات الاختبار الموجهة بالتغطية مع بقائها على نفس المستوى مع أدوات الاختبار المختلط المتقدمة. علاوة على ذلك، نؤكد على أهمية نهجنا من خلال اكتشاف 85 ثغرة برمجية حقيقية جديدة في إطار مشروع OSS-Sydr-Fuzz. أخيرًا، نفتح كود مصدر Casr للمجتمع لتسهيل فحص الأعطال الحالية.</em>
</li><br/>
<li>
<b>الحل المتفائل القوي للتنفيذ الرمزي الديناميكي</b><br />
 <b>محاضرة في</b>: ورشة Ivannikov التذكارية، قازان، روسيا، 2022. [<a href="publications/IVMEM2022-strong-optimistic-parygina.pdf">ورقة</a>] [<a href="publications/IVMEM2022-slide-strong-optimistic-parygina.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Parygina D., Vishnyakov A., Fedotov A.<br />
 <b>الملخص</b>: <em>التنفيذ الرمزي الديناميكي (DSE) هو وسيلة فعالة للاختبار الآلي للبرامج واكتشاف الأخطاء. إنه يزيد من تغطية الكود من خلال استكشاف الفروع المعقدة أثناء الاختبار المختلط. تقوم أدوات DSE بعكس الفروع على طول مسار تنفيذ معين وتساعد أداة الاختبار على فحص أجزاء البرنامج التي لم تكن متاحة سابقًا. غالبًا ما تواجه DSE مشاكل الإفراط في القيود ونقص القيود. الأولى تؤدي إلى تعقيد كبير في التحليل بينما تسبب الثانية تنفيذًا رمزيًا غير دقيق. نقترح طريقة حل متفائل قوية تزيل قيود مسند المسار غير ذات الصلة لعكس الفرع المستهدف. نحن نلغي القيود الرمزية التي لا يعتمد عليها الفرع المستهدف من ناحية التحكم. علاوة على ذلك، نتعامل بشكل منفصل مع الفروع الرمزية التي تحتوي على تعليمات نقل تحكم متداخلة تنقل التحكم إلى ما وراء نطاق الفرع الأصلي، مثل return، goto، break، إلخ. نقوم بتنفيذ الطريقة المقترحة في أداة التنفيذ الرمزي الديناميكي الخاصة بنا Sydr. نقيم الإستراتيجية المتفائلة القوية، والإستراتيجية المتفائلة التي تحتوي فقط على نفي القيد الأخير، ومزيجها. تظهر النتائج أن المزيج بين الإستراتيجيات يساعد في زيادة إما تغطية الكود أو متوسط عدد الفروع المعكوسة بشكل صحيح لكل دقيقة واحدة. من الأمثل تطبيق كلتا الإستراتيجيتين معًا على عكس التكوينات الأخرى.</em>
</li><br/>
<li>
<b>التوليف الرمادي للبرامج: نهج جديد لمهاجمة إبهام تدفق البيانات</b><br />
 <b>محاضرة في</b>: Blackhat USA، لاس فيغاس، نيفادا، 2021. [<a href="publications/BHUSA2021-David-Greybox-Program-Synthesis.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Robin David<br />
 <b>الملخص</b>: <em>تقدم هذه المحاضرة أحدث التطورات في التوليف البرمجي المطبق لفك التعتيم. تهدف إلى إزالة الغموض عن تقنية التحليل هذه من خلال إظهار كيف يمكن تطبيقها على التعتيم. خاصة أن تطبيق Qsynthesis الذي تم إصداره لهذه المحاضرة يظهر سير عمل كامل من البداية إلى النهاية لفك تعليمات التجميع المعتمة وإعادتها إلى تعليمات محسنة (تم فك تعتيمها) وإعادة تجميعها في الثنائي.</em>
</li><br/>
<li>
<b>من الكود المصدري إلى حالة اختبار التعطل عبر أتمتة اختبار البرامج</b><br />
 <b>محاضرة في</b>: C&ESAR، رين، فرنسا، 2021. [<a href="publications/CESAR2021_robin-david-paper.pdf">ورقة</a>] [<a href="publications/CESAR2021_robin-david-slide.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Robin David, Jonathan Salwan, Justin Bourroux<br />
 <b>الملخص</b>: <em>تقدم هذه الورقة نهجًا لأتمتة عملية اختبار البرامج من الكود المصدري إلى الاختبار الديناميكي للبرنامج المترجم. بشكل أكثر تحديدًا، من تقرير تحليل ثابت يشير إلى تنبيهات على أسطر المصدر، فإنها تمكن الاختبار من تغطية هذه الأسطر ديناميكيًا وبشكل انتهازي للتحقق مما إذا كانت يمكن أن تؤدي إلى تعطل أم لا. النتيجة هي مجموعة اختبار تسمح بتغطية التنبيهات وتفعيلها إذا كانت إيجابية حقيقية. تناقش هذه الورقة المنهجية المستخدمة لتتبع التنبيهات في الثنائي المترجم، وعملية اختيار محركات الاختبار والنتائج التي تم الحصول عليها على تنفيذ مكدس TCP/IP للأنظمة المضمنة وإنترنت الأشياء.</em>
</li><br/>
<li>
<b>المسندات الأمنية الرمزية: صيد نقاط ضعف البرامج</b><br />
 <b>محاضرة في</b>: مؤتمر Ivannikov ISP RAS المفتوح، موسكو، روسيا، 2021. [<a href="publications/ISPOPEN2021-security-predicates-vishnyakov.pdf">ورقة</a>] [<a href="publications/ISPOPEN2021-slide-security-predicates-vishnyakov.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: A.Vishnyakov, V.Logunova, E.Kobrin, D.Kuts, D.Parygina, A.Fedotov<br />
 <b>الملخص</b>: <em>التنفيذ الرمزي الديناميكي (DSE) هو أداة قوية لاستكشاف المسار أثناء الاختبار المختلط واكتشاف الأخطاء تلقائيًا. نقترح مسندات أمنية للكشف الفعال عن السلوك غير المحدد وأخطاء انتهاك الوصول إلى الذاكرة. في البداية، ننفذ البرنامج بشكل رمزي على المسارات التي لا تثير أي أخطاء (قد يستكشف الاختبار المختلط هذه المسارات). ثم نبني مسندًا رمزيًا أمنيًا للتحقق من حالة خطأ معينة. وبالتالي، يمكننا تغيير تدفق بيانات البرنامج لاستحداث نقاط ضعف مثل إلغاء الإشارة إلى المؤشر الفارغ، القسمة على الصفر، الوصول خارج الحدود، أو فيض العدد الصحيح. على عكس التحليل الثابت، لا يقتصر التنفيذ الرمزي الديناميكي على الإبلاغ عن الأخطاء بل يولد أيضًا بيانات إدخال جديدة لإعادة إنتاجها. علاوة على ذلك، نقدم نمذجة دلالات الوظائف للدوال الشائعة في مكتبات C/C++ القياسية. نهدف إلى نمذجة تدفق التحكم داخل دالة بصيغة رمزية واحدة. هذا يساعد في اكتشاف الأخطاء، ويسرع استكشاف المسار، ويتغلب على القيود الزائدة في مسند المسار. نقوم بتنفيذ التقنيات المقترحة في أداة التنفيذ الرمزي الديناميكي الخاصة بنا Sydr. وبالتالي، نستخدم طرقًا قوية من Sydr مثل تقطيع مسند المسار الذي يزيل القيود غير ذات الصلة. نقدم Juliet Dynamic لقياس دقة أدوات اكتشاف الأخطاء الديناميكية. يتحقق نظام الاختبار أيضًا من أن المدخلات المولدة تفعل أدوات التعقيم. نقيم دقة Sydr لـ 11 CWE من مجموعة اختبار Juliet. تظهر Sydr دقة إجمالية تبلغ 95.59%. نجعل قطع تقييم Sydr متاحة للجمهور لتسهيل إعادة إنتاج النتائج.</em>
</li><br/>
<li>
<b>نحو استدلال المؤشرات الرمزية في التنفيذ الرمزي الديناميكي</b><br />
 <b>محاضرة في</b>: ورشة Ivannikov التذكارية، نيجني نوفغورود، روسيا، 2021. [<a href="publications/IVMEM2021-symbolic-pointers-kuts.pdf">ورقة</a>] [<a href="publications/IVMEM2021-slide-symbolic-pointers-kuts.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Daniil Kuts<br />
 <b>الملخص</b>: <em>التنفيذ الرمزي الديناميكي هو تقنية مستخدمة على نطاق واسع لاختبار البرامج الآلي، مصممة لاستكشاف مسارات التنفيذ واكتشاف أخطاء البرامج. أصبح النهج المختلط منتشرًا مؤخرًا، عندما يكون الهدف الرئيسي للتنفيذ الرمزي هو مساعدة أداة الاختبار على زيادة تغطية البرنامج. كلما زاد عدد الفروع التي يمكن للمنفذ الرمزي عكسها، زادت فائدته لأداة الاختبار. غالبًا ما يعتمد تدفق التحكم في البرنامج على قيم الذاكرة، والتي يتم الحصول عليها عن طريق حساب فهارس العناوين من إدخال المستخدم. ومع ذلك، فإن معظم أدوات DSE لا تدعم مثل هذه التبعيات، لذا فهي تفقد بعض فروع البرنامج المرغوبة. نقوم بتنفيذ استدلال العناوين الرمزية عند قراءات الذاكرة في أداة التنفيذ الرمزي الديناميكي الخاصة بنا Sydr. يتم تحديد مناطق الوصول إلى الذاكرة الممكنة إما عن طريق تحليل التعبيرات الرمزية لعناوين الذاكرة، أو البحث الثنائي باستخدام SMT-solver. نقترح تقنية خطية محسنة لنمذجة الوصول إلى الذاكرة. تتم مقارنة طرق نمذجة الذاكرة المختلفة على مجموعة من البرامج. يظهر تقييمنا أن معالجة العناوين الرمزية تسمح باكتشاف فروع رمزية جديدة وزيادة تغطية البرنامج.</em>
</li><br/>
<li>
<b>QSynth: نهج قائم على التوليف البرمجي لفك تعتيم الثنائيات</b><br />
 <b>محاضرة في</b>: BAR، سان دييغو، كاليفورنيا، 2020. [<a href="publications/BAR2020-qsynth-robin-david.pdf">ورقة</a>]<br />
 <b>المؤلفون</b>: Robin David, Luigi Coniglio, Mariano Ceccato<br />
 <b>الملخص</b>: <em>نقدم نهجًا عامًا يستفيد من كل من DSE والتوليف البرمجي لتوليف البرامج المعتمة بنجاح باستخدام Mixed-Boolean-Arithmetic و Data-Encoding أو Virtualization. خوارزمية التوليف المقترحة هي تعداد توليف غير متصل موجه بواسطة بحث أولي من أعلى إلى أسفل. نظهر فعاليتها ضد أدوات التعتيم المتطورة وقابلية التوسع حيث تتفوق على الأساليب المماثلة الأخرى القائمة على التوليف. نظهر أيضًا فعاليتها في وجود التعتيم المركب (مزيج من تقنيات مختلفة). هذا العمل المستمر يسلط الضوء على فعالية التوليف لاستهداف أنواع معينة من التعتيم ويفتح الطريق أمام خوارزميات أكثر قوة واستراتيجيات تبسيط.</em>
</li><br/>
<li>
<b>Sydr: التنفيذ الرمزي الديناميكي المتطور</b><br />
 <b>محاضرة في</b>: مؤتمر Ivannikov ISP RAS المفتوح، موسكو، روسيا، 2020. [<a href="publications/ISPRAS2020-sydr.pdf">ورقة</a>] [<a href="publications/ISPOPEN2020-slide-sydr-vishnyakov.pdf">شريحة</a>] [<a href="https://www.ispras.ru/conf/2020/video/compiler-technology-11-december.mp4#t=6021">فيديو</a>]<br />
 <b>المؤلفون</b>: A.Vishnyakov, A.Fedotov, D.Kuts, A.Novikov, D.Parygina, E.Kobrin, V.Logunova, P.Belecky, S.Kurmangaleev<br />
 <b>الملخص</b>: <em>التنفيذ الرمزي الديناميكي (DSE) له تطبيقات هائلة في أمن الحاسوب (الاختبار، اكتشاف الثغرات، الهندسة العكسية، إلخ). نقترح عدة تحسينات في الأداء والدقة للتنفيذ الرمزي الديناميكي. تخطي التعليمات غير الرمزية يسمح ببناء مسند المسار أسرع بـ 1.2 إلى 3.5 مرة. المحرك الرمزي يبسط الصيغ أثناء التنفيذ الرمزي. تقطيع مسند المسار يزيل العوامل غير ذات الصلة من استعلامات الحلال. نتعامل مع كل جدول قفز (عبارة switch) كفروع متعددة ونصف طريقة التنفيذ الرمزي للبرامج متعددة الخيوط. تم تنفيذ الحلول المقترحة في أداة Sydr. تقوم Sydr بعكس الفروع في مسند المسار. تجمع Sydr بين أداة التنفيذ الثنائي الديناميكي DynamoRIO والمحرك الرمزي Triton.</em>
</li><br/>
<li>
<b>فك التعتيم الرمزي: من الكود الافتراضي عودةً إلى الأصلي</b><br />
 <b>محاضرة في</b>: DIMVA، باريس-ساكلاي، فرنسا، 2018. [<a href="publications/DIMVA2018-deobfuscation-salwan-bardin-potet.pdf">ورقة</a>] [<a href="publications/DIMVA2018-slide-deobfuscation-salwan-bardin-potet.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Jonathan Salwan, Sébastien Bardin, Marie-Laure Potet<br />
 <b>الملخص</b>: <em>أخذت حماية البرامج مكانًا مهمًا خلال العقد الماضي لحماية البرامج الشرعية من الهندسة العكسية أو العبث. تعتبر المحاكاة الافتراضية (Virtualization) واحدة من أفضل الدفاعات ضد هذه الهجمات. نقدم نهجًا عامًا يعتمد على استكشاف المسار الرمزي، والتلوث (taint) وإعادة الترجمة يسمح باستعادة، من كود افتراضي، كود غير افتراضي متطابق دلاليًا مع الكود الأصلي وقريب في الحجم. نحدد معايير ومقاييس لتقييم أهمية نتائج فك التعتيم من حيث الصحة والدقة. أخيرًا، نقترح إعدادًا مفتوح المصدر يسمح بتقييم النهج المقترح ضد عدة أشكال من المحاكاة الافتراضية.</em>
</li><br/>
<li>
<b>فك تعتيم حماية البرامج القائمة على الآلة الافتراضية</b><br />
 <b>محاضرة في</b>: SSTIC، رين، فرنسا، 2017. [<a href="publications/SSTIC2017-French-Article-desobfuscation_binaire_reconstruction_de_fonctions_virtualisees-salwan_potet_bardin.pdf">ورقة فرنسية</a>] [<a href="publications/SSTIC2017_Deobfuscation_of_VM_based_software_protection.pdf">شريحة إنجليزية</a>] [<a href="https://static.sstic.org/videos2017/SSTIC_2017-06-07_P08.mp4">فيديو فرنسي</a>]<br />
 <b>المؤلفون</b>: Jonathan Salwan, Sébastien Bardin, Marie-Laure Potet<br />
 <b>الملخص</b>: <em>في هذا العرض، نصف نهجًا يتكون من تحليل آلي لحماية البرامج القائمة على الآلة الافتراضية وإعادة ترجمة نسخة جديدة من الثنائي بدون هذه الحماية. يعتمد هذا النهج الآلي على تنفيذ رمزي موجه بواسطة تحليل التلوث وبعض سياسات التجسيد، ثم على إعادة كتابة ثنائية باستخدام LLVM transition.</em>
</li><br/>
<li>
<b>كيف يمكن لـ Triton المساعدة في عكس هندسة حماية البرامج القائمة على الآلة الافتراضية</b><br />
 <b>محاضرة في</b>: CSAW SOS، نيويورك، نيويورك، 2016. [<a href="publications/CSAW2016-SOS-Virtual-Machine-Deobfuscation-RThomas_JSalwan.pdf">شريحة</a>]<br />
 <b>المؤلفون</b>: Jonathan Salwan, Romain Thomas<br />
 <b>الملخص</b>: <em>الجزء الأول من المحاضرة سيكون مقدمة لإطار Triton لعرض مكوناته وشرح كيفية عملها معًا. ثم الجزء الثاني سيتضمن عروضًا توضيحية حول كيفية عكس هندسة حماية الآلة الافتراضية باستخدام تحليل التلوث، والتنفيذ الرمزي، وتبسيطات SMT وتحسينات LLVM-IR.</em>
</li><br/>
<li>
<b>التحليل الثنائي الديناميكي والأكواد المعتمة</b><br  />
 <b>محاضرة في</b>: St'Hack، بوردو، فرنسا، 2016. [<a href="publications/StHack2016_Dynamic_Binary_Analysis_and_Obfuscated_Codes_RThomas_JSalwan.pdf">شريحة</a>]<br  />
 <b>المؤلفون</b>: Jonathan Salwan, Romain Thomas<br />
 <b>الملخص</b>: <em>في هذا العرض سنتحدث عن كيف يمكن لتحليل ثنائي ديناميكي (DBA) مساعدة مهندس الهندسة العكسية في عكس هندسة الكود المعتم. سنقدم أولاً بعض تقنيات التعتيم الأساسية ثم نوضح كيف يمكن كسر بعض الأشياء (باستخدام إطار عمل DBA مفتوح المصدر - Triton) مثل كشف المسندات غير الشفافة، إعادة بناء CFG، إيجاد الخوارزمية الأصلية، عزل البيانات الحساسة وأكثر من ذلك... ثم نختم بعرض توضيحي وبضع كلمات عن عملنا المستقبلي.</em>
</li><br/>
<li>
<b>كيف يمكن لـ Triton المساعدة في تحليل الثنائيات المعتمة</b><br  />
 <b>نشر في</b>: مجلة MISC العدد 82، 2015. [<a href="publications/MISC-82_French_Paper_How_Triton_may_help_to_analyse_obfuscated_binaries_RThomas_JSalwan.pdf">مقال فرنسي</a>]<br  />
 <b>المؤلفون</b>: Jonathan Salwan, Romain Thomas<br />
 <b>الملخص</b>: <em>يستخدم تعتيم الثنائيات لحماية الملكية الفكرية للبرامج. هناك أنواع مختلفة من التعتيم ولكن بشكل عام، يحول بنية ثنائية إلى بنية ثنائية أخرى مع الحفاظ على نفس الدلالات. الهدف من التعتيم هو ضمان أن المعلومات الأصلية "تغرق" في معلومات غير مفيدة مما يجعل الهندسة العكسية أصعب. في هذا المقال سنوضح كيف يمكننا تحليل برنامج معتم وكسر بعض أنواع التعتيم باستخدام إطار Triton.</em>
</li><br/>
<li>
<b>Triton: إطار تنفيذ رمزي ملموس (Concolic Execution Framework)</b><br  />
 <b>محاضرة في</b>: SSTIC، رين، فرنسا، 2015. [<a href="publications/SSTIC2015_French_Paper_Triton_Framework_dexecution_Concolique_FSaudel_JSalwan.pdf">ورقة فرنسية</a>] [<a href="publications/SSTIC2015_English_slide_detailed_version_Triton_Concolic_Execution_FrameWork_FSaudel_JSalwan.pdf">شريحة إنجليزية مفصلة</a>] <br />
 <b>المؤلفون</b>: Jonathan Salwan, Florent Saudel<br />
 <b>الملخص</b>: <em>هذه المحاضرة حول إصدار Triton، إطار تنفيذ رمزي ملموس يعتمد على Pin. يوفر مكونات مثل محرك تلوث، ومحرك تنفيذ رمزي ديناميكي، ومحرك لقطة، وترجمة تعليمات x64 إلى SMT2، وواجهة Z3 لحل القيود وربط Python. بناءً على هذه المكونات، يوفر Triton إمكانية بناء أدوات لأبحاث الثغرات أو المساعدة في الهندسة العكسية.</em>
</li><br/>
<li>
<b>تحليل السلوك الديناميكي باستخدام التنفيذ الثنائي (Binary Instrumentation)</b><br  />
 <b>محاضرة في</b>: St'Hack، بوردو، فرنسا، 2015. [<a href="publications/StHack2015_Dynamic_Behavior_Analysis_using_Binary_Instrumentation_Jonathan_Salwan.pdf">شريحة</a>]<br  />
 <b>المؤلفون</b>: Jonathan Salwan<br />
 <b>الملخص</b>: <em>يمكن اعتبار هذه المحاضرة كالجزء الثاني من محاضرتنا في SecurityDay. في الجزء السابق، تحدثنا عن كيف كان من الممكن تغطية دالة مستهدفة في الذاكرة باستخدام نهج التنفيذ الرمزي الديناميكي (DSE). تغطية دالة (أو حالاتها) لا يعني إيجاد جميع الثغرات، بعض الثغرات لا تؤدي لتعطل البرنامج. لذلك يجب تنفيذ تحليلات محددة لإيجاد أخطاء محددة. هذه التحليلات تعتمد على التنفيذ الثنائي وتحليل سلوك البرنامج أثناء التشغيل. في هذه المحاضرة، سنرى كيف يمكن إيجاد الأنواع التالية من الأخطاء: off-by-one، تجاوز سعة الكومة/المكدس، use-after-free، format string و {write, read}-what-where.</em>
</li><br/>
<li>
<b>تغطية دالة باستخدام نهج التنفيذ الرمزي الديناميكي</b><br  />
 <b>محاضرة في</b>: Security Day، ليل، فرنسا، 2015. [<a href="publications/SecurityDay2015_dynamic_symbolic_execution_Jonathan_Salwan.pdf">شريحة</a>]<br  />
 <b>المؤلفون</b>: Jonathan Salwan<br />
 <b>الملخص</b>: <em>تتعلق هذه المحاضرة بالتحليل الثنائي والتنفيذ. سنرى كيف يمكن استهداف دالة محددة، أخذ لقطة من سياق الذاكرة/السجلات قبل الدالة، ترجمة التنفيذ إلى تمثيل وسيط، تطبيق تحليل تلوث بناءً على هذا التمثيل الوسيط، بناء/حفظ الصيغ للتنفيذ الرمزي الديناميكي (DSE)، توليد قيمة ملموسة للذهاب عبر مسار محدد، استعادة سياق الذاكرة/السجلات وتوليد قيمة ملموسة أخرى للذهاب عبر مسار آخر ثم تكرار هذه العملية حتى يتم تغطية الدالة المستهدفة.</em>
</li>
</ul>

## استشهد بـ Triton```latex
@inproceedings{SSTIC2015-Saudel-Salwan,
  author    = {Saudel, Florent and Salwan, Jonathan},
  title     = {Triton: A Dynamic Symbolic Execution Framework},
  booktitle = {Symposium sur la s{\'{e}}curit{\'{e}} des technologies de l'information
               et des communications},
  series    = {SSTIC},
  pages     = {31--54},
  address   = {Rennes, France},
  month     = jun,
  year      = {2015},
}
تنزيل الأداة