-->

Anuncio!

Conhecendo o macchanger

Macchanger nada mais é do que um software para alteração do endereço MAC da sua placa de rede, sim, é possível "se divertir" com ele, hehe.

Logo de cara, vamos procurar e instalar o macchanger. Usei o zypper, mas com o apt é apt search macchanger.



Quando requisitado a senha do usuário root, dê o que ele quer! =D





Com o macchanger instalado, vamos ver as opções de execução que ele tem para nós com o comando "macchanger -h" ou "macchanger -help" , sem as aspas.



Nessa publicação vamos dizer o endereço que queremos para a alteração. Nesse caso, usaremos o comando "macchanger -m <endereço mac> e a interface de rede que será alterada", o endereço mac tem que ser colocado sem os <>, calma, sei que foi muita informação mas no final você vai entender do que estamos falando.

Para acharmos a interface de rede que será alterada, vamos dar o comando ip address show (no meu caso) , se não for o seu, tenta o velho e bom ifconfig e encontre aquela placa que está o seu IP. A minha é a enp1s0



Com o próprio macchanger também podemos achar o nosso endereço MAC atual, usando o comando "macchanger -s e a nossa interface de rede", no meu caso, como dito a cima é a enp1s0



Vamos lá, usando o comando "macchanger -m <endereço mac novo> interface de rede" vamos para a alteração. A alteração que eu fiz foi: macchanger -m 5b:f1:l2:p3:00:09 enp1s0 Lembrando que um endereço MAC é composto por 12 caracteres, 6 pares, separados por ":" como na demonstração.



Opa, mas Filipe, deu um erro, iai? Foi proposital, essa alteração só será realizada se a interface de rede tiver desativada, então, desative a sua interface de rede e execute o comando a cima novamente e ative a interface de rede novamente, importante isso, fica como lição de casa! rs

see you
Compartilhar:

Criar servidor http em Delphi

E ae galera nesse tutorial vamos criar um simples servidor HTTP usando o delphi e a biblioteca indy (o delphi que estarei utilizando nesse tutorial sera o delphi 7 com a biblioteca indy atualizada ~ pode ser feito o mesmo em um delphi mais recente que ja tem a biblioteca indy atualizada). Para começar essa brincadeira toda vamos criar uma simples interface para ele, a interface sera composta por dois botões para ligar e desligar o servidor, um Edit para especificar a porta e um Memo para escrever o nosso codigo html (css e js)

 



Agora colocamos o componente do servidor http (IdHttpServer) que fica na aba "Indy Servers"



Vamos editar o evento OnClick do botão que vai ligar aquele servidor. Naquele evento temos que desligar o servidor caso ele já esteja rodando (isso evitaria rodar duas instancia do mesmo servidor e acabar dando algum tipo de erro), para fazer isso setamos False no atributo Active daquele componente (IdHTTPServer1.Active). Mudamos a porta no atributo DefaultPort (como o texto no edit é uma string e o atributo DefaultPort só aceita Integer usamos o método strtoint para converter). Por fim ligamos o servidor novamente com o Active
procedure TForm1.Button1Click(Sender: TObject);
begin
IdHTTPServer1.Active := False;
IdHTTPServer1.DefaultPort := StrToInt(Edit1.Text);
IdHTTPServer1.Active := True;
end;

No evento OnClick do botão que vamos desligar o servidor, colocamos o Active do componente em false
procedure TForm1.Button2Click(Sender: TObject);
begin
IdHTTPServer1.Active := False;
end;



Teoricamente o nosso servidor já esta pronto, só precisamos processar a requisição que vem do cliente e a resposta que volta para o cliente. Para fazer isso vamos usar o AResponseInfo e ARequestInfo que são passadas junto com o evento OnCommandGet do nosso componente IdHttpServer. Primeiro vamos enviar apenas o nosso html para o cliente, depois pensamos em uma forma melhor para manipular a requisição que vem do lado cliente para deixar o servidor mais dinamico. Para a gente simplesmente enviar o html usamos o atributo ContentText do AResponseInfo (nesse caso vamos passar o atributo Lines.GetText do Memo, é nele que vamos colocar o nosso html)
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentText := Memo1.Lines.GetText;
end;

É necessario declarar tambem o idcontext em uses
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdCustomHTTPServer,
IdHTTPServer, StdCtrls, idcontext;

Se a gente compilar e rodar o programa, colocar um código html nele, depois ligar o servidor e entrar na pagina pelo navegador, vai funcionar normalmente como um servidor HTTP (tá, eu sei que não é um apache da vida, mais funciona ué kkk)
<html> <head> <title>by kodo no kami</title> </head> <body><center> <h1>pagina de teste</h1><hr> <img src="https://i.imgur.com/fa3QGBF.png"> </center></body> </html>

 



Através do ARequestInfo podemos pegar as passagens de métodos e outras informações que vem do lado cliente. O atributo Document retorna o path completo sem os parâmetros passados (get/post), então se a gente passa a seguinte url "http://192.168.1.1/kodo/pagina.html?id=123" ira retornar apenas "/kodo/pagina.html" (podemos utilizar desse recurso para carregar uma página especifica no computador e com isso deixar o nosso servidor mais dinâmico), um exemplo seria pegar esse path carregar o arquivo no Memo e dele mandar para o cliente (obs: não estamos tratando os erros aqui nesse servidor, então se colocar uma pagina não existente vai retornar um erro)
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
Memo1.Lines.LoadFromFile('.\' + ARequestInfo.Document);
AResponseInfo.ContentText := Memo1.Lines.GetText;
end



Para lermos alguma passagem de parâmetro usamos o atributo Params, sendo ele uma lista de strings (TStrings) onde cada passagem é uma linha separada. Um exemplo de uma pagina onde precisamos passar dois parametros "usu" e "sen" para permitir o acesso a uma pagina especifica, se a gente passar os parametros errados, nesse caso o usuario e a senha vamos parar em uma pagina
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var cont: Integer;
usuario, senha, temp: string;
begin
for cont := 0 to (ARequestInfo.Params.Count - 1) do
begin
temp := ARequestInfo.Params[cont];
if(StrPos(PChar(temp),PChar('usu=')) <> '') then
begin
usuario := StrRScan(PChar(temp),'=') + 1;
end;

if(StrPos(PChar(temp),PChar('sen=')) <> '') then
begin
senha := StrRScan(PChar(temp),'=') + 1;
end;
end;

if((usuario = 'kodo') and (senha = '123456')) then
begin
Memo1.Lines.LoadFromFile('./login/sim.html');
AResponseInfo.ContentText := Memo1.Lines.GetText;
end
else
begin
Memo1.Lines.LoadFromFile('./login/nao.html');
AResponseInfo.ContentText := Memo1.Lines.GetText;
end;
end;



Se passarmos os parâmetros corretos, vamos parar em uma outra pagina



Bom galera esse tutorial termina aqui porém, existem muitas coisas que ainda podemos fazer para melhorar esse servidor, como manipular os cookies e headers, gerar logs de acessos, chamar pelo delphi scripts como o php e retornar a saída, entre muitas coisas ^^
Compartilhar:
← Anterior Proxima → Inicio

Formulário de contato

Nome

E-mail *

Mensagem *

Sites Parceiros

Anuncio No Post

Anuncio No Post

Anuncio Aqui!