Controle arquivos modem

Delphi

11/04/2005

Eu quero criar um programa que controle tudo que passe pelo modem, por exemplo
1) controlar o nome do arquivo que está saindom a quantidade de bytes enviados e de onde vem
2) controlar o nome do arquivo que sai, a quantidade de bytes que saem e para onde vão
3) um log de tudo isto
Não sei nem por onde começar, só sei que terei de utilizar um stream


Edilcimar

Edilcimar

Curtidas 0

Respostas

Edilcimar

Edilcimar

11/04/2005

como é pessoal, um programinha fácil deste ninguém não tem nem idéia?


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

sobe


GOSTEI 0
Nildo

Nildo

11/04/2005

Cara, existe uma biblioteca chamada WinPCap que captura essas saídas e entradas atravéz de um driver. Essa biblioteca está portada para o delphi com o nome de DelphiPCap. Dá uma pesquisada no Google que você acha. Um abraço


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

valeu
o endereço atual é http://www.nzlab.dk/codesnippets.htm
depois vou testar, se funcionar isto é algo importante pois você pode ver se tem algum ´chupa cabra´ roubando arquivos do computador


GOSTEI 0
Nildo

Nildo

11/04/2005

valeu o endereço atual é http://www.nzlab.dk/codesnippets.htm depois vou testar, se funcionar isto é algo importante pois você pode ver se tem algum ´chupa cabra´ roubando arquivos do computador


Só para constar.. a WinPCap é a mesma biblioteca utilizada pela Etherreal.


GOSTEI 0
Nildo

Nildo

11/04/2005

Obteve sucesso?


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

vou testar no final de semana


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

Não funciona, está faltando uma dll


GOSTEI 0
Nildo

Nildo

11/04/2005

Não funciona, está faltando uma dll


Você tem que instalar os drivers da WinPCap


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

no endereço acima, que eu achei, só tem um arquivo zipado com o exemplo em delphi


GOSTEI 0
Nildo

Nildo

11/04/2005

no endereço acima, que eu achei, só tem um arquivo zipado com o exemplo em delphi


Como eu disse, TEM que instalar os drivers da WinPCap


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

achei um mais novo


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

só que o exemplo é em C e não delphi
http://winpcap.polito.it


GOSTEI 0
Nildo

Nildo

11/04/2005

só que o exemplo é em C e não delphi http://winpcap.polito.it


Mas voce nao falou que achou um exemplo de Delphi?
http://www.nzlab.dk/codesnippets.htm


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

sim, mas este falta uma dll e sem ela eu não faço nada


GOSTEI 0
Nildo

Nildo

11/04/2005

sim, mas este falta uma dll e sem ela eu não faço nada


Faz exatamente como eu te disse:

1 - [b:f66a6d20f1]Instala os drivers[/b:f66a6d20f1] da WinPCap
2 - Depois de ter [b:f66a6d20f1]instalado o driver[/b:f66a6d20f1], executa o exemplo de Delphi.


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Nildera? ... blz? e qual a localização dos arqs.?

packet.dll and the NPF packet driver


Será que é pastas: system/32 e driver, por dedução? ou na pasta da aplic. mesmo?

AHHHH!!!! :lol: ....e falando em pack! quando sai o pack API HooK Architect Edition 2005?...: :cry:


GOSTEI 0
Nildo

Nildo

11/04/2005

Nildera? ... blz? e qual a localização dos arqs.? [quote:d5789f8310]packet.dll and the NPF packet driver


Será que é pastas: system/32 e driver, por dedução? ou na pasta da aplic. mesmo?

AHHHH!!!! :lol: ....e falando em pack! quando sai o pack API HooK Architect Edition 2005?...: :cry:[/quote:d5789f8310]

Que eu me lembre, o winPCap vem com um instalador que instala o driver.
Quanto ao pack, tive alguns conselhos dos meus professores da facul e ainda estamos discutindo sobre isso! :D


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Funcionou blz .. aqui Nildo .. todas as portas e IPs são listados...: :lol:


GOSTEI 0
Nildo

Nildo

11/04/2005

Funcionou blz .. aqui Nildo .. todas as portas e IPs são listados...: :lol:


Interessante esse WinPCap né? O Etherreal usa ele para a captura dos pacotes


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

e onde eu acho estes drives, eu não os achei, achei apenas o exemplo delphi, um local novo com outro programa compilado, mas a dll não achei


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Estão entro do WinPCap.exe somente... e não soltos... terás que instalar o WinPCap para pegá-los... depois desinstale-o e use os drivers/dll no prog. demo em Delphi...


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

mas se é exatamente este o problema, o programa que eu consegui não vem com as dll, nem o que instala nem o demo que mostra como fazer, está faltando a dll acima citada paket.dll


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Bhaaa tchê fala serio :?:

Deixa teu mail aí! que e te mando o drivers e dll... então... :shock:

:lol:


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

não funcionou, dá erro index out of bounds(0)


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

o erro continua


GOSTEI 0
Nildo

Nildo

11/04/2005

Ajudaria mais se você detalhasse o erro. Quando ocorre, em que momento, o que você fez para dar o erro, etc etc etc


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

o problema dá na hora de rodar o aplicativo, eu compilei com D7 e ele dá o erro supra citado


GOSTEI 0
Nildo

Nildo

11/04/2005

desculpa mas eu não estou com muito tempo livre pra tentar resolver aqui no meu computador.

Tente debugar o programa.
O erro que você citou pode ocorrer por diversas causas


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

o problema aparece aqui com a mensagem
Cannot open adapter ´????????????r????????????´

seqüência de chamada

Fzniffer := TZniffer.create;
Fzniffer.OnPacket := ReadPacket;
Combobox1.Items.assign(Fzniffer.Adapters);
Combobox1.text:=´< SELECT ADAPTER >´;
Combobox1.Itemindex := 0;
Combobox1.OnChange(nil);



aqui trava
procedure TForm1.ComboBox1Change(Sender: TObject);
var E:string;
begin
if Fzniffer.Snooping then
if not Fzniffer.Deactivate(E) then raise Exception.create(e);
Fzniffer.AdapterIndex := COmbobox1.ItemIndex;
if not Fzniffer.Activate(e) then raise Exception.create(e);
caption := ´Snooping Started´;
end;

com uma chamada aqui, e eu não entendo de assembler

{$IFDEF MSWINDOWS}
{ -> [ESP+ 4] excPtr: PExceptionRecord }
{ [ESP+ 8] errPtr: PExcFrame }
{ [ESP+12] ctxPtr: Pointer }
{ [ESP+16] dspPtr: Pointer }
{ <- EAX return value - always one }

MOV EAX,[ESP+4]
MOV EDX,[ESP+8]
TEST [EAX].TExceptionRecord.ExceptionFlags,cUnwindInProgress
JE @@exit
MOV ECX,[EDX].TExcFrame.desc
MOV [EDX].TExcFrame.desc,offset @@exit

PUSH EBX
PUSH ESI
PUSH EDI
PUSH EBP

MOV EBP,[EDX].TExcFrame.hEBP
ADD ECX,TExcDesc.instructions
CALL NotifyExceptFinally
CALL ECX

POP EBP
POP EDI
POP ESI
POP EBX

@@exit:
MOV EAX,1
{$ENDIF}


GOSTEI 0
Nildo

Nildo

11/04/2005

Vc tem placa de rede instalada? Eu to desconfiando que isso funciona apenas para placa de rede...


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

tenho um modem speedstream roteado para o provedor velox, o qual está ligado a uma placa de rede


GOSTEI 0
Nildo

Nildo

11/04/2005

Por algum motivo ele não está carregando corretamente a lista de Adaptadores


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

tem alguma sugestão?


GOSTEI 0
Nildo

Nildo

11/04/2005

Tenho: entender o que o código quer dizer, estudar, e ver o que tem de errado.


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

quer que envie o programa?


GOSTEI 0
Nildo

Nildo

11/04/2005

quer que envie o programa?


To meio enrolado com umas coisas aqui, se meu chefe ver o programa aberto aqui no delphi, que não seja o da empresa eu to lascado haha


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

sobe


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Realmente no Win XP ele não reconhece o adptador e só funciona bem no 98, onde ele lista neste ComboBox o [u:4f81e60b9a]nome do arquivo do driver[/u:4f81e60b9a] da placa de rede. Diga-se de passagem que diferentemente do 98 o arquivo de drive do adaptador encontra-se em um pasta em separdo (\drivers) e no 98 é tudo na (\system);

Vou dar uma olhada no arquivo Zniffer.pas para ver como é esta ´pegada´ do drive... depois informo aqui uma possível solução...: :wink:

Meu adaptador é um Surecom e o arquivo do driver chama-se: EP320XS.SYS (dentro do ComboBox fica isto = EP320XS);


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Descobri...: :lol: ... uma simples lida nas units já basta! ...: 8) Inclua a packet.[size=15:5b3f47e767][color=red:5b3f47e767]sys[/color:5b3f47e767][/size:5b3f47e767] ao invéz de packet.[size=15:5b3f47e767][color=red:5b3f47e767]vxd[/color:5b3f47e767][/size:5b3f47e767] para 2K ou XP.
Também funciona para modem discado...

[ user application ] [ PCAP ] <- you are here! [ PacketAPI ] ------------------------------------------------ [ Windows 95/98 | Windows NT | Windows2000 ] [ Packet.dll | Packet.dll | packet.dll ] [ Packet.vxd | Packet.sys | packet.sys ] ------------------------------------------------ [ Netadapter ]


Já sobre a localização dos arquivos e maiores diferenças entre versões dos SOs... a própria Unit PCap.pas já cuida destes detalhes para você:

type TWinVersion = (wv_WinS, wv_Win9x, //Added by Lars Peter Christiansen. wv_WinNT, //Eases the process of determing the wv_Win2000, //platform and do proper instructions wv_WinXP, //I.e : Char vs. WideChar issue wv_Unknown ); ... // WINDOWS NT,2000 or XP Else if (ver=wv_winNT) or (ver=wv_win2000) or (ver=wv_winXP) then begin Getmem(AdapterName1,1024*Sizeof(char)); PacketGetAdapterNames(Pchar(@wAdapterNames),@NameLength); for i:=0 to NameLength-1 do begin if (Wadapternames[i]=#0)and(wadapternames[i+1]=0) then break; AdapterName1[i] := char(wAdapterNames[i]); end; result := adaptername1; end;


Bom divertimento...


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

[color=darkred:47728aeb1d]Eu to com o mesmo Problema do edicilmar...[/color:47728aeb1d]

tenho um modem speedstream roteado para o provedor velox, o qual está ligado a uma placa de rede



[color=darkred:47728aeb1d]Tb uso Velox[/color:47728aeb1d]

[URL=http://www.imageshack.us][img:47728aeb1d]http://img231.echo.cx/img231/5682/imagemprojetozniffert0bj.jpg[/img:47728aeb1d][/URL]

Citação :Nerdex
Descobri...: ... uma simples lida nas units já basta! ...: Inclua a packet.sys ao invéz de packet.vxd para 2K ou XP. Também funciona para modem discado...


Aonde vai incluir Isto :cry: :cry: :cry:

Sera , que [b:47728aeb1d][color=darkred:47728aeb1d]eu e o edicilmar [/color:47728aeb1d][/b:47728aeb1d], pegamos o Mesmo exemplo Que voce pegou :?: :?: :?: :?:

Olhe aonde eu peguei o meu exemplo:

[size=18:47728aeb1d][size=24][color=darkred:47728aeb1d]Fzniffer := TZniffer.create; [/color:47728aeb1d][/size:47728aeb1d][/size]

Que aparentemente é o mesmo do edicilmar: :cry: :cry: :cry:

[URL=http://www.imageshack.us][img:47728aeb1d]http://img215.echo.cx/img215/866/imagemprojetozniffert23by.jpg[/img:47728aeb1d][/URL]

[b:47728aeb1d]Estamos falando DO MESMO EXEMPLO[/b:47728aeb1d] :?: :?: :?: :?:


GOSTEI 0
Nerdex

Nerdex

11/04/2005

É o mesmo... material que eu tenho aqui...! Vocês 2 só não estão pegando os drivers necessários....: :!:

No win98SE eu testei com estes arquivos e funcionou...: :twisted:

- NPF.VXD
- PACKET.DLL
- WPCAP.DLL

Para rodar no winXP inclua + um arquivo. Tente encontrar pela aplicação original do WinPCap para SOs 2K e XP o arquivo PACKET.SYS, logo após, teste posicionado este arquivo em (\drivers) ou (\system32) junto com packet.dll e wpcap.dll...

Divirtam-se...: :?


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

O Problema e que no meu caso por exemplo , que acredito deva ser o mesmo caso do Edicilmar , este arquivo PACKET.SYS Não esta instalado..

[b:f6c83593ad]Fiz uma pesquisa e não obtive Resultados...[/b:f6c83593ad]

:cry: :cry: :cry: :cry:


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

eu também não tenho o packet.sys


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

e a novela continua repetindo o último capítulo ´não funciona´


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

eu também não tenho o packet.sys


Alguem , por favorrrrrrrrrrrrrrrr, mande este packet.sys para a gente :cry: :cry: :cry:

e a novela continua ...


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Bahh... vc querem tudo na mão... eu já fiz minha parte...: :wink:

Fico no aguardo dos senhores tomarem maiores iniciativas...


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

se vc disser onde tem a packet.sys eu faço


GOSTEI 0
Nildo

Nildo

11/04/2005

Procura no google, ou instala os driver que o pessoal ta falando


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

o driver tem a packet.dll não a packet.sys


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

Bahh... vc querem tudo na mão... eu já fiz minha parte...: Fico no aguardo dos senhores tomarem maiores iniciativas...


Fala assim não , que não e verdade.


GOSTEI 0
Nildo

Nildo

11/04/2005

De acordo com o site do Windows Packet Capture Library (WinPCap), da versão 2.3 para cima, os arquivos mudaram de nome:

# The name of the WinPcap drivers has been changed from packet.sys/packet.vxd to npf.sys/npf.vxd. This is transparent to the applications and should avoid conflicts with other drivers.


Fonte: http://winpcap.polito.it/misc/changelog.htm


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

o driver tem a packet.dll não a packet.sys

O meu nen tem a o packet.dll :cry: :cry:
E acho que so Falta isto.. Veja quando tento rodar o aplicativo:

[URL=http://www.imageshack.us][img:b9355d5381]http://img164.echo.cx/img164/736/imagemprojetozniffert34ru.jpg[/img:b9355d5381][/URL]

Diz que não foi encontrado a packet.dll :cry:


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

marcos manda o email que eu te envio


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Se aguém já alterou de: packet.sys e packet.vxd para npf.sys e npf.vxd como disse o Nildo, e obteve sucesso, favor me avisar...


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

snif, snif, ainda não achei nem a packet.sys e packet.vxd quanto mais as npf´s


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

Citação de Edicilmar
snif, snif, ainda não achei nem a packet.sys e packet.vxd quanto mais as npf´s


Citação de Nildo
O nome dos excitadores de WinPcap foi mudado de packet.sys/packet.vxd a npf.sys/npf.vxd. Isto é transparente às aplicações e deve evitar conflitos com outros excitadores.


Eu tenho o npf.sys.. Ele se encontra em C:\Windows\system\drivers

o npf.vxd eu nun tenho :cry: :cry: :cry:

Sera que eu preciso colocar o npf.sys Na Pasta do Aplicativo , ou mudar o caminho do Mesmo para C:\Windows\system32....


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

Nerdex , voce esta mau ...O seu caso é grave



GOSTEI 0
Nerdex

Nerdex

11/04/2005

Por definição o lugar de *.sys é em \drivers deixe o .vxd no sistem32.

Testa aí na mesma pasta do aplicativo... para ver o q dá... então...
No teu teste ele acusou a falta do .vxd?


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Nerdex , voce esta mau ...O seu caso é grave


Tive que tirar o BatMan, pois fugi às regras de conduta (era quase um DIVx do filme como avatar...)...: :shock:

Eu guardo a anos este Raio X... como recordação...: :cry:
Foi antes de eu ter realizado uma plástica de alta impedância e risco, onde me submeti a uns 6 anos atrás...:
saiu no revista Veja sobre o assunto! (2 págs)...


GOSTEI 0
Marco Salles

Marco Salles

11/04/2005

Citação de Nerdex
Por definição o lugar de *.sys é em \drivers deixe o .vxd no sistem32. Testa aí na mesma pasta do aplicativo... para ver o q dá... então... No teu teste ele acusou a falta do .vxd?


Citaçaõ de Marco salles
Eu tenho o npf.sys.. Ele se encontra em C:\Windows\system\drivers o npf.vxd eu nun tenho

:cry: :cry: :cry: :cry: :cry: :cry: :?: :?: :?:


Eu guardo a anos este Raio X...

saiu no revista Veja sobre o assunto! (2 págs)...

Famosa em Menina... Gostaria de ver a materia


GOSTEI 0
Nildo

Nildo

11/04/2005

O exempo do DelphiPCap funciona perfeito no win9x pois eu teste. Creio que para funcionar nas demais versões, deve-se reprogramar o programinha


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Daí... alguém de vcs reprogramou o programinha? (bah Nildo q redundância... rss) usando as novas nomenclaturas dos arquivos de drivers para o XP?


GOSTEI 0
Nildo

Nildo

11/04/2005

Daí... alguém de vcs reprogramou o programinha? (bah Nildo q redundância... rss) usando as novas nomenclaturas dos arquivos de drivers para o XP?


Hahaha!
Creio que seria melhor alguém perguntar lá no site do driver, porque que a lista de adaptadores retorna vários ´?´.


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

partindo da pergunta básica que eu coloquei, o que importa não é o tipo de windows, e sim o que está entrando ou saindo do computador, portanto qual a maneira correta de fazer tal coisa?


GOSTEI 0
Nerdex

Nerdex

11/04/2005

[quote:6b4a111867=´edilcimar ressabiado´]partindo da pergunta básica que eu coloquei, o que importa não é o tipo de windows, e sim o que está entrando ou saindo do computador, portanto qual a maneira correta de fazer tal coisa?[/quote:6b4a111867]

O WinPCap faz o q vc quer ... e muito bem por sinal - são portas, pacotes, IPs... tudo rastreado, mas o que pegou aqui foi a confusão dos drivers entre as versões dos SOs, que nesta altura, felizmente já foi esclarecida...:

Abraço a todos que de alguma forma contribuíram à este Tópico...: :wink:


GOSTEI 0
Nildo

Nildo

11/04/2005

partindo da pergunta básica que eu coloquei, o que importa não é o tipo de windows, e sim o que está entrando ou saindo do computador, portanto qual a maneira correta de fazer tal coisa?


Como não importa? A estrutura interna do win9x é completamente diferente da do WinXP, logo, os drivers devem ser adaptados para funcionar em todas as versões. Não necessariamente o que funciona no win9x vai funcionar no XP e vice-versa.


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

quando me referi o que importa não é o tipo de windows, quiz dizer que tem que funcionar em qualquer um e não apenas no 95 ou 98 ou me ou xp, etc.


GOSTEI 0
Nildo

Nildo

11/04/2005

quando me referi o que importa não é o tipo de windows, quiz dizer que tem que funcionar em qualquer um e não apenas no 95 ou 98 ou me ou xp, etc.


A tá, eu entendi que, se não importa algumas opções, logo qualquer uma delas é válida.

Creio que você tenha que perguntar no site do criador do driver porque que retorna os ´????´


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

eu tenho as packet ponto lib, def, dsp, dsw, c, h e a e as npf ponto def e rc, porém as packet.sys e vxd e as npf.sys evxd ainda não consegui, alguém sabe onde tem?


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

ainda não consegui os arquivos!!!!!!!!!!!!


GOSTEI 0
Massuda

Massuda

11/04/2005

ainda não consegui os arquivos!!!!!!!!!!!!
Baixe (e instale) o [url=http://www.winpcap.org/install/default.htm]WinPcap auto-installer[/url]. No Developer´s pack só tem o necessário para compilar (em C/C++) programas que usam o WinPcap.


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Baixe (e instale) o [url=http://www.winpcap.org/install/default.htm]WinPcap auto-installer[/url]. No Developer´s pack só tem o necessário para compilar (em C/C++) programas que usam o WinPcap.


Hi ... chegou o mestre ... só vc mesmo para matar essa ...: :idea: ! Valeu Massuda! ´isso deu mó pano prá manga ... como diz o otro´ ... e diga-se de passagem. Esta referência que vc citou para instalar, contém mesmo os arquivos mencionados para o XP (npf.sys e npf.vxd)?

Viu ediucilei e Salles! o cara conseguiu pra nóis! ...: :D


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

é, este foi um dos locais onde procurei, porém os npf´s reeferidos pelo nerdex não estão lá


GOSTEI 0
Massuda

Massuda

11/04/2005

Esta referência que vc citou para instalar, contém mesmo os arquivos mencionados para o XP (npf.sys e npf.vxd)?
Na minha máquina (que roda WinXP), foram instalados os seguintes arquivos:

C:\WINDOWS\system32\drivers\npf.sys
C:\WINDOWS\system32\packet.dll
C:\WINDOWS\system32\wanpacket.dll
C:\WINDOWS\system32\wpcap.dll
C:\WINDOWS\system32\pthreadVC.dll
C:\Arquivos de programas\WinPcap\npf_mgm.exe
C:\Arquivos de programas\WinPcap\daemon_mgm.exe
C:\Arquivos de programas\WinPcap\rpcapd.exe
C:\Arquivos de programas\WinPcap\NetMonInstaller.exe


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

massuda e o vxd?


GOSTEI 0
Massuda

Massuda

11/04/2005

...e o vxd?
Pelo que pude perceber, o npf.vxd é instalado apenas nas máquinas Win9x/ME.


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

o meu continuar dando o erro Cannot Open Adapter ????????????????[b:09cf6df95f]r[/b:09cf6df95f]?????????????????????????


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

Ainda não consegui os arquivos necessários, porém vi o emule(creio que muitos aqui o conhecem) faz mais ou menos o que desejo, pois ele diz quem está enviando o quê e para onde está indo o quê, com a diferença que informa o IP do servidor não o IP do destinatário. Alguém tem mais alguma sugestão?


GOSTEI 0
Nildo

Nildo

11/04/2005

Ainda não consegui os arquivos necessários, porém vi o emule(creio que muitos aqui o conhecem) faz mais ou menos o que desejo, pois ele diz quem está enviando o quê e para onde está indo o quê, com a diferença que informa o IP do servidor não o IP do destinatário. Alguém tem mais alguma sugestão?


SIM eu tenho uma sugestão. Que questionar o criador da biblioteca sobre isso? Talvez ele saberia te responder.


GOSTEI 0
Nildo

Nildo

11/04/2005

Eu comecei hoje a desenvolver uma biblioteca para captura de pacotes, conexões etc, tudo relacionado a WinSock, em nivel de aplicativos (e não de placa de rede ou modem), sendo assim há possibilidades de alterar o pacote antes mesmo do aplicativo enviá-lo ou recebê-lo. Vai funcionar em todas as versões do Windows. Você também poderá saber qual o aplicativo que enviou o pacote, iniciou uma conexão, etc. Vai poder bloquear a conexão e o pacote também.

Vai demorar uns 4 meses para ficar 100¬ funcional.

Um abraço


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

Nildo escreveu
SIM eu tenho uma sugestão. Que questionar o criador da biblioteca sobre isso? Talvez ele saberia te responder.

Se eu conseguisse quem fez, com certeza perguntaria!
Quanto ao teu projeto, se precisar de ajuda fale


GOSTEI 0
Nildo

Nildo

11/04/2005

Nildo escreveu [quote:d25ec32b91]SIM eu tenho uma sugestão. Que questionar o criador da biblioteca sobre isso? Talvez ele saberia te responder.

Se eu conseguisse quem fez, com certeza perguntaria!
Quanto ao teu projeto, se precisar de ajuda fale[/quote:d25ec32b91]

Você tem o site do criador. Procura algum contato lá que deve ter


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Edilcimar ... Acredito que para rodar no XP creio que com estes arquivos que o Massuda relacionou:

C:\WINDOWS\system32\drivers\npf.sys C:\WINDOWS\system32\packet.dll C:\WINDOWS\system32\wanpacket.dll C:\WINDOWS\system32\wpcap.dll C:\WINDOWS\system32\pthreadVC.dll

...são os necessáros, visto que .VXDs são para win98...

Já que o maior interessado é o Sr. peça por e-mail estes arquivos a Massuda, e teste naquele exemplo de código Delphi inicial que nós temos ... depois posta aí os resultados... Digo isto, porque a Unit do proj. Delphi já prevê o reconhecimento do SO XP como está escrito no código e ao meu ver o autor não iria cometer tamanho ´descaso´ de não suportar o XP por faltas/incompatibilidades em drivers ao seu projeto (seria muita queimação de filme desse cara! hehehe). Para isto veja este fragmento que eu retirei:

type 
TWinVersion = (wv_WinS, 
wv_Win9x, //Added by Lars Peter Christiansen. 
wv_WinNT, //Eases the process of determing the 
wv_Win2000, //platform and do proper instructions 
wv_WinXP, //I.e : Char vs. WideChar issue 
wv_Unknown ); 
... 

// WINDOWS NT,2000 or XP 
Else if (ver=wv_winNT) or (ver=wv_win2000) or (ver=wv_winXP) then 
begin 
Getmem(AdapterName1,1024*Sizeof(char)); 
PacketGetAdapterNames(Pchar(@wAdapterNames),@NameLength); 

for i:=0 to NameLength-1 do 
begin 
if (Wadapternames[i]=0)and(wadapternames[i+1]=0) then break; 
AdapterName1[i] := char(wAdapterNames[i]); 
end; 

result := adaptername1; 
end;



GOSTEI 0
Nildo

Nildo

11/04/2005

Galera, como eu disse, dei inicio ao desenvolvimento de um componente para Delphi para captura de pacotes. Já tenho alguma coisa, quem quiser ver um DEMO dele rodando, por favor, baixem aqui:

http://www.ProjetoBMS.net/Downloads/BmsSniffer.zip

Por favor, me reportem se acontecer algum erro do tipo Access Violation ou qualquer outra coisa.

Obrigadoooooo, me falem se está ficando legal!

Um abraço


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Por favor, me reportem se acontecer algum erro do tipo Access Violation ou qualquer outra coisa. Obrigadoooooo, me falem se está ficando legal!


Legal Nildo ... Testei: nenhum erro (laguei tudo na pasta documentos mesmo) e vi que são exibidos vários outros ítens também importantes, mas os números IPs externos/acessados não são capturados como no WinPCap, veja um exemplo:

11:53:28 - iexplore.exe enviando 1 bytes: 



11:53:28 - iexplore.exe enviando 686 bytes: 

/grafica/ico_Enviados.gif HTTP/1.1
Accept: */*
Referer: http:mail.ubbi.com.br/inbox.asp
Accept-Language: pt-br
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 15 Dec 2004 14:15:01 GMT
If-None-Match: "8020e476b0e2c41:913"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: mail.ubbi.com.br
Connection: Keep-Alive
Cookie: SITESERVER=ID=226b6f1e0b43896ed9f2fd11a58aa1e1; Control=TS=jn6Ojn6OiWRTBWehK0BPK0HPBeXj&Logueo=iCRt; REG=TU=icRt&LO=ryx05yju34bIrPbT5y9NgyjI3n1CrCRt&AP=HVXGrfS¬F1&PL=iORt&UI=j¬F1rPj0HvHWit&NO=oyx0549w3ORt&IU=iPRvj¬F1HVjWrt; ASPSESSIONIDACSTSTRR=BKGLNCCCEKLHLFBHOEOALEOF; ASPSESSIONIDQSRTDDRD=FPEAPGLBNJNMKCACFIKHHIBL


Mas esta DLL já faz um bom trabalho e dependendo do tipo de necessidade do usuário esta aplicação já é uma mão na roda...: :lol:


GOSTEI 0
Nildo

Nildo

11/04/2005

mas os números IPs externos/acessados não são capturados como no WinPCap


Isso eu vou fazer, não vai dar trabalho, é facil. Mas eu só fiz mesmo para capturar os pacotes enviados, uma coisa bem básica, só para testar mesmo.

Conforme for passando o tempo e eu for colocando novos recursos, eu vou mostrando o resultado final.


GOSTEI 0
Nildo

Nildo

11/04/2005

Msa quem faz a captura é meu componente. Voce usará ele da forma que voce quiser, ele vai disparar um evento sempre que um pacote for enviado, fornecendo o Ponteiro, o Tamanho, o Socket, as Flags e o Processo que enviou o pacote.


GOSTEI 0
Nerdex

Nerdex

11/04/2005

Blz estes teus projetos Nildo!... nota 10! vai ficar jóia isso aí... assim como ficou a API Hook que vc fez... parabéns...: :o
Matou a concorrência em todos os sentidos...


GOSTEI 0
Nildo

Nildo

11/04/2005

Valeu NerdeX!!!!


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

nildo eu peguei o arquivo em
http://www.ProjetoBMS.net/Downloads/BmsSniffer.zip
beleza este funciona, ele diz qual o programa que está enviando o o que o bloco contém, mas infelizmente ainda não diz qual o arquivo que está sendo enviado nem para onde está indo, você pretende implementar esta parte também?


GOSTEI 0
Nildo

Nildo

11/04/2005

nildo eu peguei o arquivo em http://www.ProjetoBMS.net/Downloads/BmsSniffer.zip beleza este funciona, ele diz qual o programa que está enviando o o que o bloco contém, mas infelizmente ainda não diz qual o arquivo que está sendo enviado nem para onde está indo, você pretende implementar esta parte também?


Com certeza, já está sendo implementado.
Mas não existe isso de saber qual arquivo está sendo enviado. O programa envia os pacotes do jeito que ele achar melhor, o conjunto de pacotes vai formar um arquivo, mas não há como saber o Arquivo. apenas os pacotes


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

tudo bem quanto aos pacotes, porém sempre que se está inicializando o envio de algo este algo tem um nome de origem (o de destino não importa) e um endereço(para onde está indo), é sobre isto que me refiro


GOSTEI 0
Nildo

Nildo

11/04/2005

tudo bem quanto aos pacotes, porém sempre que se está inicializando o envio de algo este algo tem um nome de origem (o de destino não importa) e um endereço(para onde está indo), é sobre isto que me refiro


Este nome de origem ao qual você se refere não da pra saber, porque cada aplicação tem seu modo de enviar o nome separado dos pacotes do conteúdo do arquivo. Se fosse um padrão daria, porém, não é.

E o endereço de destino, sim, é possível


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

Tudo bem, cada aplicação tem uma ´hora certa´ de enviar o nome do arquivo, pode ser no começo do envio ou no fim, mas em alguma hora o nome do arquivo de origem tem que ser enviado, pois caso contrário não dá para saber qual o arquivo que está sendo enviado. A maioria dos programas de envio de arquivos envia o nome do mesmo no início do processo.


GOSTEI 0
Nildo

Nildo

11/04/2005

Tudo bem, cada aplicação tem uma ´hora certa´ de enviar o nome do arquivo, pode ser no começo do envio ou no fim, mas em alguma hora o nome do arquivo de origem tem que ser enviado, pois caso contrário não dá para saber qual o arquivo que está sendo enviado. A maioria dos programas de envio de arquivos envia o nome do mesmo no início do processo.


Bom nesse caso, o usuário do meu componente deve analisar os pacotes para saber se contém o nome do arquivo. Eu apenas vou disparar um evento contendo o pacote.


GOSTEI 0
Edilcimar

Edilcimar

11/04/2005

vamos supor que alguém esteja roubando dados do seu computador, como você saberá qual o arquivo que está sendo enviado?


GOSTEI 0
Massuda

Massuda

11/04/2005

...como você saberá qual o arquivo que está sendo enviado?
Se o cara for bom, provavelmente você não saberá!

Acho que você está confundindo a questão do protocolo de transporte (que é o que o Nildo está analisando com o componente dele) com o protocolo de aplicação.

O protocolo de aplicação pode ser qualquer um... HTTP, FTP, TFTP, etc. até mesmo um protocolo inventado pelo cara. No caso dos protocolos conhecidos, seria possível escrever um analisador de protocolos e extrair a informação que você deseja. Mas no caso de um protocolo proprietário ou que utilize algum mecanismo de segurança (por exemplo, HTTPS), você provavelmente não teria como analisar os pacotes de um modo simples.


GOSTEI 0
Nildo

Nildo

11/04/2005

vamos supor que alguém esteja roubando dados do seu computador, como você saberá qual o arquivo que está sendo enviado?


[b:da1aa587f6]NÃO[/b:da1aa587f6] há como saber, se você não souber o padrão que o Server do hacker utiliza. Se você tiver certeza que na posição X do pacote similar ao pacote Y, tiver o nome do arquivo, então você poderá fazer um parsing. Ou então você pode procurar por informações do tipo: ´.???´ no pacote, para saber se encontra alguma máscara de nome de arquivo. Pois o nome do arquivo poderá estar em qualquer lugar do pacote, e em qualquer pacote, e também criptografado. Não é a WinSock que trata este assunto, é o programador que define a melhor maneira de enviar o nome do arquivo junto com o pacote. Lembrando que um arquivo vai ser transmitido em centenas de pacotes, o nome dele estará em apenas 1 (se tiver).

A transmissão é feita via Pacotes, e não via Arquivos. Você envia os bytes do arquivo, e não o arquivo em sí.


GOSTEI 0
Nildo

Nildo

11/04/2005

Vide a resposta do Massuda, ele explicou exatamente o que eu não conseguí explicar.


GOSTEI 0
POSTAR