PDA

View Full Version : شناسایی برنامه به عنوان ویروس



Mr'Jamshidy
شنبه 21 آبان 1390, 21:19 عصر
77795

آقا من یک برنامه امنیتی نوشتم (البته هنوز کامل نشده)
بعد اومدم این برنامه رو واسه امتحان کامپایلش کردم دیدم بلافاصله آنتی ویروسم بهش گیر داد و پاکش کرد

چی کار کنم آنتی ویروس بیخیال برنامه ما بشه؟

قسمت هایی هم که فکر میکردم باعث بروز این حالت بشه رو حذف کردم اما باز هم گیر داد
دیگه نمیدونم چی کار کنم

Mr'Jamshidy
دوشنبه 23 آبان 1390, 15:04 عصر
کسی نمیدونه باید چی کارش کنم؟

Veteran
دوشنبه 23 آبان 1390, 15:19 عصر
سورس .....

M.T.P
دوشنبه 23 آبان 1390, 15:30 عصر
یه سری کد ها هستن که باعث میشن برنامه از طرف بعضی آنتی ویروس ها بعنوان ویروس شناسایی بشه.
من تا حالا به دو مورد از این کدها برخورد کردم...
یکی وقتی با دستور FileCopy فایل exe برنامه جاری به فولدر Windows کپی میشه و چنانچه فایل از قبل باشه OverWrite کنه و بلافاصله مسیرش رو تو ریجستری Startup اضافه کنی و از همه مهمتر اینکه این کدها در Form_Load باشه.
بعدی استفاده از تابع ExitWindowsEx برای خاموش ، ریستارت و یا Logoff بدون TOKEN_PRIVILEGES است. (و این خیله جالبه که آنتی ویروس تا این حد به هسته و عملکرد کدهای فایل اجرایی نفوذ داره ! ) :گیج: :متفکر:

و شما ممکنه از توابع و کدهایی استفاده کرده باشید که از نظر AntiVirus مشکوک به نظر بیاد.

mr-adler
دوشنبه 23 آبان 1390, 15:36 عصر
کسی نمیدونه باید چی کارش کنم؟
از سایت است www.virustotal.com استفاده کنید شاید کمکتون کرد...
چیزی که مشخصه اینه از خط قرمز های انتی ویروس فراتر رفتید:لبخند: پس دو راه باقی میمونه:
1.سعی در مقابله با انتی ویروس داشته باشید. که چون برنامه تون امنیتی هست این روش رو بیخیال.
2.سعی کنید اون قسمت هایی رو که انتی ویروس به خاطرشون از برنامه ایراد میگره رو حذف یا ویرایش کنید.(که شاید بررسی سایت بالا در کمک به حل این مورد بتونه کمک کنه)

به هر حال این چیزایی بود که میدونستم:لبخند:
موفق باشید:لبخندساده:

_behnam_
دوشنبه 23 آبان 1390, 17:02 عصر
کسی نمیدونه باید چی کارش کنم؟
2 راه دارید !
1. بیخیال این برنامه بشید :لبخند:
2. جوری برنامه رو بنویسی که آنتی بهش گیرنده :بامزه:
همین جور که آقای M.T.P (http://barnamenevis.org/member.php?132020-M.T.P) گفتن بعضی توابع برای اینکه کاربرد زیادی توی ویروس نویسی و مخربها دارن آنتی ویروسها اونهارو شناسایی میکنن
سعی کنید تا جایی که امکان داره توی فرم لود برنامه دستور نزارید و از تایمرها هم کمتر استفاده کنید چون که تایمرهاهم نقش پر رنگی توی این ماجرا دارن
و همچنین تا میشه از توابع دانلود API استفاده نکنید

Mr'Jamshidy
سه شنبه 24 آبان 1390, 20:14 عصر
یه سری کد ها هستن که باعث میشن برنامه از طرف بعضی آنتی ویروس ها بعنوان ویروس شناسایی بشه.
من تا حالا به دو مورد از این کدها برخورد کردم...
یکی وقتی با دستور FileCopy فایل exe برنامه جاری به فولدر Windows کپی میشه و چنانچه فایل از قبل باشه OverWrite کنه و بلافاصله مسیرش رو تو ریجستری Startup اضافه کنی و از همه مهمتر اینکه این کدها در Form_Load باشه.
بعدی استفاده از تابع ExitWindowsEx برای خاموش ، ریستارت و یا Logoff بدون TOKEN_PRIVILEGES است. (و این خیله جالبه که آنتی ویروس تا این حد به هسته و عملکرد کدهای فایل اجرایی نفوذ داره ! ) :گیج: :متفکر:

و شما ممکنه از توابع و کدهایی استفاده کرده باشید که از نظر AntiVirus مشکوک به نظر بیاد.

مشکل اینجاست که از هیچکدوم از توابع بالا استفاده نکردم
فقط یک قسمت از برنامه رو برای این که تغییرات رجیستری اعمال بشه تنظیم کردم که برنامه Explorer.exe رو ببنده و دوباره باز کنه که اون قسمت رو حذف کردم اما باز هم فایده نداشت


از سایت است www.virustotal.com استفاده کنید شاید کمکتون کرد...
چیزی که مشخصه اینه از خط قرمز های انتی ویروس فراتر رفتید:لبخند: پس دو راه باقی میمونه:
1.سعی در مقابله با انتی ویروس داشته باشید. که چون برنامه تون امنیتی هست این روش رو بیخیال.
2.سعی کنید اون قسمت هایی رو که انتی ویروس به خاطرشون از برنامه ایراد میگره رو حذف یا ویرایش کنید.(که شاید بررسی سایت بالا در کمک به حل این مورد بتونه کمک کنه)

به هر حال این چیزایی بود که میدونستم:لبخند:
موفق باشید:لبخندساده:

ممنون اگر سایت بالا در مورد ویروس ها توضیح بده میتونم ویروس مورد نظر رو شناسایی کنم ببینم اون ویروس کدوم کارش با برنامه من مشابه هست


2 راه دارید !
1. بیخیال این برنامه بشید :لبخند:
2. جوری برنامه رو بنویسی که آنتی بهش گیرنده :بامزه:
همین جور که آقای M.T.P (http://barnamenevis.org/member.php?132020-M.T.P) گفتن بعضی توابع برای اینکه کاربرد زیادی توی ویروس نویسی و مخربها دارن آنتی ویروسها اونهارو شناسایی میکنن
سعی کنید تا جایی که امکان داره توی فرم لود برنامه دستور نزارید و از تایمرها هم کمتر استفاده کنید چون که تایمرهاهم نقش پر رنگی توی این ماجرا دارن
و همچنین تا میشه از توابع دانلود API استفاده نکنید

یک مشکل!!
من از یک تایمر تو برنامه استفاده کردم (فقط یک تایمر)
اونم فقط برای قسمتی که یک عکس متحرک رو نشون بده که کاربر بفهمه برنامه داره کار میکنه که باشه چشم اونم حذف میکنه

M.T.P
چهارشنبه 25 آبان 1390, 00:36 صبح
احتمالات گفته شد ...
اینطوری به نتیجه نمی رسید مگه اینکه خودتون شخصا پروژه رو مانیتور کنید ببینید دقیقا مشکل کجاست چون اینجا بچه ها ندیده نمی تونن نظر بدن و همه چیز بر اساس حدس و گمانه.

Mr'Jamshidy
چهارشنبه 25 آبان 1390, 08:26 صبح
احتمالات گفته شد ...
اینطوری به نتیجه نمی رسید مگه اینکه خودتون شخصا پروژه رو مانیتور کنید ببینید دقیقا مشکل کجاست چون اینجا بچه ها ندیده نمی تونن نظر بدن و همه چیز بر اساس حدس و گمانه.

درسته و من خودم برنامه رو مانیتور کردم

داخل سایت VirusTotal (http://barnamenevis.org/www.virustotal.com) هم برنامه رو چک کردم و طبق گزارش این سایت فقط 4 تا آنتی ویروس از 42 تا به برنامه گیر میده

اومدم ببینم مشکل از کدوم قسمت های برنامه هست، حدود 80% برنامه رو حذف کردم تا بلاخره آنتی ویروس بی خیال شد که این 80% کلیدی ترین قسمت های برنامه بود

حتی به قسمت مربوط به خوندن و نوشتن فایل های INI هم گیر میده

دیگه گیج شدم والا

مثلا یک قسمت برنامه هست که Device های ویندوز رو Hook میکنه تا اگر سخت افزاری به سیستم اضافه شده یا حذف شد برنامه بتونه عکس العمل نشون بده
یک قسمت برای سطح دسترسی
یک قسمت خوندن و نوشتن فایل های INI
یک قسمت مدیریت پروسه های ویندوز
یک قسمت برای محافظت دستگاه
یک قسمت هم برای مدیریت مقادیر رجیستری

حالا به نظر شما اگر من این قسمت هایی که گفتم رو هر کدوم در قالب یک DLL بزارم مشکل حل میشه یا نه؟ (AxtiveX DLL نه ها منظورم Standard DLL هست)

ehsan_soroosh
چهارشنبه 28 دی 1390, 07:32 صبح
من یک بار به همین مشکل برخوردم (آویرا و مایکروسافت اسنشال و نود بود که گیر میداد) یک msgbox گذاشتم تو برنامه دیگه گیر نداد

IamOverlord
چهارشنبه 28 دی 1390, 10:07 صبح
خیلی از برنامه های امنیتی با هم تداخل دارن.
مثلا نصب دو تا آنتی ویروس در اکثر مواقع مشکل سازه، چون هر کدوم دوست دارن خودشون اجازه هر کاری رو داشته باشن و بقیه گیر بدن...
که طبیعیه آنتی ویروس به شما گیر می ده...

shahabbasic
چهارشنبه 28 دی 1390, 12:41 عصر
این بیت 2011 هست قدیمیه دیگه الان کسی استفاده نمیکنه
بیت 2012 رو نصب کن شاید در نحوه شناسایی ویروسها از روی رفتارشون تغییری داده باشن

IamOverlord
چهارشنبه 28 دی 1390, 12:42 عصر
ولی کاربر چی؟
به اون که نمی شه گفت ...

shahabbasic
چهارشنبه 28 دی 1390, 17:46 عصر
ولی کاربر چی؟
به اون که نمی شه گفت ...
به کاربر نباید زیاد رو بدی اگر این کار رو بکنی لوس میشه

Mr'Jamshidy
چهارشنبه 28 دی 1390, 18:52 عصر
از دوستان برای پیگیری این موضوع ممنونم اما ...

این مشکل در ابتدا ایجاد تاپیک حل شد که در آخرین پست هم بهش اشاره کردم که میخوام چی کار کنم اما دوباره میگم.
----
برای حل این مساله که برنامه به عنوان ویروس شناسایی نشه شما باید برنامه رو تکه تکه بنویسی یعنی چی؟

یعنی این که مثلا من دارم یک آنتی ویروس مینویسم که از 7 قسمت به عناوین زیر تشکیل شده:

Antivirus
Firewall
Anti Spam
Anti Banner
Anti Spyware
Anti Trojan
Application Controller

خوب حالا اگر من همه این قابلیت ها را داخل یک فایل اجرایی بنویسم که خوب شک نکنید قبل از اجرا آنتی ویروس برنامه رو پر پر میکنه

اما اگر من هر 7 قسمت بالا رو هر کدوم رو داخل یک برنامه جدا بنویسم چون هر کدومشون یک برنامه مجزا هستن آنتی ویروس به برنامه من هیچ کاری نداره

ولی الان برنامه من 7 تکه شده نمیشه که اول اجرا شدن هر 7 برنامه اجرا بشه (دهن مهن یارو سرویس میشه) (به عنوان مثال آنتی ویروس AVG) پس راه حل چیه؟

راه حل اینه که شما بیای از کامپوننت کنار برنامه استفاده کنی و هر 7 قسمت بالا رو داخل یک کامپوننت بنویسی و در آخر یک برنامه بنویسی که همه کامپوننت ها رو یک جا جمع کنی

ولی باز کامپوننت یک مشکلی که ایجاد میکنه اینه که اگر رجیستر نشه و ... واسه یک برنامه آبرومند خیلی زایست پس ....

میرسیم به همون راه حلی که من رسیدم

استفاده از کتابخانه های استاندارد (Standard DLL)

در مورد کتابخانه های استاندارد لطفا سوال نفرمایید در انجمن جستجو بفرمایید به نتیجه خواهید رسید (اینو گفتم تا کسی یوهو سوال نکنه در موردش)

درست نیست اینو اینجا بگم اما با این روش شما حتی ویروس هم بنویسی که هیچ نرم افزار امنیتی بهش کاری نداره

موفق باشید

reza erfani
چهارشنبه 28 دی 1390, 23:17 عصر
جمشیدی جان این موضوع اخر خیلی واسم جالب بود !!!!
ولی ببینم چرا باید تعدادی کد کنار هم رو یک آنتی ویروس بهش گیر بده ؟
راستی یک بار هم طبق مقاله ای که من خودم نوشتم سعی در پک کردن درست و قوی برنامه ها داشتم که متاسفانه منم به مشکل شما بر خوردم که قبلا اشاره کردم
سوم این که مگه آنتی ویروس ها فایل های dll رو چک نمیکنند ؟

mahmood744
پنج شنبه 29 دی 1390, 19:13 عصر
دوست عزیز به نظر من اسم برنامه ات مشکل داره
آنتی ویروس به این نام فایل حساس است
ممکنه قبلا اسم فایل شما , اسم یک ویروس بوده باشه