PDA

View Full Version : سوال: چگونگی شناختن توابع اجرا شده و جلوگیری از آنها



BioHazard
پنج شنبه 22 اردیبهشت 1390, 14:45 عصر
سلام
من میخوام یک برنامه ای بنویسیم که یک نوع برنامه خاص رو مشخص کنیم براش و تمامی توابعی که داره CALL میکنه رو مشخص کنه و در صورت لزوم از اجرا شدن آن ها جلوگیری کنه....

سوال من اینه که چجوری میتونم اینکارو کنم؟

shahmohammadi
پنج شنبه 12 خرداد 1390, 21:30 عصر
با سلام.
من که چیزی به ذهنم نمی رسه. اما اینو بگم که یه راه برای جلوگیری تکرار فراخوانی توابع در برنامه، نوشتن الگوریتم به صورت پویا است، اگه در این مورد تحقیق کنید بهتره.
موفق باشید.

m.soleimani
پنج شنبه 12 خرداد 1390, 21:35 عصر
برای هر تابعی که می‌نویسی یه فلگ قرار بده زمان فراخوانی قبل از هر کاری به فلگ مورد نظر یه مقدار مشخص بده و در زمان‌های بعدی چک کن که توابعی که فلگ مورد نظرشون با مقدار خاصی مقدار دهی شده قابل اجرا نباشن یادت نره که باید به صورت استاتیک تعریف شده باشه تا توی فراخوانی‌های جدید دوباره تعریف نشه موفق باشی./

r00tkit
پنج شنبه 12 خرداد 1390, 22:38 عصر
تابع ها یعنی چی تابع های تابع های داخلی برنامه یا تابع های API مثل CreateFile و... ؟
اگه این جوری (یعنی تابع های ویندوز ) می خوای به راحتی می تونی یه سری تابع رو هوک کنی چه با DLL injection و تغییر IAT یا با روش detour

راه حل کرنل مود تابع های خودت رو تو کرنل هوک کن و توی تابع ID پروسس مورد نظرت رو چک کن ( چون system call ها تو کانتکس پروسسس که فراخوانی کرده اجرا می شه می تونی از PsGetCurrentProcessId استفاده کنی و IPD پروسس مورد نظر رو هم می تونی با IOCTL بفرستی

من هر دو روش رو انجام دادم اگه سوالی بود همین جا بپرس