HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jglim
UnsignedFlash
Hardware & Embedded2022–2022
jglim / UnsignedFlash · Archived

UnsignedFlash

Firmware signature bypass on the IC204

2Distinct people
2Mentions
0Explicit recommenders
28GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Firmware signature bypass on the IC204

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week2 dated mentions

Observed mentions: 2022-01-03 15:34:13 UTC to 2022-08-13 22:37:19 UTC. Weeks start Monday, UTC.

012022-01-03 00:00:00 UTC to 2022-01-10 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 32022-01-10 00:00:00 UTC to 2022-01-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-17 00:00:00 UTC to 2022-01-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-24 00:00:00 UTC to 2022-01-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-31 00:00:00 UTC to 2022-02-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-07 00:00:00 UTC to 2022-02-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-14 00:00:00 UTC to 2022-02-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-21 00:00:00 UTC to 2022-02-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-28 00:00:00 UTC to 2022-03-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-07 00:00:00 UTC to 2022-03-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-14 00:00:00 UTC to 2022-03-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-21 00:00:00 UTC to 2022-03-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-28 00:00:00 UTC to 2022-04-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-04 00:00:00 UTC to 2022-04-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-11 00:00:00 UTC to 2022-04-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-18 00:00:00 UTC to 2022-04-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 182022-04-25 00:00:00 UTC to 2022-05-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-02 00:00:00 UTC to 2022-05-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-09 00:00:00 UTC to 2022-05-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-16 00:00:00 UTC to 2022-05-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-23 00:00:00 UTC to 2022-05-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-30 00:00:00 UTC to 2022-06-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-06 00:00:00 UTC to 2022-06-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-13 00:00:00 UTC to 2022-06-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-20 00:00:00 UTC to 2022-06-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-27 00:00:00 UTC to 2022-07-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-04 00:00:00 UTC to 2022-07-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-11 00:00:00 UTC to 2022-07-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-18 00:00:00 UTC to 2022-07-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-25 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-08-01 00:00:00 UTC to 2022-08-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-08-08 00:00:00 UTC to 2022-08-15 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsAug 8

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jan 32022-01-03 00:00:00 UTC2022-01-10 00:00:00 UTC101
Jan 102022-01-10 00:00:00 UTC2022-01-17 00:00:00 UTC000
Jan 172022-01-17 00:00:00 UTC2022-01-24 00:00:00 UTC000
Jan 242022-01-24 00:00:00 UTC2022-01-31 00:00:00 UTC000
Jan 312022-01-31 00:00:00 UTC2022-02-07 00:00:00 UTC000
Feb 72022-02-07 00:00:00 UTC2022-02-14 00:00:00 UTC000
Feb 142022-02-14 00:00:00 UTC2022-02-21 00:00:00 UTC000
Feb 212022-02-21 00:00:00 UTC2022-02-28 00:00:00 UTC000
Feb 282022-02-28 00:00:00 UTC2022-03-07 00:00:00 UTC000
Mar 72022-03-07 00:00:00 UTC2022-03-14 00:00:00 UTC000
Mar 142022-03-14 00:00:00 UTC2022-03-21 00:00:00 UTC000
Mar 212022-03-21 00:00:00 UTC2022-03-28 00:00:00 UTC000
Mar 282022-03-28 00:00:00 UTC2022-04-04 00:00:00 UTC000
Apr 42022-04-04 00:00:00 UTC2022-04-11 00:00:00 UTC000
Apr 112022-04-11 00:00:00 UTC2022-04-18 00:00:00 UTC000
Apr 182022-04-18 00:00:00 UTC2022-04-25 00:00:00 UTC000
Apr 252022-04-25 00:00:00 UTC2022-05-02 00:00:00 UTC000
May 22022-05-02 00:00:00 UTC2022-05-09 00:00:00 UTC000
May 92022-05-09 00:00:00 UTC2022-05-16 00:00:00 UTC000
May 162022-05-16 00:00:00 UTC2022-05-23 00:00:00 UTC000
May 232022-05-23 00:00:00 UTC2022-05-30 00:00:00 UTC000
May 302022-05-30 00:00:00 UTC2022-06-06 00:00:00 UTC000
Jun 62022-06-06 00:00:00 UTC2022-06-13 00:00:00 UTC000
Jun 132022-06-13 00:00:00 UTC2022-06-20 00:00:00 UTC000
Jun 202022-06-20 00:00:00 UTC2022-06-27 00:00:00 UTC000
Jun 272022-06-27 00:00:00 UTC2022-07-04 00:00:00 UTC000
Jul 42022-07-04 00:00:00 UTC2022-07-11 00:00:00 UTC000
Jul 112022-07-11 00:00:00 UTC2022-07-18 00:00:00 UTC000
Jul 182022-07-18 00:00:00 UTC2022-07-25 00:00:00 UTC000
Jul 252022-07-25 00:00:00 UTC2022-08-01 00:00:00 UTC000
Aug 12022-08-01 00:00:00 UTC2022-08-08 00:00:00 UTC000
Aug 82022-08-08 00:00:00 UTC2022-08-15 00:00:00 UTC101

What Hacker News says

2 sources
That's pretty cool! I wonder how properly they were really signed - there are _so many_ mistakes even in systems that at least don't use an example key off the Internet. The most common ones I know of are: * Out-of-bounds write issues allowing "signature was validated" flags to be overwritten in Flash memory, like https://github.com/jglim/UnsignedFlash * State machine mistakes, like https://github.com/bri3d/VW_Flash/blob/master/docs/docs.md - allowing Flash to be written again after it was already written, without an erase first. * File format parsing mistakes, like those in a number of VW AG head units: https://github.com/jilleb/mib2-toolbox/issues/122 * The use of RSA with E=3 and inadequate padding validation, like https://words.filippo.io/bleichenbacher-06-signature-forgery... . * Failure to understand the system boundaries, like in t
Read the rest
he second part of https://github.com/bri3d/simos18_sboot where "secret" data can be recovered by halting the system during a checksum process. * Hardware fault injection issues, as used in https://fahrplan.events.ccc.de/congress/2015/Fahrplan/system... . Fundamentally this is of course, a very hard problem, since in the "protect against firmware modification" case, the attacker has physical access. But, compared to the state of the art in mobile devices and game consoles, automotive stuff is still way behind.
In I hacked my car
The XOR encryption was just for the update container. Newer update files usually employ some stronger forms of compression/encryption. However, it's usually some strange in-house crypto, so eventually people figure it out. bri3d refers to using RSA signatures on the firmware once it's written to the flash. By ensuring the firmware is signed using the manufacturers private key it should (in theory) prevent messing with the firmware, even if all encryption/flashing steps have been reverse engineered. Some interesting reading: https://github.com/bri3d/VW_Flash/blob/master/docs/docs.md https://github.com/jglim/UnsignedFlash
In Hacking a VW Golf Power Steering ECU

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.