PDA

View Full Version : حرفه ای: برای علاقه مندان ساخت آنتی ویروس!



IamOverlord
جمعه 26 شهریور 1389, 12:07 عصر
با سلام خدمت دوستان عزیز.
در این تاپیک به تبادل اطلاعات برای ساخت یک آنتی ویروس میپردازیم.در واقع ساخت یک آنتی ویروس گروهی برای مبارزه باmalewareها .
خب این آنتی ویروس خیلی خیلی ساده هستش و فقط در این تا پیک قراره بخش اولش رو بسازیم(با استفاده از سورس های جمع آوری شده).
:لبخند:
tabاول این آنتی ویروس درباره ی آنالیز سورس برنامه ی مورد نظری هستش که به آنتی ویروس دادیم.
به طور کلی بعد آنالیز سورس قبل از اجرا به کاربر میگه که راه های بسته شدن این برنامه که در خود برنامه قرار داده شده چی هست.دوما بهمون میگه که پس از اجرای این برنامه از اجرای چه
برنامه هایی جلوگیری میشه مثل:task manager

Babak.Hassanpour
جمعه 26 شهریور 1389, 12:19 عصر
تاپیکی با عنوان "پروژه ساخت آنتی ویروس" (http://barnamenevis.org/forum/showthread.php?t=116901) در بخش پروژه‌های Open Source (http://barnamenevis.org/forum/forumdisplay.php?f=92) وجود دارد .لطفا قبل از اقدام به گشایش تاپیک مستقل ؛ جستجو فرمایید.
حال اگر مایلید در همان تاپیک ادامه دهید.
به احتمال 99 درصد این تاپیک توسط مدیران حذف یا انتقال داده خواهد شد.
موفق باشید.

milad-fa
جمعه 26 شهریور 1389, 12:47 عصر
سلام،
تو یه روز تو کاره ویروسی یه روز آنتی ویروس؟!:قهقهه:
Yahoo Roboter ت چی شد؟!:شیطان:

IamOverlord
جمعه 26 شهریور 1389, 12:54 عصر
سلام دوست عزیز
اگه مدیران سایت اجازه بدن در مورد ویروس اونقدر مینوسم که اسم سایت رو بکنن جامعه ویروس نویس.
بگذریم::متعجب:
هوش مصنوعی رو هم که چون فایل اجرایی بود حذف کردن.
موفق باشی.:لبخندساده:

ali190
جمعه 26 شهریور 1389, 13:05 عصر
باسلام و عرض خسته نباشید
این پست رو صرفاً جهت اطلاع ایجاد کردم و بعد حذفش میکنم
از همه دوستان خواهش میکنم اجازه بدن دوست خوبمون IamOverlord (http://barnamenevis.org/forum/member.php?u=72921) این آموزش تخصصی رو ادامه بدن
مطالب کاملاً تخصصصیه و فکر نمیکنم در هیچ کتاب و کلاسی تدریس بشه
پس قدر این عزیز رو بدونیم
ممنون از همه عزیزان

IamOverlord
جمعه 26 شهریور 1389, 13:13 عصر
خیلی ممنونم دوست عزیزم علی جان.
خب اگه انشاءالله جنگ و دعواتون با من تموم شد لطف کنید اگه همکاری ای دارید شروع کنید.من هم یک نمونه سورس رو تا آخر شب که مربوط به همین آنتی ویروس میشه رو میذارم.در ضمن تمامی دوستانی که از الگوریتم های آنتی ویروسهای معروف اطلاع دارند نیز متونن کمک کنن.
مبحث الگوریتم نویسی هم خیلی مهم هستش.
راستی دوستمون آقا بابک گفتن که قبل از این تاپیک یک تاپیک در بخش open source ایجاد شده.من 3تا آنتی ویروس که نسخه های اولیه ی کارشون بود رو دانلود کردم.جالبه بدونید که حتی نتونس sub7رو تشخیص بده.
موفق باشید.

milad-fa
جمعه 26 شهریور 1389, 13:39 عصر
با سلام اگه اجازه بدید اولی رو من بذارم!
این USB AntiVirus ای که گذاشتم الگوریتمش به این صورت هستش که درون درایو فلش مموری یک پوشه به نام Autorun.inf و داخل اون یه پوشه به نام PRN میسازه و به هیچ وجه هم این پوشه پاک نمیشه به همین دلیل هیچ ویروسی هم موفق به ریختن فایل Autorun خودش درون فلش نمیشه و بدین ترتیب هیچ وقت هم اجرا نخواهد شد.
البته در پایان بگم کاری از دوست عزیزم جناب saeed_r67 (http://barnamenevis.org/forum/member.php?u=143644) هستش.

IamOverlord
جمعه 26 شهریور 1389, 13:48 عصر
خیلی ممنون.:لبخند:
دوستان اگه میتونن در صورت امکان sourceبرنامه رو هم بذارن.

milad-fa
جمعه 26 شهریور 1389, 13:52 عصر
البته باید بگم این یکی از دست گرمی های دوست عزیزم هستش.
ایشون تبهر خواصی در زمینه ویروس و آنتی ویروس دارن.:تشویق:

IamOverlord
جمعه 26 شهریور 1389, 16:45 عصر
دوستان سلام!
این یک سورس بسیار عالی هستش که فایل ها رو به صورت hex باز میکنه.
از این طریق میشه به صورت قابل فهم تر به کد برنامه ها دسترسی داشت.
از این طریق میشه کد فایل های مورد نظر رو با کدی که در db هست مقایسه کرد.
این برنامه یکی اززیر برنامه های اصلی آنتی ویروسمون هستش.
نویسنده این برنامه: Micheal Warren

MMR_1344
جمعه 26 شهریور 1389, 18:51 عصر
دوستان عزیز
اگر میخوایم در مورد آنتی ویروس و نوشتن برنامه برای این کار ، شروع کنیم بهتر نیست از اول در مورد اینکه ویروس ها در کجا قرار گرفته و چگونه میتوان اونها رو یافت و سپس اینکه چگونه میتوان آنها رو از بین برد صحبت نمود
تا بشه اون انتی ویروس رو فهمید

milad-fa
جمعه 26 شهریور 1389, 19:08 عصر
با سلام،
اینم یه آنتی ویروس کامل به اسم SMP Antivirus 2.1.1 که کار یکی از دوستان عزیزم به اسم RedBoy هستش.
فکر نکنم مشابه این رو به زبان فارسی دیده باشید.
تقدیم به دوستان.

IamOverlord
جمعه 26 شهریور 1389, 19:18 عصر
با سلام
بله دوست عزیز شما درست میگید اما در این سایت بحث در این موارد ممنوع هستش.اگه چنین سوالاتی دارید میتونید پیام خصوصی بدید.بنده با کمال میل آماده ی بحث در این موارد هستم.
اما بطور کلی تعریف ویروس و عملکردشون این هست:
ویروس های کامپیوتری هم مثل ویروس های معمولی عملکردهای مختلفی دارند و باعث بیماری های مختلفی میشن.یکی از عمومی ترین عملکرد های ویروس ها آسیب زدن به فایل ها و مخصوصا فایل های اجرایی است.بیشتر ویروس ها فقط فایل های اجرایی رو آلوده میکنن.ممکن است این فایل ها را از کار بیندازن,حذف کنند یا تغییر دهند.ویروس های جدید ترعلاوه بر فایل های اجرایی فایل های دیگر را نیز مورد حمله قرار میدن.ویروس ها همراه با این فایل های آلوده جا به جا میشوند و خود را تکثیر میکنند.علاوه بر آلوده کردن فایل ها و تکثیر خود ویروس ها یک عمل کرد دیگر هم دارند که همان عملکر اصلی و مخرب آنهاست.اکثر ویروس ها باعث کند شدن عملکرد سیستم میشوند.بعضی از آنها فایل های اجرایی را از کامپیوتر حذف میکنن.در صورتی که این اتفاق بیفتد ممکن است ویندوز شما از کار بیفتد.ویروسهایی هم هستند که اطلاعات موجود در کامپیوتر را حذف یا تخریب می کنن.تعداد بسیار کمی از ویروس ها هم قادرند به سخت افزار کامپیوتر آسیب بزنند.مثلا bios کامپیوتر را بسوزانند یا به هارددیسک آسیب بزنند.

IamOverlord
جمعه 26 شهریور 1389, 19:31 عصر
سلام دوستان
این هم یک PDF در مورد نحوه ی کار آنتی ویروس ها برای شما دوستان که آشنا بشید.

milad-fa
جمعه 26 شهریور 1389, 19:37 عصر
ویروس های کامپیوتری هم مثل ویروس های معمولی عملکردهای مختلفی دارند و باعث بیماری های مختلفی میشن.یکی از عمومی ترین عملکرد های ویروس ها آسیب زدن به فایل ها و مخصوصا فایل های اجرایی است.بیشتر ویروس ها فقط فایل های اجرایی رو آلوده میکنن.ممکن است این فایل ها را از کار بیندازن,حذف کنند یا تغییر دهند.ویروس های جدید ترعلاوه بر فایل های اجرایی فایل های دیگر را نیز مورد حمله قرار میدن.ویروس ها همراه با این فایل های آلوده جا به جا میشوند و خود را تکثیر میکنند.علاوه بر آلوده کردن فایل ها و تکثیر خود ویروس ها یک عمل کرد دیگر هم دارند که همان عملکر اصلی و مخرب آنهاست.اکثر ویروس ها باعث کند شدن عملکرد سیستم میشوند.بعضی از آنها فایل های اجرایی را از کامپیوتر حذف میکنن.در صورتی که این اتفاق بیفتد ممکن است ویندوز شما از کار بیفتد.ویروسهایی هم هستند که اطلاعات موجود در کامپیوتر را حذف یا تخریب می کنن.تعداد بسیار کمی از ویروس ها هم قادرند به سخت افزار کامپیوتر آسیب بزنند.مثلا bios کامپیوتر را بسوزانند یا به هارددیسک آسیب بزنند.

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

MMR_1344
جمعه 26 شهریور 1389, 20:15 عصر
با تشکر از تمامی دوستان
من فکر نمیکنم در این سایت اگر در مورد آموزش و اطلاع رسانی بحثی بشه کسی بخواد اون رو منحل کنه چون این سایت در خصوص آموزش و اطلاع رسانی است و تمامی دوستان هم در این مورد زحمت میکشند
به هر حال اگر در خصوص از بین بردن ویروس و نحوه شناسائی اون و چگونگی برنامه نویسی در این خصوص بحث بشه فکر میکنم بهتر باشه
به هر حال متشکرم

milad-fa
جمعه 26 شهریور 1389, 20:22 عصر
با تشکر از تمامی دوستان
من فکر نمیکنم در این سایت اگر در مورد آموزش و اطلاع رسانی بحثی بشه کسی بخواد اون رو منحل کنه چون این سایت در خصوص آموزش و اطلاع رسانی است و تمامی دوستان هم در این مورد زحمت میکشند
با سلام خدمت دوست عزیزمون MMR_1344،
دوست عزیز هرگونه بحثی که کوچکترین آموزشی راجع به ساخت ویروس،نفوذ به انواع برنامه ها و از این دست موارد باشه خلاف مقررات سایت هستش.

به هر حال اگر در خصوص از بین بردن ویروس و نحوه شناسائی اون و چگونگی برنامه نویسی در این خصوص بحث بشه فکر میکنم بهتر باشه
منم دقیقاً با شما همنظرم!

IamOverlord
جمعه 26 شهریور 1389, 20:45 عصر
با سلام،
دوستای خوبم این برنامه ای که نوشتم Id پروسسی که دارای پنجره ای با نام دلخواه ما هست رو به دست میاره (Id پروسس یا PId) و اون پروسس رو می بنده. که نحوه ی بستن پروسس رو هم میتونید از این کد یاد بگیرید. یه آنتی ویروس اوّلین کاری که باید بلد باشه بکنه اینه که یه پروسس رو ببنده! (که در مورد روش ها بسته نشدن یه پروسس و مقابله با اون توضیح خواهم داد)
خب فعلا این یه مثال ساده است، با مثال های کاربردی بیشتری خدمتتون می رسم!
با تشکّر از تمامی کسانی که امروز در این تاپیک فعّالیّت کردند.
:چشمک:

IamOverlord
جمعه 26 شهریور 1389, 21:34 عصر
سلام دوستان!

چگونه یک پنجره رو مانند زمانی که رو دکمه ی ضربدر کلیک می کنیم ببندیم؟

با این روش یه پنجره رو می شه به طرزی بست که انگار روی دکمه ی ضربدر کلیک شده. برای مثال اگر شما Notepad را باز کنید و در آن چیزی بنویسید و Save نکنید و سپس با این روش بخواهید Notepad را ببندید، پیغام Save شدن در Notepad برای کاربر نمایش داده می شود. یا اگر با این روش برنامه ی ویژوال بیسیکی را بخواهید ببندید و اون برنامه در رویداد Unload در Form بنویسه Cancel = 1 اون برنامه ی ویژوال بسیک بسته نمی شه. یعنی در کل این روش قدرتمند نیست اما برای بستن یه پنجره Standard هست.

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10

Public Function fCloseWindow(ByVal hWnd As Long) As Long
fCloseWindow = SendMessage(hWnd, WM_CLOSE, 0&, 0&)
End Function


چگونه یک پنجره رو بدون اخطارببندیم؟

این روش برعکس روش قبل هست، یعنی در این روش سوالی در رابطه با بستن پنجره از کاربر پرسیده نمی شه، و پنجره سریعا بسته می شه. مثلا اگر در Notepad چیز Save نشده ای باشه، با این روش Notepad بدون اخطار بسته می شه. و در کل بهتر از روش قبل هست.


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_DESTROY = &H2

Public Function fDestroyWindow(hWnd As Long) As Long
fDestroyWindow = SendMessage(hWnd, WM_DESTROY, 0&, 0&)
End Function


چگونه Process Id یه پنجره رو به دست بیاریم و بعدا Process رو ببندیم؟

ابتدا باید Process Id اون پنجره رو به دست بیاریم:


Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Public Function GetPID(ByVal hwnd As Long) As Long
Dim Result
Result = _
GetWindowThreadProcessId(hwnd, GetPID)
End Function

بعد باید Process مورد نظر رو ببندیم:


Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Const PROCESS_TERMINATE As Long = &H1

Public Sub TerminateProcess(ByVal PId As Long)
Dim ProcHandle As Long
ProcHandle = OpenProcess(PROCESS_TERMINATE, False, PId)
TerminateProcess ProcHandle, 0
CloseHandle ProcHandle
End Sub


:چشمک:

milad-fa
شنبه 27 شهریور 1389, 02:18 صبح
دوستان اگه سورس آنتی ویروس SMP Antivirus 2.1.1 رو خواستید و به کارتون میاد بگید تا بذارم.
دوست عزیزمون RedBoy اجازه این کار رو به بنده دادن.
موفق باشید/

IamOverlord
شنبه 27 شهریور 1389, 10:27 صبح
سلام!
چه طور بفهمیم یه Process از یه فایل در حال اجرا هست یا نه؟

با استفاده از این Functionو دادن آدرس فایل مورد نظر می تونید بفهمید یه Process از اون فایل در حال اجرا هست یا نه:



Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, th32ProcessID As Long) As Long
Private Const TH32CS_SNAPPROCESS As Long = 2

Public Type PROCESSENTRY32
dwSize As Long
cntUseage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
swFlags As Long
szExeFile As String * 1024
End Type

Public Function IsProcessRunning(FileAddress As String) As Boolean
Dim hSnapShot As Long
Dim pe32 As PROCESSENTRY32
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
pe32.dwSize = Len(pe32)
Process32First hSnapShot, pe32
Do While Process32Next(hSnapShot, pe32) <> 0
If InStr(1, LCase(pe32.szExeFile), LCase(FileAddress)) > 0 Then
IsProcessRunning = True
End If
Loop
CloseHandle (hSnapShot)
End Function

چه طور Process Id یه فایل در حال اجرا رو پیدا کنیم؟

با استفاده از Function زیر و دادن آدرس File مورد نظر به اون می تونید بفهمید Process Id اون مربوط به اون فایل در حال اجرا چیه. اگر جواب 1- بود یعنی اون فایل در حال اجرا نیست:



Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, th32ProcessID As Long) As Long
Private Const TH32CS_SNAPPROCESS As Long = 2

Public Type PROCESSENTRY32
dwSize As Long
cntUseage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
swFlags As Long
szExeFile As String * 1024
End Type

Public Function GetFileProcessId(FileAddress As String) As Long
Dim hSnapShot As Long
Dim pe32 As PROCESSENTRY32
GetFileProcessId = -1
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
pe32.dwSize = Len(pe32)
Process32First hSnapShot, pe32
Do While Process32Next(hSnapShot, pe32) <> 0
If InStr(1, LCase(pe32.szExeFile), LCase(FileAddress)) > 0 Then
GetFileProcessId = pe32.th32ProcessID
End If
Loop
CloseHandle (hSnapShot)
End Function
:چشمک:

IamOverlord
شنبه 27 شهریور 1389, 11:07 صبح
سلام میلاد جان
اتفاقا سورس این برنامه به کار میاد.میتونیم چند تا از الگوهای خوبشون رو برای ساخت آنتی ویروس یاد بگیریم.
هر وقت تونستی سورس رو هم بذار.:لبخند:

IamOverlord
شنبه 27 شهریور 1389, 13:18 عصر
سلام دوستان عزیز!

چه طوری Process Id رو از یه hWnd به دست بیاریم؟

در پست شماره ی 20 (http://barnamenevis.org/forum/showpost.php?p=1101360&postcount=20) گفته شد.

چه طور hWnd رو از یه Process Id به دست بیاریم؟

از طریق تابع GetWindowHandleFromPID در Module زیر و دادن Process Id به اون می تونید hWnd رو به دست بیارید:



Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal Hwnd As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, ByVal wIndx As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal Hwnd As Long, lpdwProcessId As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const GWL_EXSTYLE = (-20)
Private Const WS_VISIBLE = &H10000000
Private Const WS_EX_APPWINDOW = &H40000
Private Type HWND_TEXT
Window_Handle As Long
Window_Title As String
End Type
Private ColCounter As Long
Private HandleTextCollection() As HWND_TEXT

Private Function EnumWindowsProc(ByVal Hwnd As Long, ByVal lParam As Long) As Boolean
Dim Title As String
Dim r As Long
r = GetWindowTextLength(Hwnd)
Title = Space(r)
GetWindowText Hwnd, Title, r + 1
ColCounter = ColCounter + 1
ReDim Preserve HandleTextCollection(ColCounter)
HandleTextCollection(ColCounter).Window_Handle = Hwnd
HandleTextCollection(ColCounter).Window_Title = Title
EnumWindowsProc = True
End Function

Private Sub EnumAllWindows()
ColCounter = 0
ReDim HandleTextCollection(0)
EnumWindows AddressOf EnumWindowsProc, ByVal 0&
End Sub

Public Function GetWindowHandleFromPID(ByVal AppPID As Long) As Long
Dim AppPID_HWND() As HWND_TEXT
Dim CNT As Long
Dim HND As Long
Dim n As Long
Dim r As Long
Dim i As Long
Dim TaskID As Long
Dim TheHandle As Long
Call EnumAllWindows
CNT = 0
ReDim AppPID_HWND(0)
For i = 1 To UBound(HandleTextCollection())
HND = HandleTextCollection(i).Window_Handle
n = GetWindowThreadProcessId(HND, TaskID)
If TaskID = AppPID Then
CNT = CNT + 1
ReDim Preserve AppPID_HWND(CNT)
AppPID_HWND(CNT).Window_Handle = HND
AppPID_HWND(CNT).Window_Title = HandleTextCollection(i).Window_Title
End If
Next i
For i = 1 To UBound(AppPID_HWND())
n = GetWindowLong(AppPID_HWND(i).Window_Handle, GWL_STYLE)
r = GetWindowLong(AppPID_HWND(i).Window_Handle, GWL_EXSTYLE)
If (n) And (WS_VISIBLE) Then
If (r) And (WS_EX_APPWINDOW) Then
TheHandle = AppPID_HWND(i).Window_Handle
Exit For
End If
End If
Next i
GetWindowHandleFromPID = TheHandle
End Function


با تشکّر! موفّق باشید! :چشمک:

milad-fa
شنبه 27 شهریور 1389, 20:19 عصر
با سلام خدمت تمامی دوستان عزیز،
طبق درخواست دوستان و جناب IamOverlord منم Source آنتی ویروس دوست عزیزم محمدجواد شکری رو واستون آپلود کردم.
امیدوارم بهره لازم رو ازش ببرید.
اینم لینک دانلود : SMP Antivirus 2.1.1 Source (http://316205.20upload.net/files/sh2/12848262361.rar)
موفق باشید.

parselearn
شنبه 27 شهریور 1389, 20:35 عصر
با سلام خدمت تمامی دوستان عزیز،
طبق درخواست دوستان و جناب IamOverlord منم Source آنتی ویروس دوست عزیزم محمدجواد شکری رو واستون آپلود کردم.
امیدوارم بهره لازم رو ازش ببرید.
اینم لینک دانلود : SMP Antivirus 2.1.1 Source (http://316205.20upload.net/files/sh2/12848262361.rar)
موفق باشید.
دوستاني كه سورس اصلي اين برنامه را ميخوان در اين سايت جستجو كنند
http://www.planet-source-code.com/vb/default.asp?lngWId=1
يك كپي به تمام معنا!!!!

در ضمن سورس فايده نداره
در همين سايت پلانت بزنيد AntiVirus براتون ده‌ها مدل آنتي ويروس مياره
بهتره روي الگوريتم كار كنيد

IamOverlord
شنبه 27 شهریور 1389, 20:42 عصر
سلام دوست عزیز
من خودم در پست های قبلیم اگه بخونید گفتم که به الگوریتم نویس نیاز داریم . مبحث الگوریتم نویسی خیلی مهم هستش.اما متاسفانه کسی در این زمینه نیست.اگر باشه با کمال میل از همکاریش استقبال میکنیم.فعلا خودمون داریم در منابع مختلف جستجو میکنیم.
از کمکتون هم ممنون.:چشمک:

milad-fa
شنبه 27 شهریور 1389, 20:43 عصر
دوستاني كه سورس اصلي اين برنامه را ميخوان در اين سايت جستجو كنند
http://www.planet-source-code.com/vb...t.asp?lngWId=1
يك كپي به تمام معنا!!!!

در ضمن سورس فايده نداره
در همين سايت پلانت بزنيد AntiVirus براتون ده‌ها مدل آنتي ويروس مياره
بهتره روي الگوريتم كار كنيد
من که تو این سایت چیزی مشابه پیدا نکردم اگر هم کپی کرده باشه من خبری ندارم.

IamOverlord
شنبه 27 شهریور 1389, 20:57 عصر
دوستان در سایت های انگلیسی بهتر میشه در مورد الگوریتم و suorceجستجو کرد.اگر در سایت های هک و کرک رو جستجو کنیم میتونیم با چیزی که میخوایم باهاش مقابله کنیم بهتر آشنا بشیم.من خودم شخصا از بخش های Open sourceشون خوشم اومد.
موفق باشید.:چشمک:

vb8334
شنبه 27 شهریور 1389, 21:21 عصر
سلام

دوستان parselearn (http://barnamenevis.org/forum/member.php?u=48732) راست میگه

نمونه های خوبی هستش یه نگاه بندازید

لینک :


http://pscode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?txtCriteria=Anti Virus&lngWId=1

موفق باشد

upload
یک شنبه 28 شهریور 1389, 02:10 صبح
milad-fa (http://www.barnamenevis.org/forum/member.php?u=130760) اگه می شه سورس اون برنامه ی اولی که 2 پوشه به اسم اتوران درست می کرد رو بزارید.ممنون

IamOverlord
یک شنبه 28 شهریور 1389, 20:55 عصر
سلام دوستان!
بسیاری از فایل های مخرّب و ترویان ها تاثیراتی بر Registry می گذارند که برای مثال همراه با بالا آمدن Windows اجرا شوند و در سیستم تاثیرات خود را بگذارند و کارهای مختلفی با سیستم کاربر انجام دهند.از جمله مسیرهای Registry که بسیار مهم است از تاثیر فایل های مخرّب و ترویان ها به آن ها جلوگیری شود، در لیست زیز آورده شده است:



HKEY_LOCAL_MACHINE\System\CurrentControSet\Control \SessionManager\KnownDLLs
HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Se ssionManager\KnownDLLs
HKEY_LOCAL_MACHINE\System\ControlSet\Services
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr ent Version\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr ent Version\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr ent Version\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\WinLogon
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Windows (run)
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre nt Version\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre nt Version\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre nt Version\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre nt Version\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Current Version\Windows (run)
HKEY_CLASS_ROOT\exefile\shell\open\command


در ضمن برای این که به Registry دسترسی داشته باشیم:


Global Const REG_SZ As Long = 1
Global Const REG_DWORD As Long = 4
Global Const REG_BINARY = 3

Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003

Global Const ERROR_NONE = 0
Global Const ERROR_BADDB = 1
Global Const ERROR_BADKEY = 2
Global Const ERROR_CANTOPEN = 3
Global Const ERROR_CANTREAD = 4
Global Const ERROR_CANTWRITE = 5
Global Const ERROR_OUTOFMEMORY = 6
Global Const ERROR_INVALID_PARAMETER = 7
Global Const ERROR_ACCESS_DENIED = 8
Global Const ERROR_INVALID_PARAMETERS = 87
Global Const ERROR_NO_MORE_ITEMS = 259
Global Const KEY_ALL_ACCESS = &H3F
Global Const REG_OPTION_NON_VOLATILE = 0

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long

Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long

Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long

Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long

Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)

Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
Dim lValue As Long
Dim sValue As String
Select Case lType
Case REG_SZ ' type of value is string
sValue = vValue
SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))
Case REG_DWORD ' type of value is Double word
lValue = vValue
SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)
End Select
End Function

Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long
Dim cch As Long
Dim lrc As Long
Dim lType As Long
Dim lValue As Long
Dim sValue As String
lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)
Select Case lType
' For strings
Case REG_SZ:
sValue = String(cch, 0)
lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)
If lrc = ERROR_NONE Then
vValue = Left$(sValue, cch)
Else
vValue = Empty
End If
' For DWORDS
Case REG_DWORD:
lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)
If lrc = ERROR_NONE Then vValue = lValue
Case Else
'all other data types not supported
lrc = -1
End Select
QueryValueExExit:
QueryValueEx = lrc
Exit Function
QueryValueExError:
Resume QueryValueExExit
End Function
Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)
Dim lRetVal As Long
lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)
DeleteKey = lRetVal ' return function valu
End Function

Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = RegDeleteValue(hKey, sValueName)
RegCloseKey (hKey)
DeleteValue = lRetVal
End Function

Public Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)
Dim hNewKey As Long
Dim lRetVal As Long
lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)
RegCloseKey (hNewKey)
CreateNewKey = lRetVal
End Function

Public Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)
RegCloseKey (hKey)
SetKeyValue = lRetVal
End Function

Public Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)
Dim lRetVal As Long
Dim hKey As Long
Dim vValue As Variant
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = QueryValueEx(hKey, sValueName, vValue)
QueryValue = vValue
RegCloseKey (hKey)
End Function

با تشکر! موفّق باشید! :قلب:

IamOverlord
یک شنبه 28 شهریور 1389, 22:22 عصر
سلام دوستان!

چگونه به ساده ترین روش لیست تمامی Process های در حال اجرا رو به دست بیاریم؟

به راحتی!
با استفاده از این Class Module می تونید به راحنی لیستی از تمامی Process های در حا اجرا رو با Id و مسیر اون ها به دست بیارید:




Option Explicit

Private Const MAX_PATH As Long = 260


Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8


Private Const SE_PRIVILEGE_ENABLED = &H2


Private Const PROCESS_QUERY_INFORMATION As Long = &H400
Private Const PROCESS_VM_READ = 16
Private Const PROCESS_TERMINATE As Long = &H1
Private Const PROCESS_ALL_ACCESS = &H1F0FFF


Private Const TH32CS_SNAPPROCESS As Long = &H2

Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As Any, ReturnLength As Any) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapShot As Long, ByRef lppe As PROCESSENTRY32) As Boolean
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapShot As Long, ByRef lppe As PROCESSENTRY32) As Boolean
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Boolean, ByVal dwProcessID As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpExitCode As Long) As Boolean
Private Declare Function GetModuleFileNameExA Lib "psapi.dll" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Private Declare Function EnumProcesses Lib "psapi.dll" (ByRef lpidProcess As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long

Private Type LUID
lowpart As Long
highpart As Long
End Type

Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
LuidUDT As LUID
Attributes As Long
End Type


Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type

Event FoundProcess(mExePath As String, mProcessID As Long)
Event Error(Number As Integer, Description As String, Source As String, ResumeOperation As Boolean)

Dim m_ProcessID() As Long
Dim m_ExePath() As String
Dim m_Count As Long

Property Get Count() As Long
Count = m_Count
End Property

Property Get ProcessID(Index As Long) As Long
ProcessID = m_ProcessID(Index)
End Property

Property Get ExePath(Index As Long) As String
ExePath = m_ExePath(Index)
End Property

Public Sub Refresh()

On Error GoTo TrapError

Dim ResumeOperation As Boolean


ReDim m_ProcessID(0)
ReDim m_ExePath(0)
m_Count = 0


If GetVersion < 0 Then

Dim SnapShotHandle As Long
Dim ProcessUDT As PROCESSENTRY32
Dim ProcessEntries As Long

Dim dExePath As String, dProcessID As Long


SnapShotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)

ProcessUDT.dwSize = Len(ProcessUDT)
If Process32First(SnapShotHandle, ProcessUDT) = False Then
CloseHandle SnapShotHandle
Exit Sub
Else
ProcessEntries = 0
dExePath = ProcessUDT.szExeFile
dProcessID = ProcessUDT.th32ProcessID
m_ExePath(ProcessEntries) = dExePath
m_ProcessID(ProcessEntries) = dProcessID
RaiseEvent FoundProcess(dExePath, dProcessID)
End If

Do
If Process32Next(SnapShotHandle, ProcessUDT) = False Then
Exit Do
Else
ProcessEntries = ProcessEntries + 1
m_Count = ProcessEntries
dExePath = ProcessUDT.szExeFile
dProcessID = ProcessUDT.th32ProcessID
ReDim Preserve m_ExePath(0 To ProcessEntries) As String
ReDim Preserve m_ProcessID(0 To ProcessEntries) As Long
m_ExePath(ProcessEntries) = dExePath
m_ProcessID(ProcessEntries) = dProcessID
RaiseEvent FoundProcess(dExePath, dProcessID)
End If
DoEvents
Loop

Else

Dim ProcessIDs() As Long, hProcess As Long
Dim cb As Long, cbNeeded As Long, i As Long, _
lngResult As Long, ModuleName As String
Dim iExePath As String, iProcessID As Long
Dim ProcessNum As Long

ProcessNum = 0

cb = 32 * 4
Do
ReDim ProcessIDs(cb / 4)
If EnumProcesses(ProcessIDs(1), cb, cbNeeded) <> 1 Then
Exit Sub
End If
If cb = cbNeeded Then cb = cb * 2 Else Exit Do
Loop

For i = 1 To cbNeeded / 4
DoEvents
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessIDs(i))
If hProcess <> 0 And ProcessIDs(i) <> 0 Then
ModuleName = Space$(256)
lngResult = GetModuleFileNameExA(hProcess, 0, ModuleName, Len(ModuleName))

If lngResult <> 0 Then
ModuleName = Left$(ModuleName, lngResult)

iExePath = ModuleName
iProcessID = ProcessIDs(i)

ReDim Preserve m_ExePath(0 To ProcessNum) As String
ReDim Preserve m_ProcessID(0 To ProcessNum) As Long

m_ExePath(ProcessNum) = iExePath
m_ProcessID(ProcessNum) = iProcessID
m_Count = ProcessNum

RaiseEvent FoundProcess(iExePath, iProcessID)

ProcessNum = ProcessNum + 1

End If

End If
lngResult = CloseHandle(hProcess)
Next

End If

Exit Sub

TrapError:


ResumeOperation = False
RaiseEvent Error(Err.Number, Err.Description, Err.Source, ResumeOperation)
If ResumeOperation = True Then
Resume Next
End If

End Sub

Public Function TerminateProcessItem(Index As Long) As Boolean

On Error GoTo TrapError
Dim ResumeOperation As Boolean

TerminateProcessItem = KillProcess(m_ProcessID(Index))

Exit Function

TrapError:
ResumeOperation = False
RaiseEvent Error(Err.Number, Err.Description, Err.Source, ResumeOperation)
If ResumeOperation = True Then
Resume Next
End If

End Function

Public Function KillProcess(iProcessID As Long) As Boolean

On Error GoTo TrapError

Dim hProcess As Long
Dim lExitCode As Long
Dim hToken As Long
Dim tp As TOKEN_PRIVILEGES
Dim ResumeOperation As Boolean

If (GetVersion > 0) Then

If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) = 0 Then
tp.Attributes = 0
AdjustTokenPrivileges hToken, False, tp, 0, ByVal 0&, ByVal 0&
If hToken Then CloseHandle hToken
Exit Function
End If

If LookupPrivilegeValue("", "SeDebugPrivilege", tp.LuidUDT) = 0 Then
tp.Attributes = 0
AdjustTokenPrivileges hToken, False, tp, 0, ByVal 0&, ByVal 0&
If hToken Then CloseHandle hToken
Exit Function
End If

tp.PrivilegeCount = 1
tp.Attributes = SE_PRIVILEGE_ENABLED

If AdjustTokenPrivileges(hToken, False, tp, 0, ByVal 0&, ByVal 0&) = 0 Then
tp.Attributes = 0
AdjustTokenPrivileges hToken, False, tp, 0, ByVal 0&, ByVal 0&
If hToken Then CloseHandle hToken
Exit Function
End If

End If

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE, False, iProcessID)

If hProcess = 0 Then
KillProcess = False

End If

If GetExitCodeProcess(hProcess, lExitCode) = False Then
KillProcess = False

End If
If TerminateProcess(hProcess, lExitCode) = False Then
KillProcess = False

End If
If CloseHandle(hProcess) = False Then
KillProcess = False
Exit Function
End If

KillProcess = True

If (GetVersion < 0) Then
tp.Attributes = 0
AdjustTokenPrivileges hToken, False, tp, 0, ByVal 0&, ByVal 0&
If hToken Then CloseHandle hToken
End If

Exit Function

TrapError:

ResumeOperation = False
RaiseEvent Error(Err.Number, Err.Description, Err.Source, ResumeOperation)
If ResumeOperation = True Then
Resume Next
End If

End Function

Private Sub Class_Initialize()
Call Refresh
End Sub



روش استفاده:

ابتدا Class Module را به برنامه تان بشناسونید، اگر نام Class Module شما MyClassName باشد:


Dim NewName As ClassName
Set NewName = New ClassName

که NewName نام دلخواهی است که شما انتخاب می کنید.

حالا می توانید به Class Module مورد نضر از طریق نام انتخابی تان دسترسی داشته باشید.

چگونه لیست Process ها رو بازسازی کنیم؟


NewName.Refresh

چگونه تعداد Process ها رو به دست بیاریم؟


x = NewName.Count

در مثال بالا x تعداد Process هاست.

چگونه Id پروسس مورد نظر رو به دست بیاریم؟


x = NewName.ProcessID(Index)

در مثال بالا Index شماره Process مورد نظر در لیست Class Module است و x هم Process Id است.

چگونه مسیر فایل Process مورد نظر رو به دست بیاریم؟


x = NewName.ExePath(Index)

در مثال بالا Index شماره Process مورد نظر در لیست Class Module است و x هم Process Id است. همچنین از طریق جدا کرد نام فایل از مسیر فایل می تونیم نام Process رو به دست بیاریم.

چگونه Process مورد نظر رو ببندیم؟

برای بستن از طریق Index:


x = NewName.TerminateProcessItem(Index)

اگر Process مورد نظر با موفّقیّت بسته شود مقدار x برابر True خواهد بود، در غیر این صورت False خواهد بود.

برای بستن از طریق Process Id:


x = NewName.KillProcess(iProcessID)

اگر Process مورد نظر با موفّقیّت بسته شود مقدار x برابر True خواهد بود، در غیر این صورت False خواهد بود.

با تشکّر! موفّق باشید! :چشمک:

AmirAmiri
دوشنبه 29 شهریور 1389, 01:06 صبح
سلام دوستان.
بحث جالبی رو شروع کردین و امیدوارم که به نتیجه برسید با این که این جور بحث ها معمولا حمایت نمیشن اما مطرح کردنشون هم خوبه. معمولا این مباحث با کم لطفی از سوی اساتید محترم مواجه میشه، اساتیدی که خیلی چیزها میدونن اما نمیخوان به کسی آموزش بدن و این علم رو در انحصار خودشون نگه میدارن.

نمونه همین انحصار طلبی در خوده بنده هم وجود داره (البته جزء اساتید نیستم). بنده نحوه ساختن پوشه zhengbo. و نحوه حذف کردن اون رو بلدم و حتی در چندین ویروس هم استفاده کردم اما هیچ وقت اقدام به آموزش اون نکردم و حتی طی درخواستهای زیادی هم که داشتم ، باز هم آموزش ندادم و امــــــــــــــــان از این انحصار طلبی....

دوستان عزیز این برنامه که قرار میدم در واقع آنتی ویروس نیست و از هیچ الگوریتمی هم استفاده نمیکنه اما یک برنامه برای کسانی هست که از ویروس ها ضربه خوردن. این برنامه که اسمش Virus Stopper هستش، برای بستن ویروس به کار میره و یک سری تغییرات هم روی رجیستری اعمال میکنه تا ویندوز به حالت اولیه برگرده. تو این برنامه سعی شده فایلهای Autorun.inf رو حذف کنه و محیطی امن به وجود بیاره.

برنامه مشکلات خیلی زیادی هم داره که به دلیل نبود وقت + نبود علاقه و سرکوب شدن از سوی مراجع قضایی... (داستانش مفصله) اقدام به تکمیلش نکردم.

در واقع میشه گفت این برنامه به هیچ دردی نمیخوره ولی کدهاش برای یاد گیری و شروع مفیده.
امیدوارم استفاده کنید. چند روز دیگه سر میزنم امیدوارم پیشرفت چشم گیری در این زمینه حاصل شده باشه.

Virus Stopper Source (http://v-basic.persiangig.com/VB6/Source/Virus%20Stoper.rar)

موفق و پیروز باشید.

IamOverlord
سه شنبه 30 شهریور 1389, 11:40 صبح
با سلام خدمت دوستان عزیز.:لبخندساده:
بد نیست کمی هم در مورد hookهای ویندوز بدونیم. از این تکنیک در ساخت نرم افزار هایی مانند آنتی ویروس ها،فایروالها،دیباگرها،نرم افزارهای جاسوسی و ویروسها استفاده میشود.
این هم یک PDFکوتاه برای آشنایی اولیه با hookها.