Jump to content


Photo

Windows Agents


  • Faça o login para participar
11 replies to this topic

#1 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 20/11/2004, 20:58

Olá pessoal! ;)

Começei ontem a desenvolver o Windows Agents... um programa que será freeware e terá 3 agentes (inicialmente):
  • Matador: Irá remover vírus, worms, trojans, spywares, e tudo o que for destrutivo para o PC...
  • Mecânico: Dará ao usuário opção de alterar várias configurações ocultas do Windows, tanto para personalizá-lo como protegê-lo...
  • Gari: Ferramentas avançadas para limpar o sistema e proteger a privacidade do usuário...
Bom como começei ele ontem, o projeto ainda está "no osso"...

A tela inicial do programa deverá ficar parecida com essa...

Posted Image

Algo bem parecido como GIANT SpyWare.... :P

Bom... postei aqui pelo seguinte problema: vou ter alguns problemas durante a confecção do problema né? por ex., eu não sei como poderei detectar vírus, worms, trojans, spys... vou precisar da ajuda de vc's para isso...
Eu até tenho uma idéia... nos sites das fabricantes de antivírus e antispywares, eles disponibilizam uma etapa para remoção manual da praga... pedindo ao usuário para deletar tais arquivos e tais chaves do registro... daí pensei: criar uma função para cada praga... checando se há determinados arquivos e chaves no registro... e ao fazer scan, ir executando as funções... o q vcs acham?
Bom... por enquanto será o único problema...
Quanto ao agente Mecânico... pode deixar que eu sei fazer tudinho... pois conheço bem o registro do Windows... <_<
Já o agente Gari... tb acho q darei conta... até já dei uma começada, vejam:

Posted Image

Ainda falta mt né?... mas aos poucos nóis consegue...

Acho até que vou deixar o projeto OpenSource... para ficar mais fácil na colaboração... pensei até em postar os fontes aqui... mas por enquanto tou dando uma organizada...

Bom, por enquanto é isso aí pessoal... espero colaboração!

Ah, já ia me esquecendo: no agente Gari, ele procurar por arquivos inúteis do sistema... por enquanto eu apenas conheço estes:

*.GID
*.~*
*.TMP
*.OLD
*.BAK
*.DA0
*.$DB
*.DB$
*.$*
*.*$
mscreate.dir
chklist.*
*.lst
*.prv
*.me
*.faq
*.ftg
*.ann
*.bmk
*.fts
*.diz
*.bk2
*.??~
*.~??
*log.txt
*.000
*.001
*.002
thumbs.db
index.dat
*.cnt
*._mp
*.syd
*.log
*.dmp
*.chk
*.---
~*.*
*.*~

Tem algum errado aqui? Ah... e eu também precisava das descrições de cada arquivo... mas isso eu acho que eu consigo...
Se vc's souberem algum que num tem aki, podem postar... :lol:

Bom, o gente Gari tb num vai ser só isso...

Ele tb vai excluir:

Lixeira
Arquivos Temporários do Windows
Histórico
Cookies
Downloaded Program Files
Arquivos Temporários da Internet
Arquivos Recentes (C:\Windows\Recents)
Fetching Files
e mais algumas coisas...

Qualquer sugestão, será bem-vinda... :D

Por enquanto disponibilizei o que já fiz por enquanto... clique aqui para baixá-lo (1,72 MB - Arquivo de Instalação)

Também estarei implementando um form para identificar os erros ocorridos no programa e enviá-los à mim... tipo o Relatório de Erros da Microsoft...

Já ia me esqueçendo... e quanto ao nome? Windows Agents tá bom? Sugira um nome... acho que tá meio tosco... :P Pensei neste nome por causa do Matador, do Mecânico, do Gari... hehe os agentes do Windows...

Bom... falei demais... espero a colaboração de vc's... FUI! :DAté Mais :)

Edição feita por: VidaLoka, 20/11/2004, 20:59.


#2 nórinho

nórinho

    Turista

  • Usuários
  • 44 posts
  • Sexo:Não informado
  • Localidade:São-Paulo

Posted 21/11/2004, 19:10

Vai em frente cara, eu a partir de hoje vou começar a pesquisar sobre os lixos que estão em nossos computadores... ;)
Meu e-mail é hrm10@bol.com.br...
my mail ====>grdhrm@gmail.com (mande-me um e-mail)
----------------
"Não me preocupo com o futuro pois eu sei que em breve ele virá"
"O verdadeiro sabio é eterno aprendiz"

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 22/11/2004, 14:44

Olá pessoal! ;)

Eba... surgiu o primeiro colaborador... :P

Valew nórinho! Qualquer ajuda é bem-vinda... ;)

Aí pessoal, andei estudando algumas pastas do XP e encontrei algumas informações:
  • Arquivos recentes - C:\Documents and Settings\Usuário\Recent para cada usuário existente
    Arquivos temporários do Windows - C:\Windows\Temp e C:\Documents and Settings\Usuário\Configurações Locais\Temp para cada usuário existente
  • Arquivos temporários da Internet - C:\Documents and Settings\Usuário\Configurações locais\Temporary Internet Files, C:\Documents and Settings\Usuário\Configurações locais\Temp\Temporary Internet Files\Content.IE5 e C:\Documents and Settings\Usuário\UserData para cada usuário existente
  • Cookies - C:\Documents and Settings\Usuário\Configurações locais\Temp\Cookies e C:\Documents and Settings\Usuário\Configurações locais\Temporary Internet Files para cada usuário existente
  • Histórico – C:\Documents and Settings\Usuário\Configurações locais\Histórico e C:\Documents and Settings\Usuário\Configurações locais\Temp\Histórico\History.IE5 para cada usuário existente
  • Lixeira - C:\RECYCLER (Não há uma para cada usuário? Onde se encontram?)
  • Programas baixados - C:\WINDOWS\Downloaded Program Files (cuidados especiais em remover estes arquivos, pois podem existir arquivos que o usuário pode não querer deletar... então... só listar os “suspeitos”)
* C:\ - Coloquei só como exemplo, pois o soft detectará quantas unidades de disco rígido há e pesquisará em todas encontradas
* WINDOWS - Coloquei só como exemplo, pois o soft detectará a verdadeira pasta do Windows

Por enquanto é só... <_<

Ah, quem use outra versão de Windows poderia colaborar tb... pois sei que no 98 (e 95) é tudo diferente... se num me engano a lixeira é C:\Recycle né? Entaum, se vc usa outro Win, pode postar... B) Me ajudem pois acho que vou fazer uma rotina para cada versão do Windows, né? É melhor eu acho... evita bug's... B)

Recados:
  • Prog e proteus_adi: Já que vc's são monitores da sala, devem entender Delphi né? (:P) Então, qualquer colaboração é bem-vinda! Ah, e vc's poderiam pendurar o post né? Tipow, "Projeto Windows Agents"... PS: Ainda acho este nome meio tosco... <_<
  • [[[insaNo]]: Vc me falou que é o Administrador do ActiveDelphi né? Então... vc poderia criar uma seção lá no fórum da Active pra quem quiser colaborar também né? Qualquer coisa entre em contato... ;) Ah... eu sou cadastrado lá viu... tô até na seção Colaboradores... :P
Avisos:
  • Qualquer ajuda de qualquer colaborador, irei listar no soft viu!... :P
    Como todo soft free e de código aberto (calma, ainda será, esperem eu organizar...) sempre temos que colocar seus respectivos colaboradores... ficará na seção "Sobre" do soft...
  • Quando eu acabar de organizar eu irei fazer um site em um host free com suporte à PHP, para nós instalarmos o script PHPCollab, ótimo para administrar projetos multi-usuários (entenda como colaboradores :P)... e qnd isso estiver pronto colocarei o projeto no CódigoLivre e no SourceForge...
Finalizando, estive pesquisando aqui e o Mecânico será uma bela ferramenta para alterar configurações do Windows... achei várias coisas aqui num site americano para alterar as config's no registro... mt coisa mesmo...não posso nem imaginar qnd nosso primeiro Beta estiver pronto... (:D)...

T+ :DAté Mais :)

Edição feita por: VidaLoka, 22/11/2004, 15:12.


#4 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 23/11/2004, 08:57

Paulo Freitas...

Somente registrando o que já conversamos um pouco pelo MSN.
Deve tomar cuidado no que diz respeito a manipulação de arquivo do sistema, é uma responsabilidade muito grande.

Detalhes que devem ser levados em consideração:
- a Microsoft possui "92 versões" de 1 S.O. chamado Windows;
- é necessário existir uma forma de atualização on-line, pode ser por banco de dados, algo simples, em Paradox mesmo ou algo proprietario, para ter uma melhor segurança;

Um lance que, vez ou outra tira o sono dos usuários é a lista de itens inicializados no sistema, que não são facilmente acessiveis, nos sistemas antigos isto existia no WIN.INI e em outro arquivo que não me recordo agora.

Quanto a remoção dos vírus, realmente acredito que será a parte mais complexa, pela questão de manter o sistema atualizado e por saber que um vírus pode vir a infectar o seu programa. Sugestão: deve haver um modulo em modo console que fique monitorando a memória o tempo todo e o mesmo deve ser a primeira coisa a "entrar na memória", ou melhor, entrar logo após o sistema operacional, para evitar que outras pragas tomem o controle do sistema.

Desconheço o funcionamento técnico do sistema anti-virus, mas os bons tem que ser chato, deve ter um grande vinculo com o sistema operacional, para, se necessário, parar qualquer processo por este ser perigoso.

Não faço idéia de como tais procedimentos seriam criados em Delphi, acredito que será necessário muita manipulção de API do Windows e ainda algumas funções de baixo nível como interrupções e manipulação da memória... nada simples.

Detalhes sobre o seu post, no que diz respeito aos arquivos desnecessários:
Seu sistema fará muito uso de processo, sendo assim, estes precisam ser bem otimizados para evitar desperdicio.
*.DB$ equivale a *.*$
*.??~ equivale a *.*~
*.~?? equivale a *.~*
------
Mero mortal!

#5 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/11/2004, 11:57

Detalhes sobre o seu post, no que diz respeito aos arquivos desnecessários:
Seu sistema fará muito uso de processo, sendo assim, estes precisam ser bem otimizados para evitar desperdicio.
*.DB$ equivale a *.*$
*.??~ equivale a *.*~
*.~?? equivale a *.~*


Valews! É que eu fui coletando as informações e num revisei... <_<
Mas mesmo assim desse jeito, um scan era feito no máximo 2 minutos... B)

Quanto à forma de detectar vírus e spys, pensei no seguinte:

Para não ser muito demorado, eu acho, que seria melhor assim:

A maioria de antivirus e antispys fazem seus scans varrendo os arquivos, em todo o HD...
Pensei em fazer o Scan tipo o SpyBot, pelas pragas, algo mais rápido, acho eu...

Daí eu faria assim:

O soft terá dois arquivos separados: um pra lista de vírus e um pra lista de spys...

Pensei em ser arquivos XML's...

Sua estrutura seria algo como:

No caso da lista de antispyware...

<?xml version="1.0" encoding="UTF-8"?>
<spywares definition="23/11/2004 05:49">
<threat id="1" name="KaZaA">
<registry>HKEY_CURRENT_USER\Software\Kazaa\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\ResultsFilter\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\CloudLoad\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\ConnectionInfo\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\LocalContent\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Advanced\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\InstantMessaging\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\LocalContent\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Skins\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\UserDetails\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\Bandwidth\in\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\Bandwidth\LastEstimate\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\KaZaA\Bandwidth\out\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Classes\magnet\</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Classes\magnet\shell\open\command\</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\LastSearchHash</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Advanced\ScanFolder</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\InstantMessaging\IgnoreAll</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Search\</registry>
<registry>HKEY_CURRENT_USER\Software\ResultsFilter\adult_filter_level</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\LastEstimate\b</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\in\b0</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\out\b0</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\in\b0seconds</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\out\b0seconds</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\in\b1</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\out\b1</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\CacheDiscoveryTime</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\CacheHost</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\CachePort</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\UserDetails\CountryCode</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\LocalContent\DatabaseDir</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\DlDir0</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\LocalContent\DownloadDir</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\UserDetails\AutoConnected</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\ResultsFilter\firewall_filter</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Skins\SkinsDir</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\Transfer\NoUploadLimitWhenIdle</registry>
<registry>HKEY_CURRENT_USER\Software\Kazaa\UserDetails\UserName</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\FirewallStatus</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\ListenPort</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\my_ip_address</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\network_config</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\UDP_probe_successes</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\UDP_receive_status</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\Bandwidth\LastEstimate\time</registry>
<registry>HKEY_LOCAL_MACHINE\Software\Kazaa\ConnectionInfo\KazaaNet</registry>
</threat>
<threat id="2" name="Grokster">
<registry>HKEY_LOCAL_MACHINE\Software\Classes\magnet\URL Protocol</registry>
</threat>
</spywares>

Interessante, não?

Daí o soft iria pesquisar nesta lista, as entradas do registro, se existirem, detecta, informa ao usuário, e dá opção de deletá-las...
Isso também serveria para arquivos, seria só acrescentar no XML:

<file>Local do Arquivo</file>

E tb, aos processos em execução e arquivos iniciados junto com o Windows...

<process>Arquivo</process>
<startup>Arquivo</startup>

Que vc's acham da idéia?

T+ :DAté Mais :)

#6 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 23/11/2004, 12:37

O esquema acima é legal, porem acho que não precisaria esse tanto de chaves para identificar se um spy está instalado (normalmente, com uma ou duas vc já saberá).

Quanto aos virus, será um pouco mais complicado, uma vez que os piores virus não dependem de nome de arquivo (mudam constantemente), os antiviruses procuram os arquivos por uma "assinatura" que identifica o vírus independente do nome do arquivo.

Abraço.

#7 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/11/2004, 12:56

O esquema acima é legal, porem acho que não precisaria esse tanto de chaves para identificar se um spy está instalado (normalmente, com uma ou duas vc já saberá).


Mas tipow, todos bons antispys atualmente fazem isso... como o GIANT e o SpySubstract... pesquisam várias chaves... serve também pra limpar a praga do registro né? Penso eu... :P

T+ :DAté Mais :)

#8 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 23/11/2004, 13:26

você poderia deixar um arquivo para identificar com apenas as principais e outro com as chaves que devem ser limpas (se achar, limpa).

Quanto mais rápido e eficiente for o sw, mais sucesso fará.

Abraço.

#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/11/2004, 16:57

você poderia deixar um arquivo para identificar com apenas as principais e outro com as chaves que devem ser limpas (se achar, limpa).

Quanto mais rápido e eficiente for o sw, mais sucesso fará.


Bom... não precisaria nem criar outro arquivo... pode-se fazer no mesmo, algo como:

<registry_search>Principal</registry_search>
<registry_clean>Se houver, pesquisa e deleta essas</registry_clean>

Quanto mais rápido e eficiente for o sw, mais sucesso fará.


Bom, mais todos antispys pesquisam por todas chaves do registro... esse exemplo tirei do GIANT e do SpySubstract... e num soft protótipo que fiz, usando estas chaves acimas, ele escaneou todas essas chaves e detectou as existentes em milésimos de segundos!

Bom...

Quanto ao nome do soft, q acho q ainda não tah bom, postem suas sugestões neste tópico que criei na seção BrainStorm! :D

T+ :DAté Mais :)

#10 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 23/11/2004, 17:17

Bom... não precisaria nem criar outro arquivo... pode-se fazer no mesmo, algo como


Lembre-se que se for usar um arquivo só, quando carregar o recordset, levará tudo para memória.

Bom, mais todos antispys pesquisam por todas chaves do registro...


Seu diferencial pode ser a velocidade...

ele escaneou todas essas chaves e detectou as existentes em milésimos de segundos


Com a configuração da sua assinatura, dá para ler o registro inteiro em fração de segundo, mas lembre-se que tem gente que ainda usa pentium mmx ou coisa mais antiga :).

quanto ao nome sou terrível para nomes :(

Abraço.

#11 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/11/2004, 13:47

Com a configuração da sua assinatura, dá para ler o registro inteiro em fração de segundo, mas lembre-se que tem gente que ainda usa pentium mmx ou coisa mais antiga


Ops... hehe... não havia pensado nisso... :P
Mas tenho uma beta-tester (:P)... quando tiver pronto o primeiro beta vou mandar pra minha prima testar no PC dela... um Itautec de 133 Mhz, 32 MB de memória, HD de 2 GB, vídeo OnBoard... etc... ruinzinho mesmo... :P

Bom, mas pra primeira versão podemos testar né? Os betas servem para isso, não? Testes... se ficar rápido, blz... senão, mudamos... É só lançar dois betas... um com a minha idéia, e um baseado na sua... o que ficar mais rápido, é só trocar... B)

T+ :DAté Mais :)

#12 lenerton_sc

lenerton_sc

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 25/11/2004, 17:07

Olá, estou começando em delphi tbm... nao sei muita coisa mas se precisar de ajuda e eu sou ber estamos ai para o q der e vier...

meu e-mail e: lenerton@sulmail.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq