اضنك ستحب برامج الـ timeless debugger
مثلاً توجد QIRA
شاهد هذا الفيديو من geohot حول هذه الاداة
https://youtu.be/eGl6kpSajag?t=366
المبدأ هو ان الاداة تسجل كل التغييرات وتمكنك من السفر عبر الزمن الى اي نقطة بالمنقح. كل تغيير قمت به كل نقطة توقف كل تعليمة نفذت يتم تسجيلها.
اخطأت بشيء؟ يمكن الرجوع بالزمن لتلك النقطة.
http://qira.me/
لديه على يوتيوب تقريباً اربع فيديوهات عندما كان يقوم بعمل ستريم وهو يطور ويحسن بالاداة احدها 8 ساعات والاخر 4 و الثالث 2 والاخير حوالي 4 ساعات حول استخدامها لتحليل ثغرة
--------------
كذلك توجد اداة record-replay من موزيلا،
إقتباس :rr aspires to be your primary C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time.
هنا استخدمت لتحليل برنامج معقد مثل JavaScriptCore
https://blog.ret2.io/2018/06/19/pwn2own-2018-root-cause-analysis/
موقع الاداة ومعلومات اكثر عنها
https://rr-project.org/
شركة مايكروسوفت ايظاً تبنت الفكرة، الفريق الامني الخاص بها يستخدم هذه التقنية لتقليل الوقت والجهد، فعندما يتم ابلاغهم من قبل هكر عن ثغرة بدلاً من ان يستغرق الامر وقتاً طويلاً باعادة انتاج الخطوات التي اتبعها يمكنهم تسجيل هذه الخطوات والسفر بالزمن الى الامام او الى الوراء ورؤية ما حدث فعلاً.
https://msrc-blog.microsoft.com/2019/05/29/time-travel-debugging-its-a-blast-from-the-past/
لن اشرح كثيراً فهم اوصلوا الفكرة عن طريق تلك المقالة افضل بالف مرة مما يمكني شرحة وهذا جزء منها
إقتباس :Understanding time travel debugging
Whether you call it “Timeless debugging”, “record-replay debugging”, “reverse-debugging”, or “time travel debugging”, it’s the same idea: the ability to record the execution of a program. Once you have this recording, you can navigate forward or backward, and you can share with colleagues. Even better, an execution trace is a deterministic recording; everybody looking at it sees the same behavior at the same
.time. When a developer receives a TTD trace, they do not even need to reproduce the issue to travel in the execution trace, they can just navigate through the trace file
:There are usually three key components associated to time travel debugging
A recorder that you can picture as a video camera -
A trace file that you can picture as the recording file generated by the camera -
A replayer that you can picture as a movie player -
رغم انهم جعلوا الاداة متوفرة للعامة ولكنهم لم يجعلوا الاداة مفتوحة المصدر
اذاً هنالك طريقتان بنظري
الاولى هي بعمل MOD لمنقح x64dbg واضافية هذه التقنية الية عن طريق تحويل الكود من QIRA مثلاً اليه، ليس التقنية كلها بل فقط خاصية التسجيل وتشغيل التسجيل مرة اخرة، سيتم برمجة ميزة حفظ جميع المعلومات التي تم تسجيلها وتصدير ملف بالبيانات المسجلة وربما تصدير لودر جاهز لديه كامل المعلومات ويمكنة اعادتها من طرف اي شخص يريد كسر البرنامج او
ازالة الحماية عنه.
وربما نظيف خاصية المحاكاة عن طريق Unicorn لدعم الامر (الاخ
Coldzer0 برمج محاكي يستخدم Unicorn ويمكن ان نستفاد من خبرته)لكي يكون لدي كامل التحكم في الذاكرة
ولكن بهذه الحالة فاننا نقوم بانشاء تعديلات هائلة لـ x64dbg ولكن لها فائدة عظيمة جداً فهذا الـ MOD سيسهل عليك حياتك ليس فقط في عملية الاتمته بل السجل سيسهل
طريقة الكسر بسريال وهمي.
الطريقة الثانية هي برمجة اضافة لـ x64dbg تقوم بتسجيل التغييرات التي قمت بها بالاضافة الى الازرار التي قمت بالضغط عليها (F9 - F8 - F7 الخ) وتصدير سكربت، هذا السكربت نفس الاضافة يمكنك استيراده اليها لتقوم بتنفيذ ما قمت به من عمليات تعديل وغيرها.
للتخلص من الاعتمادية على العناوين نقوم بالاعتماد على الانماط patterns والتواقيع signatures
لذلك نحتاج تصميم نظام مثل flair الخاص بـ IDA pro