PD, E15n, RE and AICAs
This document is an outline for a presentation I am working on with a view to presenting at an appropriate forum.
Please contact me via my LinkedIn profile if you represent a group who might be interested in hosting this presentation.
PD = Product Differentiation
E15n = Macquarie Dictionary’s word of the year 2024 (associated with Cory Doctorow)
RE = Reverse engineering
AICAs = we’ll get to that
Counterpoint to E15n:
When “software eats the world”, what is a poor corporation with a brand/product portfolio in non-digital hardware supposed to do?
Often the answer is a companion app. Often connectivity is WiFi/BLE/USB.
Often the apps are not great or become obsolete while the hardware is still useful.
But should we expect corporations with non-digital DNA to maintain their companion apps forever?
AICA = Alternative Interoperable Companion App
Targets:
Fender Mustang modelling guitar amplifiers
Akai and Alesis Midi Keyboard Controllers
Wifi Cameras?
Older Chromecasts?
Data mining:
Downloadable installers for companion apps, firmware
Downloadable manuals
Freely available, but copyright belongs to corporation
Installers are often deeply nested zip/tar/… containers with interesting JSON/XML configuration files there for the review
UI labelling generally visible using ‘strings’ if not actually in structured config files
Experiment with UTF-8 vs ISO-LATIN-1 vs 7-bit-ASCII for string extraction (and don’t send UTF-8 to hardware where vendor only sends ISO-LATIN-1 or ASCII)
Decompilation might be possible - but is it ever worth the effort?
Wireshark
Techniques:
FOSS (you’re never going to make money)
Python, Java
Library availability more important than syntax
AICA hosted on RPi etc (Balena?)
Build a web UI app then your client can be anywhere
Platform libraries for USB BLE
Limitations:
Building a community:
Who else owns the target hardware?
Are they prepared to risk running your software?
Should you even ask them to risk it?
If there other FOSS AICA’s for the hardware should you help them rather than start rolling your own?
Getting sued
You don’t want this
Be ‘Caesar’s Wife` in relation to hardware vendor’s copyright, branding and other IP
Treat the the hardware vendor with respect and understanding
If your software broke it you bought that consequence - don’t claim on the warranty
Don’t expect them to be happy if your effort works against their PD
Don’t expect them to be happy even if it doesn’t
No point in asking for permission - if you want to do something but think you might need permission for legal reasons you probably just shouldn’t ask and shouldn’t do it
Don’t assume a hostile action from an employee or agent reflects the considered position of the whole company
Don’t assume that because your app is harmless they should permit/support it - your cool FOSS app can be next year’s trojan malware delivery system
???
???
Conclusions
Q&A
Demos?
…