PDA

View Full Version : آنتی ویروس



_abiriamir
شنبه 27 تیر 1388, 17:16 عصر
سلام
من یه چیزی شبیه ویروس نوشتم که میخوام Anti اون رو تهیه کنم
خب حالا میخوام پروسسش رو ببندم
پس به اسم اون نیاز دارم
درسته؟
خب این برنامه روی هر کامپیوتری با یه اسم انتشار پیدا میکنه
من چجوری بفهمم که اسم اون ویروسه چیه؟

Felony
شنبه 27 تیر 1388, 17:43 عصر
هندلش رو به دست بیار و بهش پیغام بسته شدن رو بفرست .

tdkhakpur
شنبه 27 تیر 1388, 19:32 عصر
سلام
شما که ویروس را نوشتید خوب اگر اینقدر آدم خوبی هستید که پادزهرش را هم میخوایید داشته باشید .یک بند دیگر به کار ویروس عزیز اضافه کنید و آن هم این هست که در یه جایی مثل رجیستری یا یک فایل در system ویندوز موقعیت کنونی را در حین اجرای ویروس ثبت کنید. تا آنتی ویروس عزیز و محترم بتواند از این طریق آن را پیدا کند.(البته این کار را مخفی انجام بده چو اگر همه بدانند ویروست دیگه ویروس نیست.)

_abiriamir
یک شنبه 28 تیر 1388, 16:46 عصر
هندلش رو به دست بیار و بهش پیغام بسته شدن رو بفرست .

خوب چطوری اینکار رو بکنم؟


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

پیشنهاد خوبیه

Felony
یک شنبه 28 تیر 1388, 18:13 عصر
با استفاده از توابع FindWindow و FindWindowEX ، همین کلمات رو جست و جو کنید .

_abiriamir
یک شنبه 28 تیر 1388, 19:23 عصر
میشه یه مثال بزنین؟

_abiriamir
یک شنبه 28 تیر 1388, 19:24 عصر
مهمتر از پیدا کردن هندلش دستور به بستن اونه
نه؟
اونو چیکار کنم؟

Felony
یک شنبه 28 تیر 1388, 19:29 عصر
این دستور بستنش :

PostMessage(Handle,WM_Close,0,0)

_abiriamir
دوشنبه 29 تیر 1388, 13:48 عصر
خب میشه یه مثال بزنین که handle او رو پیدا کنم؟

Felony
دوشنبه 29 تیر 1388, 15:00 عصر
این هم یک نمونه کد که پیغام بسته شدن رو به پنجره ی My Computer میده .


var
Hand:THandle;
begin
Hand:=FindWindow('CabinetWClass','My Computer');
PostMessage(Hand,WM_Close,0,0);
end;

_abiriamir
سه شنبه 30 تیر 1388, 12:35 عصر
ببخشیدا ولی میشه 2 تا چی رو برای من توضیح بدین؟:خجالت:
1. CabinetWClass چیه؟
2. شما گفتین My Computer
درسته؟
من برای برنامه ام که اسم معلومی نداره چی بگم؟

Felony
سه شنبه 30 تیر 1388, 13:02 عصر
تابع FindWindow دارای 2 پارامتر هست :
1.نام کلاس
2.نام پنجره

نام کلاس همون نامی هست که فرم برنامه ی شما از اون مشتق شده مثلا ( TForm1 )
نام پنجره هم همون عنوان فرمتون هست ( Caption )

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

FiACKER
سه شنبه 06 مرداد 1388, 11:57 صبح
جناب اقای مهندس SilverSoft شما مطمئنید که با FindWindow می شه هندل یه پروسه که پنجره نداره رو بدست بیاری ؟

راه های مختلفی هست که می تونید استفاده کنید !
در ویروسه مبارکتون کدی اضاف کنید که موقعیت و مشخصات ویروس رو در سیستم جاری در جایی ذخیره کنه !
حالا اگه می خواین لو نره می تونین encode ش کنین و در انتی ویروسه مبارک هم اون مشخصات رو که در جایی ثابت هست رو دریافت می کنین و ویروس مبارک رو به Fuuuuckه فنا بدین :لبخند:

Felony
سه شنبه 06 مرداد 1388, 12:35 عصر
جناب اقای مهندس SilverSoft شما مطمئنید که با FindWindow می شه هندل یه پروسه که پنجره نداره رو بدست بیاری ؟
آره مهندس FiACKER ، در این مورد مطمئن هستم ، نمونه ای که گزاشتم رو ببینید ، شما وقتی دقیقا نام کلاس و نام پنجره رو بدونید میتونید به راحتی هندلش رو گیر بیارید ، ویروسی هم که این دوستمون نوشتن فکر نمیکنم چیزی باشه جز یه فرم که خاصیت Visible = ّFalse شده باشه پش مثل نمونه میشه هندلش رو پیدا کرد .

نمونه رو بگیرید و فایل Program رو اجرا کنید ، با کلیک بر روی دکمه ی 1 فرم برنامه مخفی میشه ( Form1.Visible:=Fale ) حالا برنامه ی Finder رو اجرا کن و روی دکمه ی Find کلیک کن ، فرم به نمایش در میاد .

MSHService
چهارشنبه 07 مرداد 1388, 00:38 صبح
سلام

سه تا ویروس بودن که تو P30world بچه ها میومدن و ازشون مینالیدن و خودمم تو بانکمون

دچارشون شدم ، پس مجبور شدم آنتی شون رو بنویسم.

من PID تسکشون رو بدست میاوردم بعد Killَشون می کردم.

آخه کظمه غیض Processش Hide بود اما Taskش که Service نام داشت Hide نبود!

ببخشید که اصول توش رعایت نشده! من اینا رو باکمک Torry , swissdelphicenter نوشتم.

اینم سورس :


//----------------------------------------------------------------------
function EnumWindowsProc1 (Wnd: HWND; List: TStrings): BOOL; stdcall;
var
caption: array [0..256] of Char;
begin
Result := True;
if GetWindowText (Wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if IsWindowVisible(wnd) then
begin
List.AddObject( caption, TObject( Wnd ));
end;
end;
end;

function EnumWindowsProc2 (wnd: HWND; List: TStrings) : boolean ;stdcall;
var Caption: array[0..256] of Char;
begin
if GetWindowText (wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if not IsWindowVisible(wnd) then
List.AddObject( caption, TObject( Wnd ));
end;
Result :=True;
end;
//---------------------------------------
Function TMSHFORM.GetProcessList(Visible:Boolean):TStringLi st;
begin
Result:=TStringList.Create;
if not Visible then
EnumWindows(@EnumWindowsProc1, Integer(result))
else
EnumWindows(@EnumWindowsProc2, Integer(result));
end;
//-------------
Function TMSHFORM.EndTaskV(TaskName:String;TaskHWND:Hwnd):B oolean;
var hProcess,i : HWND;
pid : DWORD;
begin
Result:=false;
i := TaskHWND;//HWND(Listbox1.items.Objects
[Listbox1.itemindex]);
//i := HWND(TaskName);
PostMessage(i,wm_close,0,0);
GetWindowThreadProcessID( i, @pid );
hProcess := OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid);
Result:=TerminateProcess(hProcess, 0);
//Button1Click(Sender);

end;
//-------------------

Function TMSHFORM.RemoveFromMemory(ProcessName:String):Bool ean;
var hProcess,i : HWND;
pid : DWORD;
ProcessList1:TStringList;
l,j:integer;
s1,s2:String;
begin
Result:=false;
ProcessList1:=TStringList.Create;
ProcessList1:=GetProcessList(True);
if ProcessList1.Count>0 then
Begin
j:=-2;
for l :=0 to ProcessList1.Count-1 do
Begin
if LowerCase(ProcessList1[l])=LowerCase(ProcessName) then
Begin
j:=l;
Memo1.Lines.Add('Process '+ProcessName+' VIRUS Found.');
VirusFound1:=True;
RemoveFromMemoryV:=True;
End;
End;

if j=-2 then
Begin
Memo1.Lines.Add('VIRUS '+ProcessName +' Not Found In Memory !!!');
exit;
End;
if EndTaskV(ProcessList1[j],HWND(ProcessList1.Objects[j])) Then
Begin
Memo1.Lines.Add('Kill Process '+ProcessList1[j]+' OK');
ProcessTerminated:=True;
End
Else
Memo1.Lines.Add('Kill Process '+ProcessList1[j]+' Failed!!');
if ((ProcessName='smss32') or (ProcessName='lsass'))and(ProcessTerminated) then
Begin
s1:=RegReadCommand1(HLM,'\SOFTWARE\Microsoft\Windo ws\CurrentVersion\Run','SysUtils');
s2:=RegReadCommand1(HCU,'\SOFTWARE\Microsoft\Windo ws\CurrentVersion\Run','SysUtils');
if length(s1)>0 then
Begin
if DeleteFile(Trim(s1)) then
Memo1.Lines.Add('Delete File '+s1+' -> '+ProcessList1[j]+' OK')
else
Begin
if DeleteFile(Trim(s1)) then
Memo1.Lines.Add('Delete File '+s1+' -> '+ProcessList1[j]+' OK')
else
Memo1.Lines.Add('Delete File '+s1+' -> '+ProcessList1[j]+' Failed!!')
End;
End;
if length(s2)>0 then
Begin
if DeleteFile(Trim(s2)) then
Memo1.Lines.Add('Delete File '+s2+' -> '+ProcessList1[j]+' OK')
else
Begin
if DeleteFile(Trim(s2)) then
Memo1.Lines.Add('Delete File '+s2+' -> '+ProcessList1[j]+' OK')
else
Memo1.Lines.Add('Delete File '+s2+' -> '+ProcessList1[j]+' Failed!!')
End;
End;
End;

end;
End;//End If
//----------------
اینم تابع اصلی که از کد های بالا استفاده میکنه!


procedure TMSHFORM.Button10Click(Sender: TObject);
var hProcess,i : HWND;
pid : DWORD;
ProcessList1:TStringList;
l,j:integer;
ProcessName:String;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('**** Kill LSASS-SMSS1,2-KGH1,2 Ver1.2*********');
VirusFound1:=False;
VirusFound2:=False;
ProcessTerminated:=false;
RemoveFromMemoryV:=False;
Memo1.Lines.Add('Step 1 -> Kill Process');
ProcessName:='service';
VirusFound1:=RemoveFromMemory('service');
if VirusFound1 Then
Memo1.Lines.Add('Kill Process KGH Ver 2 OK');

VirusFound1:= RemoveFromMemory('kazme_gheyz');
if VirusFound1 Then
Memo1.Lines.Add('Kill Process KGH Ver 1 OK');

VirusFound1:= RemoveFromMemory('lsass');
if VirusFound1 Then
Memo1.Lines.Add('Kill Process LSASS OK');

VirusFound1:= RemoveFromMemory('smss32');
if VirusFound1 Then
Memo1.Lines.Add('Kill Process SMSS Ver1 OK');

VirusFound1:= RemoveFromMemory('smss64');
if VirusFound1 Then
Memo1.Lines.Add('Kill Process SMSS Ver2 OK');
End;//End If
//---------------------------------

امیدوارم کمکی کرده باشم.

موفق باشید.

FiACKER
چهارشنبه 07 مرداد 1388, 13:50 عصر
اولا که می شه بدون فرم ویروس نوشت !
دوما شما از کجا می دونید !؟
سوما به متنه پسته من توجه کنید ! من گفتم پروسه ای که پنجره نداره ! حداقلش اینه که ویروسی که من نوشتم پنجره نداشته تا حجمش کاهش پیدا کنه !

بی خیار !! ببخشید ... بی خیال :بامزه:

FiACKER
شنبه 10 مرداد 1388, 12:02 عصر
اقای MSHService عزیز :
این برنامه که نوشتین برای کزمه غیز جدیده یا اون قدیمیه !؟
اون قدیمیه : ایکن سفید رنگ داره و به راحتی پاک می شه.
این جدیده : ایکن نداره. یعنی ایکون برنامه های تحت داس داره و براحتی برنامه های انتی ویروس رو پاک می کنه :لبخند:
البته اگه انتی ویروسا بزارن اجرا بشه !!
نسخه ی جدید پروسه ای پنهان داره و پاک کردنش بسیار سخت هست !