السلام عليكم و رحمة الله
احببت ان انشئ موضوع نتبادل فيه البحث و المعرفة عن
tls callback.
ان نجح التفاعل في هذا الموضوع، سوف ننتقل الى انشاء بشكل دوري موضوع جديد يعالج امر آخر في ميدان الهندسة العكسية...
tls callback
1- ما هي ؟
2- ميدان استعمالها ؟
3- وضع امثلة حية.
4- طرق كشفها.
لكم كل الحرية في نقل ما كتب عنها من مصادر اخرى و يحبذ ان لا تقتصر فقط على نقل روابط، بل من الأفضل ان يتم كتابة خلاصة ما تم فهمه بعد الاطلاع عليها.
اترك لكم المبادرة
الموضوع مفتوح للجميع...
ألي اعرفه ولو خبرتي بسيطة
يستعمل بالـ anti-debugging يتنفذ قبل الوصول الى Entry point يعني يعرف هل تستعمل منقح ام لا ويتنفذ قبل الوصول الى entrypoint h وينفذ التعليمات الي موجودة بالــ PeHEader
طريقة اكتشافه هو TLS لدية Section بالــ Pe Header نفتح البرنامج بواسطة مثلا PE Bear وبعدها بالــ tab .. وبعدها TLS وبعدها يوجد addressofCallbacks نعمل لها Follow ناخذ البيتات الاولى و نحولها الى big endian ويصبح عنوان نفتح المنقح و نبحث عن العنوان ونجده
وفي اكثر الحالات موجود بالــ export
وبالمنقحات مثلا x64dbg توجد اختيار tls callback
,ومثال برنامج Elcomsoft eXplorer for WhatsApp يستعملها البرنامج مضغوط Vmprotect
وهذا من كتاب الفريق
هذا تقريبا الي اعرفة ...
السلام عليكم و رحمة الله
آسف على اهمالي للموضوع، سوف اضع ان شاء الله ما توصلت اليه خلال اليومين القادمين...
جيد... و لاثراء الموضوع بامثلة حية...
المرفق يحتوي على اربعة (حالات) ملفات تنفيذية صغيرة الحجم (لتسهيل التنقيح)
يرجى القاء نظرة عليها و شرح آلية عملها...
(14-05-2020, 03:36 PM)YANiS كتب : [ -> ]جيد... و لاثراء الموضوع بامثلة حية...
المرفق يحتوي على اربعة (حالات) ملفات تنفيذية صغيرة الحجم (لتسهيل التنقيح)
يرجى القاء نظرة عليها و شرح آلية عملها...
جميل اخي بارك الله فيك خلي اشوف اقدر افهم شي منها
هذا مثال ، برنامج بلغة C
/***************************************** TLS Example Program
Compile With MSVC
********************************************/
#include
#pragma comment(linker, "/INCLUDE: tls_used")
void NTAPI TlsCallBac(PVOID h, DWORD dwReason, PVOID pv);
#pragma data_seg(".CRT$XLB")
PIMAGE_TLS_CALLBACK p_thread_callback = TlsCallBac;
#pragma data_seg()
void NTAPI TlsCallBac(PVOID h, DWORD dwReason, PVOID pv)
{
MessageBox(NULL, "In TLS", "In TLS", MB_OK);
return;
}
int main(int argc , char**argv)
{
MessageBox(NULL, "In Main", "In Main", MB_OK);
return 0;
}
شرح فلاشي كيف يتم الأمر من TiGa بإسخدام المنقح IDA
الملف المطبق عليه بالمرفقات
TLS (Thread Local Storage) IsDebuggerPresent TLS callback (english) (chinese)