Ich mache gerade meine ersten Versuche mit dem ESP32-IDF. Nach ein paar
Klimmzügen habe ich es unter Eclipse zum Laufen gebracht und das erste
Testprogramm kompiliert. Obwohl es sich um einen Vierzeiler handelt, der
periodische eine Zählvariable per printf ausgibt und dann jeweils eine
Sekunde schläft, ist das Kompilat über 174 kByte groß.
Was wird da alles eingebunden? printf und sleep können es ja kaum sein?
1
#include<stdio.h>
2
#include<stdbool.h>
3
#include<unistd.h>
4
5
voidapp_main(void)
6
{
7
unsignedintc=0;
8
while(true){
9
printf("Count: %d, count^2: %d\n",c,c*c);
10
c++;
11
sleep(1);
12
}
13
}
Total sizes:
Used static DRAM: 10600 bytes ( 170136 remain, 5.9% used)
.data size: 8432 bytes
.bss size: 2168 bytes
Used static IRAM: 49146 bytes ( 81926 remain, 37.5% used)
.text size: 48119 bytes
.vectors size: 1027 bytes
Used Flash size : 117131 bytes
.text: 79795 bytes
.rodata: 37080 bytes
Total image size: 174709 bytes (.bin may be padded larger)
Fritz G. schrieb:> printf und sleep können es ja kaum sein?
Doch, printf ist auf den Boliden recht teuer. Bei 8-Bittern wird default
der float-Support erstmal weggelassen.
Wo aber die 60kB RAM hin verschwinden, ist mir auch ein Rätsel.
Ist nicht per default der ganze WiFi- und Netzwerkstack aktiviert? Der
braucht natürlich einiges an Speicher. FreeRTOS ist auch immer dabei.
Außerdem eine ganze Menge an Treibern für diverse Peripherie,
Hilfsfunktionen wie Logging usw. Allein dafür ist das printf() sowieso
immer mit dabei.
Aber was soll's? Die ESP32 haben bis zu 32 MiB Flash. Das Library-Zeug
ist ja auch nur ein mal im Flash. Den ganzen Rest kannst du dann voll
machen mit Massen an Anwendungscode...
Böse Zungen behaupten der genutzte Speicher würde für die
Backdoor-Routine der Chinesenregierung benutzt.
Wäre interessant welche Daten übers WiFi gehen, wenn man am ESP keine
Daten sendet, sondern nur eine Verbindung bestehen hat.
Jens K. schrieb:> Böse Zungen behaupten der genutzte Speicher würde für die> Backdoor-Routine der Chinesenregierung benutzt.
Der ist im ROM und zählt nicht zur Flash-Nutzung.
Niklas G. schrieb:> Jens K. schrieb:>> Böse Zungen behaupten der genutzte Speicher würde für die>> Backdoor-Routine der Chinesenregierung benutzt.>> Der ist im ROM und zählt nicht zur Flash-Nutzung.
Ist das wirklich so? Immerhin (deswegen sagte ich ja "behaupten") wäre
das der Hammer. Hast du Quellen bei denen man das mal nachlesen kann?
Jens K. schrieb:> Ist das wirklich so?
Reine Spekulation. Wenn ich eine Backdoor in so einem System
unterbringen wollen würde, würde ich sie in den ROM packen. Dort ist sie
schwerer zu finden und zu entfernen. Dementsprechend glaube ich nicht,
dass der große Flash-Verbrauch durch eine Backdoor verursacht wird.
Zumindest meine Tasmotas auf 8266 und 8285 machen genau gar keinen
Traffic ausgehend, sagt mir mein Mikrotikrouter.
Außer: Tasmota hat den Hang andauernd nach Holländischen NTP-Servern zu
kucken, obwohl lokaler NTP angegeben und auch erreichbar ist.
Das ist aber auch das einzige, es sei denn man versucht Updates zu
fahren.
Meine Tasmotas sind alle offline, als smarte Zeitschaltuhren, d.h. auch
ohne MQTT usw.
Peter D. schrieb:> Doch, printf ist auf den Boliden recht teuer. Bei 8-Bittern wird default> der float-Support erstmal weggelassen.> Wo aber die 60kB RAM hin verschwinden, ist mir auch ein Rätsel.
Ich habe die Zeile mit printf mal auskommentiert, das spart nur etwa 50
Bytes.
Anscheinend wird da ein komplettes Framework mit allen Treibern, RTOS,
etc. eingebunden.
Ob das Teil nach Hause telefoniert werde ich mir bei Gelegenheit mal
anschauen, im Moment läuft das WiFi noch nicht. Ich glaube aber kaum,
dass es da interessante Informationen zu übermitteln gibt. Die ESP
stecken doch vor allem in steuerbaren Steckdosen und anderen
Smart-Home-Gimmicks, was gibt es da zu spionieren? Handys und PCs sind
da ein lohnenderes Ziel.
Fritz G. schrieb:> Ich habe die Zeile mit printf mal auskommentiert, das spart nur etwa 50> Bytes.
Ja, weil printf sowieso gebraucht wird, da verschwindet nur der Aufruf
selbst.
Fritz G. schrieb:> Anscheinend wird da ein komplettes Framework mit allen Treibern, RTOS,> etc. eingebunden.
So ist es. Schau mal ins Menuconfig, da kannst du einige Dinge
deaktivieren (z.B. WiFi/Netzwerk-Stack), und ein paar Kilobytes sparen.
Fritz G. schrieb:> Ich glaube aber kaum,> dass es da interessante Informationen zu übermitteln gibt.
Vielleicht ja den Programmcode 😜
Fritz G. schrieb:> was gibt es da zu spionieren?
Den WLAN-Schlüssel, andere Geräte und evtl. deren Sicherheitslücken.
So ein Backdoor-ESP könnte ja als "Remote Relay" dienen, um z.B. deinen
PC, dein NAS oder eben auch deine Mobilgeräte leerzuräumen...
Es ist schon ziemlich naiv, anzunehmen, daß sich solche Hacker für den
Inhalt bzw. die Daten eurer Geräte interessieren.
Es geht vielmehr darum möglichst viele Geräte als Soldaten für ein
Botnetz zu rekrutieren, mit dem man dann kritische Infrastrukturen
angreifen kann.
Das gibt dem Satz "Ich hab ja nix zu verbergen" eine ganz andere
Dimension.
Hallo,
Jens M. schrieb:> Fritz G. schrieb:>> was gibt es da zu spionieren?>> Den WLAN-Schlüssel, andere Geräte und evtl. deren Sicherheitslücken.
Dehalb sind dauernd Chinesen vor meiner Haustür, die wollen mein WLAN
benutzen... Ansonsten schon verblüffend, was da an Spionagecode im
Rom/Flash sein soll, da müssen Superprogrammierer am Werk sein.
> So ein Backdoor-ESP könnte ja als "Remote Relay" dienen, um z.B. deinen> PC, dein NAS oder eben auch deine Mobilgeräte leerzuräumen...
Naja, bei den erreichbaren Transferraten auf diesem Weg wird wohl da in
ein paar Monaten erst die Dateiliste von NAS/PC usw. in China angekommen
sein.
Gruß aus Berlin
Michael