PDA

View Full Version : مخفی شدن برنامه از process



dkhatibi
چهارشنبه 30 فروردین 1385, 17:23 عصر
چطوری می شه برنامه ای در Process خای ویندوز نمایش داده نشه؟

AlirezaBahredar
پنج شنبه 31 فروردین 1385, 15:10 عصر
در رویداد TForm1.FormCreate فرمت این کد رو استفاده کن

(SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_E X_TOOLWINDOW

interrupt21
جمعه 01 اردیبهشت 1385, 09:18 صبح
در رویداد TForm1.FormCreate فرمت این کد رو استفاده کن

(SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_E X_TOOLWINDOW

این دستور برنامه رو از TaskBar مخفی می کنه نه از TaskManager

AlirezaBahredar
جمعه 01 اردیبهشت 1385, 14:41 عصر
بعد از اضافه کردن اون کد توی رویداد TForm1.FormClose این کد رو اضافه کن
Action:=ncNone;
Form1.hide;

rahele_s
جمعه 01 اردیبهشت 1385, 16:01 عصر
من یک تروجان دیدم که این قابلیت را داشت

Arash_j13
جمعه 01 اردیبهشت 1385, 19:11 عصر
یه راه اینکه از پروسس اینجکشن استفاده کنید

Ahmad Chehreghani
جمعه 01 اردیبهشت 1385, 20:34 عصر
اگر به system32 دسترسی داری فایل task.exe ( البته فکر کنم فایلش همینه )را برای نوشتن باز کن دیگه ctrl+alt+del کار نمی کنه
یا سرویس درست کن که دیده نشه و حق دسترسی رو مخفی کن

dkhatibi
شنبه 02 اردیبهشت 1385, 11:23 صبح
یه راه اینکه از سروسس اینجکشن استفاده کنید

اگر به system32 دسترسی داری فایل task.exe ( البته فکر کنم فایلش همینه )را برای نوشتن باز کن دیگه ctrl+alt+del کار نمی کنه
یا سرویس درست کن که دیده نشه و حق دسترسی رو مخفی کن




لطفا بیشتر توضیح دهید.

dkhatibi
پنج شنبه 07 اردیبهشت 1385, 22:55 عصر
چی شد هیچ کی راهی بلد نیست یا نمی خواهد بگه

Arash_j13
جمعه 08 اردیبهشت 1385, 05:30 صبح
در روش پروسس اینجکشن شما باید کد ها برنامتون رو به یه پروسه دیگه در حال اجرا تزریق کنید و به کمک اون پروسه کد ها رو اجرا کنید یه نمونه از پروسس اینجکش رو می تونید اینجا ببینید
http://www.salarsoft.somee.com/magaleh/m_process_injection.htm

sarvestan
جمعه 08 اردیبهشت 1385, 05:50 صبح
در ویندوز اکس پی حتی سرویسها هم تو لیست پروسسها نمایش داده میشه! پس مسلما نمیتونی با اعلام اینکه برنامت یک سرویس، خودت رو از لیست حذف کنی (;
تنها یک روش میمونه که همون اینجکشنه و البته یک روش ساده و در عین حال جالب! و اون اسفاده از مهندسی اجتماعی!!!
یعنی در یک کلام!!! سعی کن پروسست رو یک پروسس بیخطر و حتی لازم برای سیستم به کاربر معرفی کنی!!! یعنی یه جورایی خودت رو شبیه یک پروسس سیستمی کنی!!! این کار رو میتونی با حذف یک پروسس معمول سیستم که البته نباید برای سیستم ضروری باشه و شبیه کردن خودت - حتی با یک تغییر نام ساده - به اون پروسس، به کارت در سیستم مشغول بشی!!!
ctfmon.exe رو بعنوان مثال میتونی ازش کمک بگیری!!!

mamizadeh
جمعه 08 اردیبهشت 1385, 10:24 صبح
با سلام
دوست عزیز در حالت کلی اون طوری که من قبلا ها جستجو کرده بودم نمی شه
شایدم بشه و من نتونستم پیدا کنم
ولی
دوست عزیز چند راه برای این کار هستش
یکی اینکه تسک منجر را کلا ببندی که برای برنامه های گارد کننده خیلی خوبه .
راه دیگه اینکه فایلت رو با یک اسمس که شبیه به اسم ها فایل های سیستمی باشه با یک آیکون سیستمی وارد پوشه سیستم 32 کن بعدش اسم تایتل برنامت رو هم متفاوت با نام فایل اجرایی کن که تو داخل پوشه سیستم 32 هستش .بعد بگو اجرا بشه.
حالت سوم که به نظر من بهترین هستش و من خودم هم در یک برنامه ای که به سفارش برای ساختن صفحه ی گارد استفاده کرده بودم ایه که از هر دو روش بالا برای امنیت استفاده کنی.
با تشکر

dkhatibi
جمعه 08 اردیبهشت 1385, 20:53 عصر
می شه یک مثال اجرایی ارائه دهید.

SH.Daneshvar
جمعه 15 اردیبهشت 1385, 17:32 عصر
من یه تئوری ساده و فکر کنم عملی دارم :
1.برنامه شما با یک Theard و یا یک Timer چک کنه و وقتی پنجره Task Manager باز شد.
سعی کنه که ListBox مربوط به Proccess ها رو پیدا کنه که تمام این کارها با API
FindWindow به راحتی قابل اجراست.
2.شما اسم برنامه خودت رو توی اون لیست پیدا و اون رو حذف کن تمام این کارها هم به راحتی
و با استفاده از API ساده SendMessage انجام میشه.

موفق باشید.
یا حق.

dkhatibi
جمعه 15 اردیبهشت 1385, 21:39 عصر
خوب دوست عزیز
می توانید یک سورس بگذارید
کلا من با Messages به خوبی آشنا نیستم.

SH.Daneshvar
شنبه 16 اردیبهشت 1385, 11:29 صبح
سعی میکنم.
اما اگر قبلا با Visual C کسی کار کرده باشه اینجور کار‌ها رو خوب درک میکنه.
شما هم میتونید توی MSDN و یا Help دلفی بخصوص D9 و D10 مطالب کاملی گیر میارید.
منم سعی میکنم یک سورس واستون بنویسم و بزارم اینجا.

dkhatibi
شنبه 16 اردیبهشت 1385, 11:44 صبح
ممنون می شم
منتظرم

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 10:55 صبح
این سورس رو توی یک Thread و یا یک Timer که البته Thread بهتر بگذارید.
و ثابت APPNAME رو برابر با نام فایل exe کنید.


unit HiddenTskMgrX;

interface

procedure RemoveFromTskMgr();

implementation
uses
Windows,
CommCtrl;

const
APPNAME = 'HiddenTskMgr.exe';

procedure RemoveFromTskMgr();
var
hTskMgr,
hDlgProc,
hLstProc : HWND;

hProc: THandle;
dwProcID: DWORD;

LvFindInfo : TLVFindInfo;
pLvFindInfo : ^TLVFindInfo;
iItem: Integer;

sz: array [0 .. 512] of char;

rd: Cardinal;
begin
hTskMgr := FindWindow(WC_DIALOG, 'Windows Task Manager');
if (hTskMgr <> 0) then begin
hDlgProc := FindWindowEx(hTskMgr, 0, WC_DIALOG, '');
if (hDlgProc <> 0) then begin
hLstProc := FindWindowEx(hDlgProc, 0, WC_LISTVIEW, 'Processes');
if (hLstProc <> 0) then begin
GetWindowThreadProcessId(hLstProc, dwProcID);
hProc := OpenProcess(PROCESS_VM_OPERATION or
PROCESS_VM_READ or
PROCESS_VM_WRITE or
PROCESS_QUERY_INFORMATION, False, dwProcID);

pLvFindInfo := VirtualAllocEx(hProc, nil, sizeof(TLVFindInfo) , MEM_COMMIT, PAGE_READWRITE);
try
LvFindInfo.psz := VirtualAllocEx(hProc, nil, 512 , MEM_COMMIT, PAGE_READWRITE);
try
LvFindInfo.flags:= LVFI_STRING;

sz := APPNAME;

WriteProcessMemory(hProc, LvFindInfo.psz, @sz , 512 , rd);
WriteProcessMemory(hProc, pLvFindInfo , @LvFindInfo , sizeof(TLVFindInfo) , rd);

iItem := SendMessage(hLstProc, LVM_FINDITEM, WPARAM(-1), LPARAM(pLvFindInfo));
finally
VirtualFreeEx(hProc, LvFindInfo.psz, 0, MEM_RELEASE);
end;
finally
VirtualFreeEx(hProc, pLvFindInfo, 0, MEM_RELEASE);
end;

if (iItem > -1) then begin
ListView_DeleteItem(hLstProc, iItem);
end;
end;
end;
end;
end;


end.


موفق باشید.
یا حق.

dkhatibi
دوشنبه 18 اردیبهشت 1385, 11:24 صبح
این یونیت وجود خارجی دارد؟HiddenTskMgrX

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 11:58 صبح
نه خودم نوشتم.
تست کردم جواب میده.

dkhatibi
دوشنبه 18 اردیبهشت 1385, 14:46 عصر
خوب من کجا اونو به دست بیارم؟

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 14:59 عصر
خوب از همینجا کپی کن ببر توی یه فایل pas ذخیره کن. همین بعد ازش استفاده کن.
اگر خواستی برنامه کامل رو واستون بزارم.

موفق باشی.
یا حق.

dkhatibi
دوشنبه 18 اردیبهشت 1385, 17:21 عصر
متشکر می شم
من از اون کپی گرفتم و انجامش دادم اما با یک پیام خطا در نشناختن متغیر مواجه می شم.
اگه سورس کامل بگذارید خیلی بهتره

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 17:26 عصر
چه متغیری ؟
میش پیغام رو بگید !

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 17:38 عصر
اینم یه برنامه کامل که با Thread کار میکنه در ضمن کاری کردم که خودش اسم فایل exe رو
پیدا میکنه و از Task Manager حذفش میکنه.

موفق باشید.
یا حق.

dkhatibi
دوشنبه 18 اردیبهشت 1385, 18:35 عصر
خیلی خوب بود
اما به نظر می رسه برنامه مرتب این نام را حذف می کنه
یعنی فایل بلافاصله بعد از حذف اضافه شده و دوباره برنامه اونو حذف می کنه
درسته؟
ضمنا من متوجه نشدم کجا از Thread استفاده کردید؟

SH.Daneshvar
دوشنبه 18 اردیبهشت 1385, 18:38 عصر
درسته.

توی OnCreate فرم Class
Thread رو Create و راه‌اندازی میشه. و اونم دائم داره کار خودش رو انجام میده.
البته دوست من شما میتونید این برنامه رو Optimize تر هم کنید.
من وقت ندارم و گرنه بیشتر روش کار میکردم.

موفق باشی.
یا حق.

dkhatibi
دوشنبه 18 اردیبهشت 1385, 19:06 عصر
منظور از Optimize؟

SH.Daneshvar
سه شنبه 19 اردیبهشت 1385, 08:43 صبح
Optmize یعنی بهینه کردن کد برای سرعت و یا Size برنامه.
یعنی شما کاری کنید که برنامه بهتر و سریعتر عمل بکنه.

موفق باشید.
یا حق.

dkhatibi
سه شنبه 19 اردیبهشت 1385, 15:08 عصر
آیا می شه کاری کرد که کاربر متوجه حذف و آشکار شدن Procee نشه؟

SH.Daneshvar
سه شنبه 19 اردیبهشت 1385, 16:42 عصر
شاید باید کمی روش کار کرد.
البته راه دگیه هم نوشتن یک TaskManager و که شبیه Taskmanager ویندوز باشه ولی برنامه شما
رو نمایش نده.

lord_viper
چهارشنبه 20 اردیبهشت 1385, 21:48 عصر
می تونی یه کاره دیگه هم بکنی از listbox injectionاستفاده کن برایtaskmgrکه تو قسمت نکات برنامه نویسی در دلفی هست شاید به دردت بخوره

dkhatibi
شنبه 23 اردیبهشت 1385, 16:17 عصر
اما این روش قبلی شما آقای کشاورز پدر Cpu را در می آورد
Cpu Usage همیشه روی 100 وا میسته

B_YAGHOBI
یک شنبه 24 اردیبهشت 1385, 09:40 صبح
دوستان عزیز یک مثال گذاشتم :

B_YAGHOBI
یک شنبه 24 اردیبهشت 1385, 09:42 صبح
یادم رفت بگم بعد از اجرا کردن برنامه notepad اجرا میشه و این برنامه خودشو تو حافظه
به اون میچسبونه البته بعد از اجرا میتونید فایل اجرایی را پاک کنید و یا TaskList را هم نگاه کنید
خبری از Project1.exe نیست !!! ولی برنامه در حال اجراست !!!

dkhatibi
یک شنبه 24 اردیبهشت 1385, 16:24 عصر
ایا این کار با هر برنامه ی دلخواهی می شه کرد؟
اگه نخواسته باشیم یک فایل اجرایی دیگه اجرا بشه چه جور؟

B_YAGHOBI
دوشنبه 25 اردیبهشت 1385, 07:01 صبح
برای هر پروسسی میتوانید اینکار را انجام بدهید حتی میتوانید به Kernel32 در حافظه نیز
پروسس خود را لینک کنید.
در واقع ویروسهای مقیم در حافظه تحت ویندوز هم همین کار را انجام میدهند
شما حتی میتوانید یکی از توابع موجود در سیستم را نیز Inject کرده و تابع خودتان را قرار دهید
آدرس تابع قبلی را نگه داشته تا در صورت لزوم شما آنرا صدا بزنید.

dkhatibi
دوشنبه 25 اردیبهشت 1385, 18:51 عصر
اگر این کار را انجام دهیم آیا هر بار باید عمل Inject انجام شود.
من دنبال راهی هستم که برنامه لازم نباشد هر بار اجرا گردد

B_YAGHOBI
سه شنبه 26 اردیبهشت 1385, 07:13 صبح
در این صورت شما میبایست مثل ویروسها عمل کنید یعنی بخشی از کد خود را به یکی از
فایلهای اجرایی بچسبانید مثلا فایلهای ویندوز تا با اجرا شدن آنها کد شما هم اجرا شود

در یکی از تاپیکها طریقه اضافه کردن کدی به فایل اجرایی داده شده.

dkhatibi
سه شنبه 26 اردیبهشت 1385, 08:54 صبح
می شه آدرس بدبد؟

dkhatibi
شنبه 30 اردیبهشت 1385, 18:54 عصر
آقای B_YAGHOBI من منتظر توضیحات بیشتر شما هستم.

dkhatibi
یک شنبه 31 اردیبهشت 1385, 18:49 عصر
آقایانی که تا حالا نظراتشان را فرموده اند باز هم مارا بی نصیب نگذارند.

B_YAGHOBI
دوشنبه 01 خرداد 1385, 07:43 صبح
برنامه زیر را Download کنید.

این برنامه دارای کدی میباشد که این کد توسط این برنامه به برنامه اجرایی شما اضافه میشود.
در واقع این برنامه ابتدا برنامه اجرایی شما را Encrypt میکند سپس یک کد Decrypt به برنامه شما
اضافه میکند که با اجرا شدن آن ابتدا برنامه شما Decrypt شده سپس اجرا میشود.

dkhatibi
دوشنبه 01 خرداد 1385, 17:35 عصر
آقای B_YAGHOBI ما که چیزی متوجه نشدیم
میشه یک مثال بگذارید.

delphi77
دوشنبه 01 خرداد 1385, 19:17 عصر
با سلام
دوست عزیز در حالت کلی اون طوری که من قبلا ها جستجو کرده بودم نمی شه
شایدم بشه و من نتونستم پیدا کنم

می شه من یک نرم افزار دارم که همین کار را راحت انجام می ده msvdm

mortezakiaee
سه شنبه 30 بهمن 1386, 17:14 عصر
سلام.
البته به نظر میاد این یه پست قدیمیه که به دلیل یه تلیغ دوباره تو صفحه اول اومده ولی به حر حال به نظر من جالب بود.
اول یه سوال دوستانی که تو این پست بودن هنوز راه حل جدید پیدا نکردن؟
دوم یه راه حل نظری: taskmanager یه سری پروسس رو end نمیکنه. اینا اکثرا پروسس هایی هستن که تحت account های خود ویندوز run می شن. مثل NT AUTHORITY\LocalService
نمیشه پروسس خودمونو تو این اکانت رجیستر کنیم؟
مشکل پسوردشو نداریم

dkhatibi
سه شنبه 30 بهمن 1386, 19:28 عصر
یک راهی که تو همین تاپیک مطرح شد گذاشتن نامهایی مانند WinLogon و .. می باشد. در این صورت برنامه ی ما end نمی شه.
اما منظور مخفی شدن کامل بود که فعلا راه حلی نیافت...