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ás Szerző: Unc3nZureD »

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: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Lehetséges?

Hozzászólás Szerző: Robert »

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ás Szerző: Unc3nZureD »

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: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Lehetséges?

Hozzászólás Szerző: Robert »

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ás Szerző: kszabi »

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: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Lehetséges?

Hozzászólás Szerző: Robert »

#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ás Szerző: kszabi »

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: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Lehetséges?

Hozzászólás Szerző: SanyiSay »

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: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Lehetséges?

Hozzászólás Szerző: Robert »

É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: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Lehetséges?

Hozzászólás Szerző: SanyiSay »

Mit nem értesz a progmem használatát vagy a = R"=====( jeleket?
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Lehetséges?

Hozzászólás Szerző: SanyiSay »

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ás Szerző: kszabi »

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: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Lehetséges?

Hozzászólás Szerző: SanyiSay »

Í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: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Lehetséges?

Hozzászólás Szerző: SanyiSay »

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ás Szerző: kszabi »

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.
Válasz küldése