شنبه, ۱۵ اردیبهشت, ۱۴۰۳ / 4 May, 2024
مجله ویستا
نوشتن keylogger نرمافزاری
●Windows hook
هسته بسیاری از keyloggerها با استفاده از مکانیزم Windows hook بنا شده است. Hook نقطهای در مکانیزم مدیریت پیامهای سیستم ویندوز است که برنامههای مختلف میتوانند با نصب یک زیربرنامه ترافیک پیامها را قبل از رسیدن به برنامه مقصد شنود نمایند. Hook پانزده نوع دارد که هر یک از آنها به رویدادی خاصی از سیستم مرتبط هستند. پروتوتایپ hook به صورت زیر است:
زنجیره hook لیستی از اشارهگرها به زیربرنامههای hook است. همزمان با ایجاد پیام جدیدی از یک نوع hook خاص، سیستم پیام را یک به یک به همه زیربرنامههایی که در زنجیره hook به آنها اشاره شده است ارسال مینماید.یک زیربرنامه hook میتواند بر ارسال پیام در زنجیره hook نظارت داشته و یا آن را تغییر دهد. علاوه بر این امکان ممانعت از رسیدن پیام به زیربرنامه بعدی در لیست و یا به برنامه مقصد وجود دارد.تابع SetWindowsHookEx که پروتوتایپی مشابه زیر دارد یک زیربرنامه در ابتدای زنجیره hook قرار میدهد.نمونههای مختلفی از متن برنامههای Keylogger از سایت http://www.planetsourcecode.com قابل دریافت است. در صورتی آشنایی با طرز کار windows hooks نوشتن keylogger دشوار نبوده و نیاز به کد زیادی ندارد. تابع InstallHook که از یکی از keyloggerها برداشته شده است فایلی که برای ثبت گزارشات استفاده میشود را مشخص نموده، زیربرنامه ثبت فعالیتهای صفحهکلید KeyboardProc را در زنجیره hook نصب میکند. این کار با فراخوانی تابع SetWindowsHooksEx انجام میشود.در شرایطی که کلا ۱۵ نوع hook وجود دارد، WH_KEYBOARD و WH_MOUSE برای نوشتن keylogger ضروری هستند. در اینجا WH_KEYBOARD شرح داده میشود و شرح سایر انواع hook در سایت http://msdn.microsoft.com قابل دسترسی است.
●WH_KEYBOARD
این hook برنامهها را قادر میسازد که بتوانند ترافیک پیامهای WM_KEYDOWN و WM_KEYUP که توسط GetMessage و PeekMessage بازگردانده میشوند را مانیتور نمایند. هرگاه یکی از توابع GetMessage و PeekMessage فراخوانی شوند و یک پیام مربوط به صفحه کلید (WM_KEYUP یا WM_KWYDOWN) فراخوانی شود، سیستمعامل اقدام به فراخوانی این زیربرنامه مینماید. پروتوتایپ تابع به شکل زیر است:
متن زیر KeyboardProc است که از یکی از keyloggerها گرفته شده است. این تابع فایل خروجی را باز نموده و حرف مرتبط با کلید فشرده شده را در آن مینویسد. در مواقعی که لازم باشد با فراخوانی تابع ToAscii کد کلید مجازی مشخص شده و وضعیت صفحه کلید به حرف یا حروف متناظر ترجمه میگردد.هرگاه رویدادی رخ دهد که توسط hook خاصی مانیتور میشود، سیستم عامل اولین زیربرنامه در زنجیره hook را فراخوانی میکند. هر زیربرنامه hook در لیست تصمیم میگیرد که رویداد را به زیربرنامه بعدی ارسال نماید یا خیر. در صورتی که بنا بر ارسال رویداد باشد از تابع CallNextHookEx استفاده میشود.
●مخفی کردن keylogger
روشهای مختلفی برای جلوگیری از نمایش نام یک keylogger فعال در مدیر وظیفه (task manager) یا لیست پردازنده وجود دارد. یک از این روشها باز کردن یک پنجره مخفی در هنگام روشن شده دستگاه و مقداردهی مناسب به پارامترهای لازمه به صورت زیر است.
هسته بسیاری از keyloggerها با استفاده از مکانیزم Windows hook بنا شده است. Hook نقطهای در مکانیزم مدیریت پیامهای سیستم ویندوز است که برنامههای مختلف میتوانند با نصب یک زیربرنامه ترافیک پیامها را قبل از رسیدن به برنامه مقصد شنود نمایند. Hook پانزده نوع دارد که هر یک از آنها به رویدادی خاصی از سیستم مرتبط هستند. پروتوتایپ hook به صورت زیر است:
زنجیره hook لیستی از اشارهگرها به زیربرنامههای hook است. همزمان با ایجاد پیام جدیدی از یک نوع hook خاص، سیستم پیام را یک به یک به همه زیربرنامههایی که در زنجیره hook به آنها اشاره شده است ارسال مینماید.یک زیربرنامه hook میتواند بر ارسال پیام در زنجیره hook نظارت داشته و یا آن را تغییر دهد. علاوه بر این امکان ممانعت از رسیدن پیام به زیربرنامه بعدی در لیست و یا به برنامه مقصد وجود دارد.تابع SetWindowsHookEx که پروتوتایپی مشابه زیر دارد یک زیربرنامه در ابتدای زنجیره hook قرار میدهد.نمونههای مختلفی از متن برنامههای Keylogger از سایت http://www.planetsourcecode.com قابل دریافت است. در صورتی آشنایی با طرز کار windows hooks نوشتن keylogger دشوار نبوده و نیاز به کد زیادی ندارد. تابع InstallHook که از یکی از keyloggerها برداشته شده است فایلی که برای ثبت گزارشات استفاده میشود را مشخص نموده، زیربرنامه ثبت فعالیتهای صفحهکلید KeyboardProc را در زنجیره hook نصب میکند. این کار با فراخوانی تابع SetWindowsHooksEx انجام میشود.در شرایطی که کلا ۱۵ نوع hook وجود دارد، WH_KEYBOARD و WH_MOUSE برای نوشتن keylogger ضروری هستند. در اینجا WH_KEYBOARD شرح داده میشود و شرح سایر انواع hook در سایت http://msdn.microsoft.com قابل دسترسی است.
●WH_KEYBOARD
این hook برنامهها را قادر میسازد که بتوانند ترافیک پیامهای WM_KEYDOWN و WM_KEYUP که توسط GetMessage و PeekMessage بازگردانده میشوند را مانیتور نمایند. هرگاه یکی از توابع GetMessage و PeekMessage فراخوانی شوند و یک پیام مربوط به صفحه کلید (WM_KEYUP یا WM_KWYDOWN) فراخوانی شود، سیستمعامل اقدام به فراخوانی این زیربرنامه مینماید. پروتوتایپ تابع به شکل زیر است:
متن زیر KeyboardProc است که از یکی از keyloggerها گرفته شده است. این تابع فایل خروجی را باز نموده و حرف مرتبط با کلید فشرده شده را در آن مینویسد. در مواقعی که لازم باشد با فراخوانی تابع ToAscii کد کلید مجازی مشخص شده و وضعیت صفحه کلید به حرف یا حروف متناظر ترجمه میگردد.هرگاه رویدادی رخ دهد که توسط hook خاصی مانیتور میشود، سیستم عامل اولین زیربرنامه در زنجیره hook را فراخوانی میکند. هر زیربرنامه hook در لیست تصمیم میگیرد که رویداد را به زیربرنامه بعدی ارسال نماید یا خیر. در صورتی که بنا بر ارسال رویداد باشد از تابع CallNextHookEx استفاده میشود.
●مخفی کردن keylogger
روشهای مختلفی برای جلوگیری از نمایش نام یک keylogger فعال در مدیر وظیفه (task manager) یا لیست پردازنده وجود دارد. یک از این روشها باز کردن یک پنجره مخفی در هنگام روشن شده دستگاه و مقداردهی مناسب به پارامترهای لازمه به صورت زیر است.
نمایندگی زیمنس ایران فروش PLC S71200/300/400/1500 | درایو …
دریافت خدمات پرستاری در منزل
pameranian.com
پیچ و مهره پارس سهند
تعمیر جک پارکینگ
خرید بلیط هواپیما
ایران تهران انتخابات عراق دانشگاه تهران رهبر انقلاب مجلس شورای اسلامی دولت سیزدهم مجلس روز معلم نیکا شاکرمی حجاب
سیل آتش سوزی هواشناسی شهرداری تهران آموزش و پرورش باران قوه قضاییه پلیس هلال احمر معلم فضای مجازی زلزله
قیمت خودرو تورم سازمان هواشناسی سهام عدالت قیمت طلا خودرو بازار خودرو قیمت دلار قیمت سکه حقوق بازنشستگان بانک مرکزی ایران خودرو
مهران غفوریان ساواک موسیقی تلویزیون عمو پورنگ سریال سینمای ایران تبلیغات نمایشگاه کتاب مسعود اسکویی عفاف و حجاب دفاع مقدس
رژیم صهیونیستی فلسطین اسرائیل غزه آمریکا جنگ غزه روسیه ترکیه حماس نوار غزه انگلیس اوکراین
فوتبال پرسپولیس لیگ برتر سپاهان آتیلا حجازی باشگاه استقلال علی خطیر بازی جواد نکونام لیگ برتر ایران تراکتور رئال مادرید
اپل هوش مصنوعی فناوری گوگل ناسا عکاسی مدیران خودرو تلفن همراه
خواب کبد چرب طب سنتی فشار خون دیابت بیماری قلبی