Lehetséges?

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Unc3nZureD
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2016. július 30. szombat, 22:46

Lehetséges?

HozzászólásSzerző: Unc3nZureD » 2016. július 30. szombat, 22:58

Sziasztok, tervezek beszerezni valamilyen WiFi modult Arduino alá (jelenleg UNO R3). A legtöbbet amit láttam az az ESP8266 modul volt.
Mivel a neten nem találtam a kérdésemről infót, így remélem hátha ti tudtok segíteni:

Akár az ESP8266, akár valamilyen hasonló modul képes-e kezelni:
  • TCP/UDP csomagokat előállítani (azért ez gondolom elég alap)
  • ARP csomagot küldeni
  • Raw Socket-et kezelni/használni ( ez mondjuk megoldaná az ARP-t :D )

Célom ezzel egy kisebb penetration teszt a hálózaton, ehhez pedig fontos lenne, hogy legalább ezeket támogassa, illetve még +feature-ként nem lenne rossz egy "IP-Forwarding", de ezt már úgy sejtem, hogy felesleges megkérdezzem :D

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: Robert » 2016. július 31. vasárnap, 5:32

Ha ennyire bitszintig akarsz menni (és Te összerakni):
- szívatod magad
- erőforrásigényes
ENC28J60 kábeles netre. WiFi esetén általában már magasabb szinten kezeled a modult.


Nem egyszerűbb erre egy RaspberryPi + USB/WiFi kártya?

Unc3nZureD
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2016. július 30. szombat, 22:46

Re: Lehetséges?

HozzászólásSzerző: Unc3nZureD » 2016. július 31. vasárnap, 9:40

Természetesen nem így akarok összerakni egy komplett webszervert, inkább egy-egy kisebb pentest erejéig, hogy egy router vagy kliens mit reagál egy speciálisan összerakott csomagra.

Természetesen rPi sokkal célszerűbb lenne, de arduinom már van, gondoltam, hogy ha lehet akkor miért ne :D De ha nem nagyon tervezték ilyenre, akkor feleslegesen nem töröm magam :/ Már csak málnát kellene olcsón szerezni, az már nem kínai arduino árkategória :)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: Robert » 2016. augusztus 1. hétfő, 4:58

WiFi esetén az OSI alsó rétegeket a hardware adja - nem rakhatom én össze a csomagot.
Ping, TCP, UDP kezelés benne van a firmware/hardware-ban.

kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Lehetséges?

HozzászólásSzerző: kszabi » 2016. szeptember 12. hétfő, 12:06

Sziasztok!
Megoldható az hogy egy esp-n futó weblap html sorait ne egyesével kelljen küldeni, hanem egy h. állományba másoljam a html szerkesztőből,
aztán a loop-ból meghívom ha kell?
Köszi Szabolcs

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: Robert » 2016. szeptember 12. hétfő, 14:15

#Include "filenév" megoldással?
Ekkor a filenév az ino állomány mellett kell legyen.
http://www.tavir.hu - a gazda :)

kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Lehetséges?

HozzászólásSzerző: kszabi » 2016. szeptember 12. hétfő, 18:55

Nem feltétlenül.
Akár egy stringbe vagy egy tömbbe elhelyezve. Az lenne a lényeg hogy ne keljen szerkesztés után sorokra bontani a html filet,
hanem a főprogramtól külön lehessen kezelni.
Kaptam egy mintát: http://www.esp8266.com/viewtopic.php?f=8&t=4685 , de ez nekem valahogy nem kerek.
Ha nincs használhatóbb akkor ebből próbálok kihozni valamit.

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: SanyiSay » 2016. szeptember 12. hétfő, 19:04

Nem tudom erre gondoltál e vagy ezeket tudtad e, már volt róla szó.

static const char PROGMEM html_oldal[] = R"=====(
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
Ide írhatsz """" idéző jeleket is. :)
</body>
)=====";
Ezzel a progmambe teszed az oldalt és egyben tudod elküldeni a kliensnek. Változtatni így ugyan nem tudsz rajta, de a változó elemeket ajaxal utána küldöd.

Vagy simán beteszed az ESP féjlrendszerébe az egész html fájltszükségletet js css amit szeretnél és azt használod. Így tudod szerkeszteni az oldalt a kód megváltoztatása, és usb kábel nélkül.
ESP-FTP vel vagy FSBrowser segítségével.

elkéstem gyorsabb voltál. :)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9970
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: Robert » 2016. szeptember 12. hétfő, 19:06

És ha beteszed a FileSystemet és feltöltöd állományként?
Abból szolgálod ki a webszerveredet....
http://www.tavir.hu - a gazda :)

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: SanyiSay » 2016. szeptember 12. hétfő, 19:14

Mit nem értesz a progmem használatát vagy a = R"=====( jeleket?

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: SanyiSay » 2016. szeptember 12. hétfő, 19:38

Most nézem a mintakódot amit belinkeltél. Utolsó bejegyzésnél nincs jobb leírás. Minden benne van amit kerestél, még külön fájlba is került az oldal. :) Persze ESP8266WebServer.h amit használ, ez lehet zavaró ha eddig nem ezt használtad.

kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Lehetséges?

HozzászólásSzerző: kszabi » 2016. szeptember 12. hétfő, 19:47

Ezt így próbálom használni:
void loop()
{
WiFiClient client = server.available();
if (client) {
Serial.println("client avaiable");

while(!client.available()){
delay(1);
}

String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
client.print(PAGE_NetworkConfiguration);


}

}

Ha az alap hello világ html-t használom működött is.
Ha bármit próbálom tovább szerkeszteni, az esp a kliens kérdésekor resetbe megy.
ezt nem tudom mire vélni.

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: SanyiSay » 2016. szeptember 12. hétfő, 20:48

Így nálam működik bár ezt a szervert rég használtam és akkor még nem ismertem a progmem lehetőséget, most csak gyorsan kipróbáltam megy e.

Kód: Egész kijelölése

static const char PROGMEM html_oldal[] = R"=====(
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
ESP Teszt oldal  :)
</body>
)=====";

void loop() {
     WiFiClient client = server.available();
     if (!client) {
       delay(5);
       return;
     }

     String req = client.readStringUntil('\r');
     Serial.println("--GET---");
     Serial.println(req);

     String pos = client.readString();
     Serial.println("--ALL---");
     Serial.println(pos);
     Serial.println("---");
     client.flush();

     if (req.indexOf("/index") != -1){
        client.write(html_oldal);
         delay(10);
         client.stop();

     }
}




Ami vacak ebben a szerverben hogy nem megy vele az ota, és ebben a formában semmilyen fejlécet nem küld ahogy nézem. Valamint a kapott get post üzenetek kezelése egyszerűbb a másikkal. Szóval ezt még rendesen át kell nézni hogy szabályos adatküldés és lezárás legyen.
Másik szerver az általad belinkelt mintakódban van.

Chrome böngészőben Shift+Ctrl + i nyomására előjön a fejlesztői ablak ott látni mit küldözgetnek ezek egymásnak. Én legalább is ezt használom.

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1030
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Lehetséges?

HozzászólásSzerző: SanyiSay » 2016. szeptember 12. hétfő, 21:00

Egybe azért túl nagy oldalt nem tudsz küldeni egybe 1450 byte ha jól emlékezem (majd kijavítanak :) ) ennyi a maximum ami egyszerre átmegy, ekkora csomagokra kell bontani.

kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Lehetséges?

HozzászólásSzerző: kszabi » 2016. szeptember 13. kedd, 11:08

A mintában lévő ESP8266WebServer.h nem azonos az arduinóval feltelepülő ESP8266WebServer.h- val?
Lehet hogy ezért szívok?
Nálam a server.on(); server.handleClient(); sorok le se fordulnak, és nem is találtam róluk érdemes leírást.


Vissza: “ExpressIf WiFi”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég