Criando um Discador

Started by OnlyOne, 20 de April , 2006, 03:13:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

OnlyOne

Criando um discador com Delphi 7

Bem , eu continuo na minha luta pra aprender Delphi 7 , comecei recentemente na linguagem , eu q programo em JAVA , estou tendo certa dificuldade com a sintaxe de Object Pascal , mas tudo bem , eu me acostumo com isso .

Bom visitando varios foruns de Delphi eu achei um programa q e um discador bem legal , pelo menos , o principio de um discador , hehehehe , eu fiz algumas modificaçoes no codigo , no final do texto eu coloco o link para o artigo original


vamos a ele :

palavras do autor




2. Os Comandos do Modem

Os modems obedecem a tabelas de comandos que podem sofrer variariações de acordo com o fabricante.

Alguns dos comandos mais usados são:


AT - Atenção ("Attention" )
A - Atender ("Answer")
D - Discar ("Dial")
H - Desligar ("Hangup)
T - Discagem de TOM
P - Discagem de PULSO
, - Pausa
&F - Configurações de fábrica
- Terminator

 
Este comandos são combinados de forma a criar a string de comando desejada.

Ex:

Para realizar uma ligação devemos enviar para o modem a seguinte string

"ATDT1234567"


A String acima informa ao modem:

AT - Atenção, comandos serão enviados
D - Discar
T - Utilizar discagem tipo TOM
1234567 - Número que se deseja discar
- Terminator informando o fim da string



ok ?

agora segue o codigo da aplicaçao com ligeiras modificaçoes feitas por mim





unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;
ComboBox1: TComboBox;
GroupBox1: TGroupBox;
Edit1: TEdit;
GroupBox2: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
memo1: TMemo;

procedure Button1Click(Sender: TObject);

//Private declarations
private

//Public declarations
public

end;

var

Form1: TForm1;
hand : THandle;
status: LongBool;
number : DWORD;
buffer : Array [0..1023] of Byte;
s : String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

if (combobox1.text <> ' ') and (edit1.text <> ' ') then
 begin

//Abre a porta de comunicação
s := Combobox1.text;

hand := CreateFile(PChar(s),GENERIC_WRITE,0,nil,
                   OPEN_EXISTING,
                   FILE_ATTRIBUTE_NORMAL,0);

//Verifica a abertura da porta
if hand = INVALID_HANDLE_VALUE then
 begin
  memo1.lines.clear;
   memo1.lines.add('Não foi possível abrir a porta selecionada.');
    memo1.lines.add('Discagem não efetuada');
     CloseHandle(hand);
      end

else begin
 memo1.lines.clear;
  memo1.lines.add('Discando...');

//Cria a string de comando
if radiobutton1.checked then
 s:='ATDT'

else
 s:='ATDP';

//comando pronto pra envio ao modem
s := s + edit1.text + #13#10;

number := 0;

//Envia a String de Comando
Status := WriteFile(hand,PChar(s)[0],Length(s),number,nil);

memo1.lines.add('Aguardando Atendimento ...');

MessageDlg('Retire o telefone do gancho e clique OK para desligar o modem',
           mtInformation,[mbok],0);

//Desconecta a ligação (Hangup)
WriteFile(hand,'ATH',5,number,nil);

//Fecha a porta de Comunicação
CloseHandle(hand);

memo1.lines.add('Modem Desconectado.'#13#10);

end;
end;
end;

end.




bom , e isso , espero q seja util pra vcs

fonte :



http://www.delphibr.com.br/artigos/mode ... mmands.zip






 
No céu toca Joy Division


Fox

Po cara...parabens...voce esta aprendendo sim!
vlw...
Ate mais.

Cloudy

Isso pode ser usado para  tentativas de invasão a sistemas RAS.

É só vc por uma lsta de números telefonicos que possam vir a ser RAS's, aí vira braticamente um brute force, pois a maioria dos discadores funciona basicamente assim:

Tenta um tel
Tá ocupado?!?
Tenta outro
Não deu?!?
Passa pra outro

Entenderam?!? ;)

...by Cloudy
"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy

rog

e beleza mesmo

tambem da para infectar para discar numeros de 2€ por minute

lol
realty.sys is corrupt :  reboot the universe (Y/N)

anakim

legal isso, + vale lembrar que isso não é definitivamente um discador, esse programa só está usando a framework do Acesso Dial-up do windows e estabelecendo valores, lembrem-se de uma coisa: criem isso dpois vão em Acesso Rede Dial-up no Meu Computador ou Painel de Controle e veja que seu programa criou uma nova conexão, por isso estou explicando que na verdade seu programa e uma série de outros tipo: IG,Click21,Yahoo são front-ends que simplesmente criam uma nova conexão e botam seus números de telefone no caso como eu disse acima esses programas estabelecem valores, simplesmente esse ato de criar discadores é modismo, não precisa baixar discadores simplesmente saiba o numero do telefone do provedor e pronto só criar uma Nova Conexão a Rede Dial-up .
Why use Windows? If I have the door ;-)