Welke programmeer taal voor het analyseren van een ihex file? en meer ;)

bprosman

Golden Member

ik moet er de eerste entoesiaste gebruiker nog van ontmoeten, het beste dat ik al heb gehoord kwam zowat neer op "ja, men kan daarmee wel iets gedaan krijgen" ...

In het huidige Windows systeembeheer (mail, Skype en Teams omgevingen van 100.000+ gebruikers) gebeurt tegenwoordig alles met PowerShell.

En ook daar heeft iemand het wiel al wel eens uitgevonden:
https://www.powershellgallery.com/

Als je nu een HBO IT opleiding start is Python helemaal hip.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Zo zo, er valt dus heel wat te kiezen.
C#, Python, C,..
Cygwin, Powershellgallery,...
Ik ga eens even wat details uitzoeken.

En allemaal alvast bedankt zover voor de enthousiaste reacties.
Enne... tips blijven welkom.

Na wat eerste verkenningen ga ik voorlopig voor Python.
Welke programmeeromgeving kan ik het best kiezen?
Ik wil er ook executables mee kunnen maken die ook weer op een Windows PC draaien.

Executables maak je bijvoorbeeld met:
http://www.pyinstaller.org/

Omgeving: Notepad++ ??

big_fat_mama

Zie Paulinha_B

Dat klinkt als een vraag om een "integrated development environment", en daar heb ik geen antwoord op. Zelf maak ik (in een Linux-omgeving) python-script(je)s met vi, en voer ze uit vanaf de command-line; want een python-script is direct uitvoerbaar (of doet tenminste alsof, als ik het goed begrijp):

code:


vi ./mijnscript.py
./mijnscript.py

Of dat ook in de Windows-omgeving zo werkt zou ik niet weten, maar het lijkt me best waarschijnlijk. Behalve dat er in standaard-Windows geen vi beschikbaar is, daarvoor gebruik je dan notepad of wat dan ook.

Tip: als er stevig ontwikkeld wordt heb ik gewoonlijk twee vensters open: in het ene staat permanent de editor open, waarin er wordt geknutseld en geprot en gefrot en ... nuja, geprogrammeerd :) in het andere lanceer ik dan af en toe het ontwikkelde script om het effect te zien van al dat geknutsel. Dat op zijn minst moet in Windows toch ook kunnen, dunkt me: notepad en af en toe bewaren in 1 venster, in een ander venster (CMD command line) de boel opstarten en het resultaat beoordelen.

[Bericht gewijzigd door big_fat_mama op dinsdag 16 juni 2020 20:52:29 (30%)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Tool die voor Python veel gebruikt wordt is Spyder. M'n software-minded collega's waren daar nogal enthousiast over.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Turbokeu

Golden Member

Op 13 juni 2020 15:38:28 schreef big_fat_mama:
[...]

Ja, er bestaat powershell, maar zelden heb ik van iets zo'n "foei"-gevoel gehad - toegegeven, na een slechts oppervlakkige blik. En ik moet er de eerste entoesiaste gebruiker nog van ontmoeten, het beste dat ik al heb gehoord kwam zowat neer op "ja, men kan daarmee wel iets gedaan krijgen" ...

Ik ben bijna elke dag verbaasd over de mogelijkheden van Powershell (C-achtige scripttaal).
Ik ben rond 2013 begonnen met het ontwikkelen van simpele Powershell (V2 onder Windows 7) scripts op het werk (daarvoor had ik enkel wat ervaring met DOS logon batch scripts in combinatie met Kix32).
Bij Powershell versie 2 en 3 moest men wel nog dikwijls modules importeren (Active Directory, MS Exchange,...) om specifieke omgevingen/applicaties te kunnen beheren maar sinds Windows 10/Server 2016 met Powershell V5.1 zijn vele modules standaard geïntegreerd (versie 6 is in de maak).
Powershell kent ondertussen vele duizenden commandlets en is het quasi onmogelijk zonder internet om zelfs het bestaan ervan te kennen.
Ondertussen heb ik reeds honderden scripts ontwikkeld, sommigen worden uitgevoerd bij elke logon via General Policy Objects (bvb. audit van elk workstation: computernaam, datum/uur, username, full name, BIOS versie, IPadres, MACadres, Windows versie/build, MS Office versie/build, HDD/SSD merk/model/capaciteit, geheugen e.v.a.).
Andere scripts draaien op servers via de Task Scheduler (backups naar NAS, dagelijkse check van de vrije diskcapaciteit, FTP upload van gegenereerde rapporten naar de bevoegde instanties/ministeries, ...)
Nog andere scripts zijn ontwikkeld voor éénmalig gebruik of manuele uitvoering wanneer nodig (import van exportbestanden van onze VOIP provider met alle users/telefoonnummers naar onze Active Directory omgeving, ...)
Toen we een jaar geleden overgestapt zijn van een eigen mailserver (Exchange 2010) naar een externe Exchange mailprovider (via het Centrum voor Informatica voor het Brusselse Gewest (CIBG)) heb ik meerdere scripts ontwikkeld om automatisch alle users/mailboxen en hun eigenschappen (telefoonnumer, dienst, localisatie, functie e.d.) vanuit de AD exporteren en vervolgens te importeren naar de CIBG Exchange servers. Omgekeerd elke mailbox van alle users in de AD naar de nieuwe domeinnaam veranderd (van .be naar .brussels).
Elk van mijn scripts creëert altijd een logbestand en/of mailbericht met de resultaten.
Voor onze VMware omgevingen is er een VMware PowerCLI-module waarmee ik rechtstreeks de ESXi-hosts kan beheren.
Ik kan zo nog vele tientallen voorbeelden aanhalen.

Ik ben geen Microsoft fan maar het is de enige omgeving waar ik me echt thuis in voel, veel ervaring heb en trouwens meerdere certificaties van bezit.
Powershell is in mijn ogen één van de beste/krachtigste applicaties die Microsoft ooit ontwikkeld heeft (de kracht van Powershell heeft ook het nadeel dat je met een simpel commandlet een hele omgeving kan kapotmaken/corromperen (dus vooraf vele tests uitvoeren/debuggen met logbestanden zonder de actuele schrijfacties uit te voeren, en indien mogelijk de commandletoptie '-WhatIf' gebruiken!).

I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
bprosman

Golden Member

Behalve dat er in standaard-Windows geen vi beschikbaar is

Gelukkig niet ;-).

Voor de SM'ers onder ons was er nog lange tijd "Edlin".

Dat op zijn minst moet in Windows toch ook kunnen, dunkt me: notepad en af en toe bewaren in 1 venster, in een ander venster (CMD command line) de boel opstarten en het resultaat beoordelen.

Voor PowerShell heb je PowerShell ISE, bovenste deel je editor (met color coded syntax), rechts een "command reference" en onder een venster waar de executable draait.

Voor Python werkt Spyder inderdaad heel fijn, links de (wederom syntax color coded) source. Rechts de variabelen die je kunt monitoren, rechtsonder de uitvoering.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Inmiddels heb ik de Anaconda distributie gedownload.
Voorlopig denk ik aan de Notebook en Terminal plugin genoeg te hebben.

Ik ga van start met wat eenvoudige probeersels.

bprosman

Golden Member

Voordeel van de Anaconda distributie is dat eigenlijk alles er in zit.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 17 juni 2020 09:01:27 schreef Turbokeu:
[...]..

...
Powershell is in mijn ogen één van de beste/krachtigste applicaties die Microsoft ooit ontwikkeld heeft (de kracht van Powershell heeft ook het nadeel dat je met een simpel commandlet een hele omgeving kan kapotmaken/corromperen (dus vooraf vele tests uitvoeren/debuggen met logbestanden zonder de actuele schrijfacties uit te voeren, en indien mogelijk de commandletoptie '-WhatIf' gebruiken!)...

Ik ken powershell maar een héél klein beetje. Het is natuurlijk iets wat er oo unix/linux altijd al is geweest in de diverse shells.

Het voordeel van scripts kan ik ook uitleggen: het is 'end user serviceable'. Tenzij je een gecompileerde applicatie extreem goed uitdenkt en uitwerkt qua configuratiemogelijkheden kan de eindgebruiker of support engineer er niks anders mee dan het zoals bedoelt gebruiken.

Een voorbeeld: een schemersensor werkt ergens niet lekker door koplampen van nabij verkeer. Een toepassing die het aantal lux kan configureren blijkt niet voldoende. In een script klop je er tijdsvertraging bij, 1 regeltje, en voila je kan verder terwijl je met een binaire executable eigenlijk geen kant op kan.
Dit geldt overigens ook voor debug mogelijkheden en toekomstige bruikbaarheid.

Turbokeu

Golden Member

Van compileren gesproken.
Ik gebruik meestal PowerGUI (free version) als Powershell editor (de standaard bijgeleverde MS Powershell ISE is te beperkt naar mijn zin).
PowerGUI laat ook toe Powershell scripts te compileren naar een exe, of zelfs naar een service.
Heb dat eens gebruikt omdat er op een bepaalde server een proces steeds random stopte.
De leverancier van de applicatie had geen oplossing dus maar een scriptje geschreven dat regelmatig dat process checkte en terug opstartte als het gestopt was. Het script draaide als een service en werd automatisch met de server opgestart.

Ik probeer nu gewoon te worden aan Visual Studio Code van Microsoft (gratis), een editor voor vele programmeertalen met vele debug opties.

I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"

Even een kleine toevoeging omdat niemand het genoemd heeft en ik het ook niet echt kende:

WSL windows subsystem for Linux zit standaard bij Windows 10 (wel activeren of installeren)

Daarmee heb je in Windows de GNU utils zoals bash, awk, sed maar kan je ook python, ssh e.d. draaien, ik neem aan dat hexdump er ook bij zit of gezet kan worden.