PDA

View Full Version : سوال: چه جوری می شه یک واسطه بین ویندوز و برنامه ها ایجاد کرد؟



crackgns
چهارشنبه 06 شهریور 1387, 09:54 صبح
چه طوری میشه برنامه ای نوشت که بین ویندوز و برنامه ها یه واسطه باشه یعنی Event ها و یا کارهایی رو که برنامه می خوان انجام بدن رو دریافت کنه و اونا ای رو که میخواد برای اجرا به ویندوز بده(لطفآ کمک کنین که بتونم این برنامه رو بنویسم زبونش هم هیچ فرقی نداره)

mehrzad007
چهارشنبه 06 شهریور 1387, 22:59 عصر
ميخوايين دقيقا چيكار كنيد ؟ من هدف شما رو از اين كار درك نميكنم.

crackgns
پنج شنبه 07 شهریور 1387, 08:35 صبح
هدفم اینه که از فعالیت برنامه های مخرب جلوگیری کنم و نذارم که ویروس ها هر کاری میخوان انجام بدن؟!

Zaparo
پنج شنبه 07 شهریور 1387, 09:03 صبح
ببینید ویندوز از یه مکانیزم به اسم Messaging برای پردازش کاره استفاده میکنه (تو درس سیستم عامل میگن معمولا") این مکانیزم به اینصورت که هر رخدادی یه msg داره که سیستم عامل متوجه اون میشه و اون رو داخل صف msg هاش میزاره حالا کاری که شما میخوای بکنی اینه که بیای اون رخداد ها رو خودت فیلتر کنی که کاره خیلی سختی تو MSDN دنبال توابعی مثل SendMeesage و PostMessage و PeekMessage و ... باش کمکت میکنن راه دیگه ای به ذهنم نمیرسه

crackgns
پنج شنبه 07 شهریور 1387, 11:59 صبح
درسته اما اینطوری مشکل اینجاست که message ها رو چطوری بدست بیارم.البته میشه message هایی که کاربر به سیستم میده رو اونم به صورت محدود بدست آورد اما message هایی رو که یه برنامه به سیستم میده رو چطور بدست آورد؟

Zaparo
پنج شنبه 07 شهریور 1387, 16:31 عصر
GetMessage و یا PeekMessage جواب گو نیست؟

crackgns
شنبه 09 شهریور 1387, 08:46 صبح
Message ها زمانی برای پنجره ها ارسال می شن که کاربر یه کاری رو انجام بده ام من می خوام بفهمم یه برنامه خودش بدون اینکه کاربر دستی داشته باشه می خواد چه کارهایی رو بکنه؟

Zaparo
شنبه 09 شهریور 1387, 09:17 صبح
تا اونجایی که من میدونم هر عملی یه Message دراه جستجو کن پیدا میشه

Nima NT
شنبه 09 شهریور 1387, 22:15 عصر
به نظر من شما به جای ساخت واسطه ، بیا و از ماشین مجازی استفاده کن ، مطلب و سورس هم واسش ریخته.
تو ماشین مجازی شما برای هر دستورالعمل یه شناسه تعریف میکنی و دستورات اسمبلی وارد شده رو با جدول دستورالعمل های خودت تو یه محیط ایزوله اجرا میکنی.
دسترسی به این محیط کار آسونی نیست. و میتونه تا حدودی جوابگو باشه.

crackgns
یک شنبه 10 شهریور 1387, 08:49 صبح
ببخشید آقای Nima NT میشه یه منبع معرفی کنی و یه کم بیشتر راهنمایی کنی؟

crackgns
پنج شنبه 14 شهریور 1387, 14:42 عصر
لطفآ یکی بگه که چطوری می تونم بفهمم که یه برنامه داره چه Message هایی رو ارسال میکنه [با GetMessage و PostMessage فقط میشه فهمید چه Message(پیغام)هایی داره برای برنامه ارسال میشه اما نمیشه فهمید خود برنامه داره چه Message هایی رو میفرسته]

vb_bmw
شنبه 16 شهریور 1387, 10:05 صبح
آقا من یه چیزایی توی یه Ebook خونده بودم که با یکی از این +Com ها میشه رفتار سیستم هامل رو کنترل کرد.

فکر کنم راه خوبی باشه این روش!نمی دونم منظورم رو می فهمید یا نه!من می گم بیایم با اون +Com رفتار رو رد بزنیم بعد بیایم با یه WindowsService که خودمون می نویسیم قبلی رو کنترل می کنیم.اگه موردی بود که میخواتیم اینتراپت CPU رو کنسل می کنیم!

نظرتون چیه؟

crackgns
شنبه 16 شهریور 1387, 12:18 عصر
روش خوبیه.اما یه کم پیچیده و وقت گیره.من خودم فکر کنم با Hook کردن توابع API بشه فهمید که ویروس ها چی کار میکنن.ببینم درست میگم؟؟اما من نمیدونم چطوری می شه توابع API رو Hook کرد.لطفآ اگه از دوستان و اساتید عزیز کسی می دونه چطوری میشه این کار رو انجام داد از پایه طوری که ما هم بفهمیم آموزش بده.
خیلی ازتون ممنون میشم.

crackgns
جمعه 22 شهریور 1387, 22:11 عصر
آقا کسی نمی خواد به ما کمک کنه؟

Gabriel
جمعه 22 شهریور 1387, 23:29 عصر
آقای چیز میدونم دنبال چی هستی. منم یه مدت خیلی دنبالش بودم. فکر می کنم اینا کمکت کنه اگه کمکت نکرد یا از خودم بپرس یا inject into handle of ... رو توی google سرچ کن. چیزی که می خوای اینه که process خودت رو توی یک process دیگه inject کنی. اول اینو بدون که باید handle اون process بخصوص رو بدست بیاری....
http://forums.devshed.com/c-programming-42/unmanaged-dll-injection-and-usage-in-c-451185.html
http://www.codersource.net/mfc_ipc_wm_copydata.aspx
http://www.dreamincode.net/forums/showtopic40011.htm
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/d8ef3043-4dfb-4945-9cec-ec964f489db6/

شاید یکم به نظرت بی ربط بیاد ولی اگه مفهومشو خوب بفهمی میتونی تو برنامت ازش استفاده خیلی خوبی بکنی. برای نوشتن یه anti virus هم این چیزا جزء ملزومات و چیزهای اولیه هست.

crackgns
شنبه 23 شهریور 1387, 09:40 صبح
آقا من یه چیز رو نمیفهمم اونم اینه که وقتی process خودم رو توی یک process دیگه inject کردم چطوری می تونم بفهمم که اون برنامه داره چی کار میکنه و جلوی بعضی کاراشو بگیرم.یه کم راجع به مکانیزم این کار توضیح بده.مثلآ فرض کن می خوام وقتی یه ویروس خواست یه فایل رو توی یه دایرکتوری خاص کپی کرد جلوشو بگیرم.
خیلی ممنون.

Gabriel
شنبه 23 شهریور 1387, 14:17 عصر
نه دیگه نشد.... آخه قبل از اینکه بخوای از کپی کردن یه فایل توسط یه برنامه جلوگیری کنی، قبلش باید بدونی که این کار توسط کی داره انجام میشه. آیا اون برنامه ویروس هست؟ این کار اون چه خطری داره.
اینی که میگی می خوام از کپی کردن یه فایل توسط یه برنامه جلوگیری کنم یعنی اینکه کلا از کپی شدن فایلها جلوگیری کنی.
مگر اینکه اول تشخیص بدی که اون پروسسی که دستور کپی کردن فایل رو داده ویروس بوده که برای این کار بهتره که کلا جلوی تمام کارهای اون پروسس رو بگیری
برای اینکه جلوی کارهای یه پروسس رو بگیری میتونی مثلا به Message هایی که از اون برنامه فرستاده میشه گوش کنی و در kernel اجازه ندی که اون پروسس message بفرسته.
راستش الان کد ندارم که برات بذارم ولی اگه بگردی پیدا می کنی. کلیتش همینه که می گم