TCP data ontcijferen Goodwe zonnepanelen omvormer

Pagina: 1
Acties:

Acties:
  • +1 Henk 'm!

  • MarcoC
  • Registratie: September 2003
  • Nu online
ThinkPadd schreef op zaterdag 27 februari 2021 @ 12:42:
[...]

Ik heb hier een pcap dump van Wireshark neergezet waarin ik de omvormer aanzet (zodat een evt. uitwisseling van een key er ook tussen zit) en waar meerdere uploads naar het moederschip in zitten. Heb die post ook even gepinned.

Voor de mensen zonder Wireshark, twee keer een upload:


***members only***
Thanks, dit hebben we nodig. Ik ken Wireshark niet, het lijkt me het handigst om het probleem zo klein mogelijk te maken. Het probleem is dat we een bytestring hebben waar we de juiste getallen in moeten zien te vinden. Dus het beginpunt moet zijn een bytestring zoals je hier plaatst, de rest leidt alleen maar af van de discussie :P .

Het probleem dat je wilt oplossen is als volgt: de getallen zitten in deze bytestring verstopt maar je weet niet hoe. Vragen die beantwoord moeten worden zijn:
  • Zijn de getallen little endian of big endian opgeslagen? Heel simpel komt het er op neer of de getallen achterstevoren of niet in je bytestring verstopt zitten.
  • Vervolgens is de vraag hoeveel bits er per getal gebruikt worden. 8-bit, 16-bit of 32-bit? Integer of float?
  • Als laatste wil je een mapping hebben welke offset correspondeert met welk getal. Op deze manier kan je een "map" maken met welke getal op welke positie in je bytestring opgeslagen zit.
Bovenstaande weet ik omdat ik exact hetzelfde heb gedaan met de bytestring uit mijn omvormer. Bij mijn bytestring waren de getallen opgeslagen als "big endian" 16-bit integers. Een voorbeeld met een bytestring uit mijn omvormer:
Afbeeldingslocatie: https://tweakers.net/i/noMXAnPJgbMJDQLgMg1jDEtNvjg=/800x/filters:strip_exif()/f/image/Te8EklzAdamhjWgUBqrBePqY.png?f=fotoalbum_large

Je ziet hier dus dat ik links de "big endian" inspector heb uitgeklapt en de "little endian" inspector heb ingeklapt. Als ik dan de cursor op positie 0x00000033 zet, dan zie je dat als je vanaf deze positie de data die daarop volgt als 16-bit integer uitleest als resultaat "2305" oplevert, wat overeenkomt met 230,5V. Op deze manier kan je de bytestring reverse engineeren. Reverse engineeren betekent in dit geval dat je een lijstje maakt met welke positie in de bytestring correspondeert met welke waarde en opschrijft welk datatype het is (ik vermoed dat alle getallen hetzelfde datatype hebben).

Wat je dus moet doen is het volgende:
1. De bytestring in hexed.it plakken
2. De big endian inspector openen (aanname dat alle Chinese apparatuur in de basis hetzelfde werkt en er dus ook big endian gebruikt wordt).
3. Alle posities afgaan in de bytestring totdat je een getalletje in de inspector tegenkomt wat er bekend uitziet.

In jouw geval kan ik weinig terugvinden in de bytestring. Weet je zeker dat dit de juiste bytestring is? En in je OP staat een hele reeks met waardes die hierin zouden kunnen zitten, kan je het niet meer pinpointen? Het zou mooi zijn als je met enige zekerheid weet welke getallen in de bytestring terug zouden moeten komen.

Bij mijn omvormer kan ik instellen dat de data gedumpt wordt naar een lokaal IP-adres. Kan jij dat ook? Ik denk het wel omdat de web interface van jouw omvormer heel veel lijkt op de mijne (afgaande van de link uit OP). Dan kan je op die poort luisteren naar de bytestring die verstuurd wordt. Ik zou persoonlijk een hexadecimale bytestring verwachten met relatief veel nullen erin namelijk en dat zie ik niet terug in jouw bytestring. Dit is bij de bytestring van mijn omvormer zo en ook het voorbeeld uit het linkje uit jouw OP heeft een hexadecimale bytestring met relatief veel nullen.
Afbeeldingslocatie: https://tweakers.net/i/VcbN550cv8lEDKTE69x1_8F4m9I=/800x/filters:strip_exif()/f/image/c4scflAd9H232FFNvqu46LbT.png?f=fotoalbum_large

[ Voor 16% gewijzigd door MarcoC op 27-02-2021 13:23 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:12
Hierbij drie nieuwe dumps. Tijdstip in Wireshark kwam precies overeen met tijdstip in export.
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen


Dikgedrukt is de waarde 'POSTGW' vanaf waar de interessante data zit (het stuk ervoor is de TCP header).

Daar horen dan de volgende waardes bij:
Afbeeldingslocatie: https://tweakers.net/i/ikOJfydekbzMIAqIwOr38SK5fb4=/800x/filters:strip_icc():strip_exif()/f/image/h3Bhz55UWt3asMbXTlU3Vfkf.jpg?f=fotoalbum_large

Eens kijken of ik met die Hexed.it iets kan herleiden.

[ Voor 10% gewijzigd door ThinkPad op 27-02-2021 17:58 ]

Pagina: 1