Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите спрятать прогу от win2000 Добавлено: 26.11.03 18:47  

Автор вопроса:  Atma | ICQ: 161504457 
Помогите спрятать прогу от диспечера задач win2000
Как это можно сделать?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Cooller



Вопросов: 10
Ответов: 28
 Профиль | | #1 Добавлено: 27.11.03 07:03

`в модуле

Option Explicit

Private Declare Function RegisterServiceProcess Lib "kernel32.dll" _

(ByVal dwProcessId As Long, ByVal dwType As Long) As Long

Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long

`на форме

Private Sub Form_Load()

Call RegisterServiceProcess(GetCurrentProcessId, 1)

End Sub

`Аплодисменты! Всем спасибо:)

` by cooller

Ответить

Номер ответа: 2
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #2
Добавлено: 27.11.03 07:22

`Аплодисменты! Всем спасибо:)

` by cooller

да уж... :(( ответил...

человек про 2000 винду спросил. А как в мастдайке это сделать все знают.

Ответить

Номер ответа: 3
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #3
Добавлено: 27.11.03 07:34

гм..., недоответил

2Atma

а как в Win2k и прочих NT_шных форточках - народ не знает (или не говорит). По крайней мере ни кто ещё, ни разу не сказал. :((

Ответить

Номер ответа: 4
Автор ответа:
 Atma



ICQ: 161504457 

Вопросов: 33
Ответов: 14
 Профиль | | #4 Добавлено: 27.11.03 12:35
вот оно
вот еще
 
Вот эта WINAPI функиция занимается этим
Похоже тут надо просто переделать код для VB, момогите пожалуйста
 
 
А вот тут
пример как встраиваться в другой процесс, хотелось бы все это на VB VB.NET или C#
 
 
вот он на всякий случай:
Вот пример внедрения библиотеки в чужой процесс с использованием CreateRemoteThread :
Ж:-) (достаточно элегантно, не находишь)

BOOL CRemThreadInjector::DoInjectModuleInto(CExeModuleInstance *pProcess)
{
BOOL bResult = FALSE;
HANDLE hProcess = NULL;
HANDLE hThread = NULL;
PSTR pszLibFileRemote = NULL;
__try
{
if (TRUE == IsWindows9x())
__leave;
if (NULL == pProcess)
__leave;

char szLibFile[MAX_PATH];
::GetModuleFileNameA(
ModuleFromAddress(GetMsgProc),
szLibFile,
MAX_PATH
);

BOOL bFound = FALSE;
CModuleInstance* pModuleInstance;
for (long i = 0; i < pProcess->GetModuleCount(); i++)
{
pModuleInstance = pProcess->GetModuleByIndex(i);
if ( 0 == stricmp(pModuleInstance->Get_Name(), szLibFile) )
{
bFound = TRUE;
break;
} // if
} // for
if (bFound)
__leave;

// Get a handle for the process we want to inject into
hProcess = ::OpenProcess(
PROCESS_ALL_ACCESS, // Specifies all possible access flags
FALSE,
pProcess->Get_ProcessId()
);
if (hProcess == NULL)
__leave;

// Calculate the number of bytes needed for the DLL's pathname
int cch = 1 + strlen(szLibFile);

// Allocate space in the remote process for the pathname
pszLibFileRemote = (PSTR)::VirtualAllocEx(
hProcess,
NULL,
cch,
MEM_COMMIT,
PAGE_READWRITE
);
if (pszLibFileRemote == NULL)
__leave;
// Copy the DLL's pathname to the remote process's address space
if (!::WriteProcessMemory(
hProcess,
(PVOID)pszLibFileRemote,
(PVOID)szLibFile,
cch,
NULL))
__leave;
// Get the real address of LoadLibraryW in Kernel32.dll
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
::GetProcAddress(::GetModuleHandle("Kernel32"), "LoadLibraryA");
if (pfnThreadRtn == NULL)
__leave;
// Create a remote thread that calls LoadLibraryW(DLLPathname)
hThread = ::CreateRemoteThread(
hProcess,
NULL,
0,
pfnThreadRtn,
(PVOID)pszLibFileRemote,
0,
NULL
);
if (hThread == NULL)
__leave;
// Wait for the remote thread to terminate
::WaitForSingleObject(hThread, INFINITE);

bResult = TRUE;
}
__finally
{
// Free the remote memory that contained the DLL's pathname
if (pszLibFileRemote != NULL)
::VirtualFreeEx(hProcess, (PVOID)pszLibFileRemote, 0, MEM_RELEASE);

if (hThread != NULL)
::CloseHandle(hThread);

if (hProcess != NULL)
::CloseHandle(hProcess);
}
return bResult;
}
 
 

Ответить

Номер ответа: 5
Автор ответа:
 Atma



ICQ: 161504457 

Вопросов: 33
Ответов: 14
 Профиль | | #5 Добавлено: 27.11.03 12:50
вот еще только на дельфи:

Ответить

Номер ответа: 6
Автор ответа:
 Atma



ICQ: 161504457 

Вопросов: 33
Ответов: 14
 Профиль | | #6 Добавлено: 27.11.03 15:51
Ура, часть задачи решена!!
 
app.TaskVisible =False
скрывает прогу в win2000 от task managera!!!
но не скрывает ее в списке процессов!
 
Вопрос как тоже самое сделать на VB.NET (C#)?
 
 

Ответить

Номер ответа: 7
Автор ответа:
 bold



ICQ: 317091709 

Вопросов: 0
Ответов: 2
 Профиль | | #7 Добавлено: 05.12.03 19:59

Нужно думать не о том как ее спрятать (это по моему не возможно, ) а о том как запретить терминатить ее...

Ответить

Номер ответа: 8
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #8 Добавлено: 06.12.03 08:04
Чуваки, говорю еще раз, но уже в этот топик - если вам надо пример установки приоритета System на вашу прогу - мыльте. Исходники на VB 6

Ответить

Номер ответа: 9
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #9 Добавлено: 06.12.03 08:55

Или проще:

В From_Unload (QueryUnload) ставь Cancel=1

Или:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Select Case UnloadMode

Case vbFormControlMenu

MsgBox "Выгрузка формы из системного меню или кнопкой Х."

Case vbFormCode

MsgBox "Выгрузка из кода."

Case vbAppWindows

MsgBox "Windows заканчивает свою работу."

Case vbAppTaskManager

MsgBox "Выгрузка из менеджера задач."

Case vbFormMDIForm

MsgBox "Выгружается MDI форма."

End Select

End Sub

А дальше уже идет твоя фантазия в работу... :)

Ответить

Номер ответа: 10
Автор ответа:
 Enstain



Вопросов: 6
Ответов: 6
 Профиль | | #10 Добавлено: 07.12.03 11:48

"Чуваки, говорю еще раз, но уже в этот топик - если вам надо пример установки приоритета System на вашу прогу - мыльте. Исходники на VB 6"

Скиньте мне, плиз:

enstain@yandex.ru

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам