PDA

Просмотр полной версии : Помогите с скрытием.


basik000100
28.04.2012, 17:32
Здравствуйте. Люди хочу написать скрытие, но хз как. Кто может помогите. Просто скажите хотя бы как или дайте пример и скажите что изменить. Буду благодарен. Можете писать в skype romashko-acc

FedorFedotov
28.04.2012, 18:22
ап

Dimedrol1536
28.04.2012, 19:30
Вот вам скрытие.
void EraseHeaders(HINSTANCE hModule1)
{

PIMAGE_DOS_HEADER pDoH;
PIMAGE_NT_HEADERS pNtH;
DWORD i, ersize, protect;

if (!hModule1) return;

pDoH = (PIMAGE_DOS_HEADER)(hModule1);

pNtH = (PIMAGE_NT_HEADERS)((LONG)hModule1 + ((PIMAGE_DOS_HEADER)hModule1)->e_lfanew);

ersize = sizeof(IMAGE_DOS_HEADER);
if ( VirtualProtect(pDoH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pDoH + i) = 0;
}

ersize = sizeof(IMAGE_NT_HEADERS);
if ( pNtH && VirtualProtect(pNtH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pNtH + i) = 0;
}
return;
}

typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

typedef struct _ModuleInfoNode
{
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
HMODULE baseAddress;
unsigned long entryPoint;
unsigned int size;
UNICODE_STRING fullPath;
UNICODE_STRING name;
unsigned long flags;
unsigned short LoadCount;
unsigned short TlsIndex;
LIST_ENTRY HashTable;
unsigned long timestamp;
} ModuleInfoNode, *pModuleInfoNode;

typedef struct _ProcessModuleInfo
{
unsigned int size;
unsigned int initialized;
HANDLE SsHandle;
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
} ProcessModuleInfo, *pProcessModuleInfo;

#define UNLINK(x) (x).Blink->Flink = (x).Flink; \
(x).Flink->Blink = (x).Blink;

int HideModule( HMODULE hMod )
{
ProcessModuleInfo *pmInfo;
ModuleInfoNode *module;

_asm
{
mov eax, fs:[18h]
mov eax, [eax + 30h]
mov eax, [eax + 0Ch]
mov pmInfo, eax
}

module = (ModuleInfoNode *)(pmInfo->LoadOrder.Flink);

while(module->baseAddress && module->baseAddress != hMod){
module = (ModuleInfoNode *)(module->LoadOrder.Flink);}

if(!module->baseAddress){
return 0;}

UNLINK(module->LoadOrder);
UNLINK(module->InitOrder);
UNLINK(module->MemoryOrder);
UNLINK(module->HashTable);
memset(module->fullPath.Buffer, 0, module->fullPath.Length);
memset(module, 0, sizeof(ModuleInfoNode));

return 1;
}

slava-zis
28.04.2012, 19:37
Вот вам скрытие.
void EraseHeaders(HINSTANCE hModule1)
{

PIMAGE_DOS_HEADER pDoH;
PIMAGE_NT_HEADERS pNtH;
DWORD i, ersize, protect;

if (!hModule1) return;

pDoH = (PIMAGE_DOS_HEADER)(hModule1);

pNtH = (PIMAGE_NT_HEADERS)((LONG)hModule1 + ((PIMAGE_DOS_HEADER)hModule1)->e_lfanew);

ersize = sizeof(IMAGE_DOS_HEADER);
if ( VirtualProtect(pDoH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pDoH + i) = 0;
}

ersize = sizeof(IMAGE_NT_HEADERS);
if ( pNtH && VirtualProtect(pNtH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pNtH + i) = 0;
}
return;
}

typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

typedef struct _ModuleInfoNode
{
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
HMODULE baseAddress;
unsigned long entryPoint;
unsigned int size;
UNICODE_STRING fullPath;
UNICODE_STRING name;
unsigned long flags;
unsigned short LoadCount;
unsigned short TlsIndex;
LIST_ENTRY HashTable;
unsigned long timestamp;
} ModuleInfoNode, *pModuleInfoNode;

typedef struct _ProcessModuleInfo
{
unsigned int size;
unsigned int initialized;
HANDLE SsHandle;
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
} ProcessModuleInfo, *pProcessModuleInfo;

#define UNLINK(x) (x).Blink->Flink = (x).Flink; \
(x).Flink->Blink = (x).Blink;

int HideModule( HMODULE hMod )
{
ProcessModuleInfo *pmInfo;
ModuleInfoNode *module;

_asm
{
mov eax, fs:[18h]
mov eax, [eax + 30h]
mov eax, [eax + 0Ch]
mov pmInfo, eax
}

module = (ModuleInfoNode *)(pmInfo->LoadOrder.Flink);

while(module->baseAddress && module->baseAddress != hMod){
module = (ModuleInfoNode *)(module->LoadOrder.Flink);}

if(!module->baseAddress){
return 0;}

UNLINK(module->LoadOrder);
UNLINK(module->InitOrder);
UNLINK(module->MemoryOrder);
UNLINK(module->HashTable);
memset(module->fullPath.Buffer, 0, module->fullPath.Length);
memset(module, 0, sizeof(ModuleInfoNode));

return 1;
}

этот код не спасет от фроста, но это скрытие и оно о боже РАБОТАЕТ /dgs (против комаров и тюленей /horror)

Dimedrol1536
28.04.2012, 19:48
Слава, он просил скрытие, вот ему и скрытие./dgs

DefenderYO
28.04.2012, 20:06
basik000100, каким образом ты хочешь написать скрытие, если ты даже не знаешь где копать?

slava-zis
28.04.2012, 20:48
basik000100, каким образом ты хочешь написать скрытие, если ты даже не знаешь где копать?
"если ты даже не знаешь где копипастить?"
может так? /dgs

FedorFedotov
29.04.2012, 10:46
Он просил помочь, или объяснить как его вообще писать хотя бы примерно

basik000100
29.04.2012, 11:12
Да

BLACK_DEAD
29.04.2012, 11:33
делай мини обход убивая части frostcollector'a и gameShield , а скрытие я писать неумею

ЧитерВСЕЛЕННОЙ
01.05.2012, 01:26
а как делать мини обход?по подробней можно?

BLACK_DEAD
01.05.2012, 09:52
ЧитерВСЕЛЕННОЙ, смотри на код мазая и прописывай свое это все что я умел/dgs и мне никто не дает обходы/problem