daldegam 0 Denunciar post Postado Março 23, 2010 Olá! Estou com um problema que estou tentando achar uma solução e ainda não consegui. Seguinte... Tenho um programa X, que não pode ser aberto quando o programa Y estiver em execução... Caso isso ocorra o programa Y altera algumas coisas no programa X para fazer coisas não autorizadas... Fiz um sistema de verificação de janelas e etc... Isso funcionava perfeitamente até esses dias quando descobriram um novo programa chamado: HideToolz O que esse programa faz? - Ele some/desaparece/oculta o um determinado programa em execução para que outro programa não o encontre. Com isso lá se foi minha verificação... Preciso de uma forma de ver as 10 ultimas aplicações que o windows abriu, pegar o .exe, fazer um crc32 simples, com isso comparar com meu banco de dados de programas maliciosos... A questão toda é: Como e onde o windows guarda tal informação? Onde ele guarda uma lista dos 10 ultimos arquivos executáveis que foram abertos e seus respectivos caminhos? Quem quiser dar uma olhada no programa HideToolz o link de download é: http://www.4shared.com/file/247763569/12430fdd/HideToolz.html Verificação do .exe no virustotal.com: http://www.virustotal.com/pt/analisis/9c51b691aabc5931f7e1b8dce7b9810ad5a266843aa6ea30e666c3afd98cb9f4-1267955733 Quem for testar ele pode ver que ao ser aberto ele não aparece no CTRL+ALT+DEL e em outro lugar algum. Ele já se abre oculto. Aguardo respostas. Obrigado a todos. Abraços! Leandro Daldegam ;] Compartilhar este post Link para o post Compartilhar em outros sites
daldegam 0 Denunciar post Postado Março 24, 2010 Seguinte pessoal... Meu sistema funciona procurando de 4 maneiras... Procura nos processos do windows por: - Scan pelo nome da janela exata - Scan pelo nome parcial da janela - Scan pela classe da janela - Scan pela mémoria (Os 20 primeiros bytes do entrypoint do programa) Porem... Esse HideToolz oculta qualquer programa e faz com que a minha verificação não encontre os programas bloqueados no computador. Assim um determinado player pode usar um hacker no jogo livremente sem o anti-hacker detectar o programa malicioso. Ate agora não encontrei nada para encontrar os processos ocultos pelo hidetoolz. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2010 Verificação de execução de programas está envolvida com SO. Logo, terá de fazer chamadas a ele, como se estivesse na linha de comando Você tem que pesquisar sobre os comandos do Windows. Um exempplo para Linux seria um simples comando assim: $ ps ux | egrep "nome do programa" Use a função popen() para manipular processos. Com ela você executa comandos no SO e trata o retorno como se fosse uma stream comum, aberta por fopen() Compartilhar este post Link para o post Compartilhar em outros sites
daldegam 0 Denunciar post Postado Abril 23, 2010 Beraldo, infelizmente não é esse o caso. Esse programa Hidetoolz instala um driver no windows para conseguir acesso ao Kernel do windows. Qualquer programa que eu faça que não use um driver para pegar a lista a nivel do kernel usaria as funções normais do windows, que no caso o hidetoolz manipula as mesmas. Pelo que pesquisei a unica solução é fazer um driver para instalar no computador e conseguir acesso ao kernel do windows para pegar de fato a lista original de programas abertos. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
karlosE 0 Denunciar post Postado Abril 24, 2010 Estou com o mesmo problema que vcs para detectar programas ocultos pelo hidetoolz e pesquisando sobre esse assunto percebi que esse tal programa é um rootkit, sendo estou a procura de um fonte que faça o trabalho de um anti-rootkit. Qual quer coisa que encontrar vo postar pra ver se conseguimos solucionar o nosso problema juntos xD. Encontrei um programa que emcontra os processos ocultospor rootkit, mas precisaria de um fonte que fizesse isso para poder adaptar aqui. http://www.4shared.com/file/4MYkiLoo/RootKit_Unhooker.html Compartilhar este post Link para o post Compartilhar em outros sites
LeandoD 0 Denunciar post Postado Abril 24, 2010 daldegam, poderia postar o codico de fonte de seus scan ? porque poderia estudar e adapitar um scan pelo kernel seria o mais adequado pra encontrar esse tal de HideToolz Aguardando Resposta! Compartilhar este post Link para o post Compartilhar em outros sites
karlosE 0 Denunciar post Postado Abril 25, 2010 Este aqui e o codigo do meu scan, que verifica se o processo possui um dos entrypoint listados, caso possua ele fecha o aplicativo: #include "stdafx.h" #include "AntiHack.h" #include <windows.h> #include <tlhelp32.h> #include <stdlib.h> ANITHACK_PROCDUMP g_ProcessesDumps[MAX_PROCESS_DUMP] = { {0x4C8259, {0xA1, 0x38, 0xBD, 0x4C, 0x00, 0x8B, 0x00, 0x8B, 0x4D, 0xFC, 0xBA, 0xC0, 0x82, 0x4C, 0x00, 0xE8, 0x1F, 0xF1, 0xFF, 0xFF, 0x33, 0xDB, 0xE8, 0xF8, 0xBE, 0xF3, 0xFF, 0x33, 0xC0, 0x5A, 0x59, 0x59}}, //Catastrophe {0x4018bb, {0x74 ,0x3F ,0x0F ,0xB6 ,0x45 ,0xEC ,0x0F ,0xB6 ,0x9D ,0x74 ,0xFF ,0xFF ,0xFF ,0x39 ,0xD8 ,0x75 ,0x30 ,0x6A ,0x01 ,0x6A ,0x39 ,0x68 ,0xD4 ,0x75 ,0x40 ,0x00 ,0xE8 ,0x96 ,0x08 ,0x00 ,0x00 ,0x50}}, // Hasty MU {0x4C5F31, {0x7C, 0x23, 0x8B, 0x45, 0xFC, 0x80, 0x38, 0xC1, 0x75, 0x1B, 0x8B, 0x45, 0xFC, 0x80, 0x78, 0x02, 0xF3, 0x75, 0x12, 0x8B, 0x45, 0xFC, 0x80, 0x78, 0x03, 0x00, 0x75, 0x09, 0x8B, 0x45, 0xFC, 0x80}}, // Catastrophe }; void SystemProcessesScan() { HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(hProcessSnap != INVALID_HANDLE_VALUE) { PROCESSENTRY32 pe32; pe32.dwSize = sizeof(PROCESSENTRY32); if(Process32First(hProcessSnap, &pe32)) { do { HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID); if(hProcess != NULL) { if(ScanProcessMemory(hProcess)) { MessageBoxA(FindWindowA(0,"Hack detect"), "Found hack software in your system.\n\nHint: Close all illegal programs and run application again.", "", MB_OK | MB_ICONSTOP); ExitProcess(1); } } } while(Process32Next(hProcessSnap, &pe32)); } } CloseHandle(hProcessSnap); } bool ScanProcessMemory(HANDLE hProcess) { for(int i = 0; i < MAX_PROCESS_DUMP; i++) { char aTmpBuffer[MAX_DUMP_SIZE]; SIZE_T aBytesRead = 0; ReadProcessMemory(hProcess, (LPCVOID)g_ProcessesDumps[i].m_aOffset, (LPVOID)aTmpBuffer, sizeof(aTmpBuffer), &aBytesRead); if(memcmp(aTmpBuffer, g_ProcessesDumps[i].m_aMemDump, MAX_DUMP_SIZE) == 0) { return true; break; } } return false; } Compartilhar este post Link para o post Compartilhar em outros sites
LeandoD 0 Denunciar post Postado Abril 25, 2010 karlosE, vou estudar dei uma analise de olho no caso q seja achado o programa x q naum poder estar aberto junto com y no caso ele exibe a msg :"Found hack software in your system.\n\nHint: Close all illegal programs and run application again." caso naum der OK o programa continuara aberto. Substitua por isso: " CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(MsgBox),NULL,0,0); Sleep(5000); ExitProcess(0); " no casa você define a mensage Ex: " void MsgBox(){ MessageBoxA(NULL,"Found hack software in your system.\n\nHint: Close all illegal programs and run application again.",MB_OK | MB_IConstop); } " Assim a mensage é exibida logo apos seu programa sera fexado Estou analizando um suposto scan pelo kernel volto com noticias! Compartilhar este post Link para o post Compartilhar em outros sites
karlosE 0 Denunciar post Postado Abril 26, 2010 Hum, não tinha reparado este erro, vlw. Vou continuar as buscas aqui tambem. Compartilhar este post Link para o post Compartilhar em outros sites
daldegam 0 Denunciar post Postado Abril 26, 2010 Source / Binarios: http://www.security.org.sg/code/kproccheck.html Use KProcCheck -p show kernel active process list. KProcCheck -s show scheduler thread list. KProcCheck -d show kernel module list. KprocCheck -t show hooked SDT entries. KprocCheck -g show hooked GDI SDT entries. KProcCheck -u unload support driver. Meu source você pode considerar a mesma coisa do karlosE... é meio diferente o meu mais na teoria é a mesma coisa... Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
karlosE 0 Denunciar post Postado Abril 29, 2010 Esse source é bom e até facil de adaptar, mas o problema é que ele nao é compativel com o vista nem o seven, dai nem adianta =/. Compartilhar este post Link para o post Compartilhar em outros sites
daldegam 0 Denunciar post Postado Abril 30, 2010 Se voce usar o WDK do seven tem como fazer o driver para todos os windows... Conheço um cara que fez.. só que ele nao passa e nem fala como fez... Ele programou o driver do zero... Abraços! Compartilhar este post Link para o post Compartilhar em outros sites