Modding van Linux NVR software

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • unixa
  • Registratie: Augustus 2016
  • Laatst online: 11-06 12:01
Mijn vraag

Ik zou graag de .rom file (firmware) folder willen aanpassen van een oude NVR.
Ik kan de .rom file openen in 7zip en kan daarin alles zien, .bmp en .png plaatjes voor achtergronden en icoonen. Tevens alle folder zoals /bin, /dev ect. Het is een squashfs bestandssysteem.

Het apparaat is een K9604-w met een hi3520d chip.
Ik heb wat files online gevonden die ik op USB-stick kan zetten en dan SSH mogelijkheid heb zolang de USB stick er in zit tijdens opstarten van NVR. (alleen lezen op het moment)
Het systeem draait op HiLinux.

Waar ik tegen aanloop is, dat ik bijvoorbeeld een icoon (.bmp) wil aanpassen ik geen toegang heb om het
.rom file aan te passen in 7zip. (read only). Ik kan wel alles uitpakken.

Wat ik geprobeerd heb is de aangepaste folder opnieuw in te pakken met
code:
1
mksquashfs folder1 nieuwe.rom -comp xz -b 1024K -noappend

Dit resulteerd bijna als een originele .rom maar de NVR weigerd: No firmware found.

7Zip info over het origineel:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Size: 31 636 133
Packed Size: 8 293 970
Folders: 98
Files: 1 062
------------------------: 
Path: F:\FWHI2104NS_20190812_NVR_K9604-W_2_7_14_20_21322230.rom
Type: SquashFS
Warnings: There are some data after the end of the payload data
Offset: 4456512
Physical Size: 8 310 784
Tail Size: 4 272 064
Headers Size: 20 132
File System: SquashFS 4.0
Method: XZ
Cluster Size: 1 048 576
Big-endian: -
Created: 2019-08-12 09:15:56
Characteristics: DUPLICATES_REMOVED EXPORTABLE
Code Page: UTF-8


En dit is mijn best behaalde resultaat met mksquashfs:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Size: 31 406 402
Packed Size: 28 553 780
Folders: 98
Files: 1 060
------------------------: 
Path: F:\FWHI2104NS_20190812_NVR_K9604-W_2_7_14_20_21322230.rom
Type: SquashFS
Physical Size: 8 220 672
Headers Size: 19 924
File System: SquashFS 4.0
Method: XZ
Cluster Size: 1 048 576
Big-endian: -
Created: 2023-11-26 14:34:01
Characteristics: ALWAYS_FRAGMENTS DUPLICATES_REMOVED EXPORTABLE
Code Page: UTF-8


Waarom weigert de NVR de nieuwe .rom te zien als een originele firmware?
Daar wil ik achterkomen, omdat het leuk is om te doen. Zit alleen vast en ik vind momenteel nog geen resultaat op internet. Misschien dat iemand hier het weet wat ik er aan kan doen.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Accretion
  • Registratie: April 2014
  • Laatst online: 19:55

Accretion

⭐⭐⭐⭐⭐ (5/5)

Als je het originele bestand uitpakt en daarna weer inpakt, zijn de bestanden dan exact hetzelfde?

Dan weet je dat het importeren/exporteren op de juiste manier gaat.

Verder kan het zijn dat de firmware 'signed' is, dus dat er een code bij staat welke berekend wordt op basis van de hash van de firmware.

Als jij de firmware aanpast, weet jij niet de berekening om die 'code' te genereren en weet het systeem dus dat die firmware niet van de leverancier komt.

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

je moet er extra bestandje bij zetten ? zie

https://supports.zositech...r-04JB-NVR-crash-K9604-W-

Tja vanalles


Acties:
  • 0 Henk 'm!

  • unixa
  • Registratie: Augustus 2016
  • Laatst online: 11-06 12:01
Accretion schreef op zondag 26 november 2023 @ 15:47:
Als je het originele bestand uitpakt en daarna weer inpakt, zijn de bestanden dan exact hetzelfde?

Dan weet je dat het importeren/exporteren op de juiste manier gaat.

Verder kan het zijn dat de firmware 'signed' is, dus dat er een code bij staat welke berekend wordt op basis van de hash van de firmware.

Als jij de firmware aanpast, weet jij niet de berekening om die 'code' te genereren en weet het systeem dus dat die firmware niet van de leverancier komt.
Ik heb dat even geprobeerd, zonder dat ik ook maar iets heb veranderd in de bestanden.
Uiteindelijk is met uitpakken in 7zip en inpakken met mksquashfs het bestand gekrompen van 16 naar 8 mb.
Files in de package zijn wel hetzelde qua grootte.
Ik heb deze bestanden inderdaad al eerder opgeslagen voor een reset.
Het er bij zetten van deze bestanden geeft alsnog een; firmware not found.

Ik wil binnenkort proberen om niet met 7zip uit te pakken maar met unsquarefs.
Misschien dat iets uithaalt.. Andere suggesties welkom!

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 19:32
De NVR zal vermoedelijk de hash van de firmware update checken inderdaad.

Maar als je de firmware toch al kunt uitpakken e.d., wellicht kijken of je het root password kunt achterhalen? Via SSH kun je dan wellicht de files overschrijven in het draaiende OS?

Misschien heb je hier wat aan: GitHub Gist: Rooting K9608-2W

[ Voor 20% gewijzigd door ThinkPad op 26-11-2023 16:35 ]


Acties:
  • 0 Henk 'm!

  • unixa
  • Registratie: Augustus 2016
  • Laatst online: 11-06 12:01
ThinkPad schreef op zondag 26 november 2023 @ 16:32:
De NVR zal vermoedelijk de hash van de firmware update checken inderdaad.

Maar als je de firmware toch al kunt uitpakken e.d., wellicht kijken of je het root password kunt achterhalen? Via SSH kun je dan wellicht de files overschrijven in het draaiende OS?
Inderdaad, ik kan al SSH verbinding opzetten aangezien ik ook het wachtwoord voor root al heb gevonden (online). #Welcome to HiLinux. Ik kan van alles inlezen, maar het systeem is read only.
Ik heb dat geprobeerd door een mkdir te doen, maar kreeg read only melding.

Bron: https://gist.github.com/a...54ab85428915521f233ffa3d0

[ Voor 5% gewijzigd door unixa op 26-11-2023 16:36 ]


Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

@unixa als je een serial port uit kan lezen (debug port) terwijl je de firmware upload via de andere methode kan je wellicht zien wat er niet lukt. (wat meer zien dan nu?)

https://www.cctvforum.com...-lost-possible-solutions/ zie ik een foto van het boardje ? (midden boven) zie ik 4 mooie open pinnen .. genoeg guide(s) te vinden hoe je dat doet.
Afbeeldingslocatie: https://s3.us-east-2.amazonaws.com/cc4m/monthly_2019_06/320753045_WhatsAppImage2019-05-21at18_14_59.jpg.a36aec2d4d81487e56fef5649762ffa5.jpg

andere methode is de flash-chip :? rechts van de grote 4kante chip onder de clock-crystal (zilveren balk ding)
uit te lezen --> bin file en die (copy) file dan direct te editten voor terug te flashen.

ps ik ben niet zeker of dit de juiste dingen aanwijs etc .. maar er zijn YT filmpjes te vinden hoe men dit op andere hw doet.

Tja vanalles


Acties:
  • +1 Henk 'm!

  • unixa
  • Registratie: Augustus 2016
  • Laatst online: 11-06 12:01
Ja dat is het boardje, alleen zit er bij mij een wifi chip op en maar 1 usb poort.

Ik ben even wat verder gaan zoeken en vond dit:
I then had to put a proper uImage header on the squashfs image via the mkimage command, and flashed it to the device. The offsets used are taken from binwalk. I transferred the modified image over TFTP into memory on the device, erased the original squashfs image, wrote the new data to flash, and rebooted it.
op dit adres: https://blog.stephenpape.net/tag/uboot/

Die offsets, zegt me 123 niet veel, behalve dat 7zip het wel aangaf in de info:
code:
1
Offset: 4456512

Even zoeken op internet geeft met zoekwoorden, offset binwalk squarefs:
code:
1
You have to set the offset where the squashfs is


Ik zal nu moeten uitzoeken hoe ik dat correct wegschrijf naar de nieuwe .rom file.

Acties:
  • 0 Henk 'm!

  • unixa
  • Registratie: Augustus 2016
  • Laatst online: 11-06 12:01
Ik ben 1 stap verder met de correcte offset:
code:
1
mksquashfs folder1 test.rom -offset 4456512 -comp xz -b 1024k

Ik mis nu alleen nog de tail size. (-t werkt niet, invalid command)

Resultaat: (origineel in 1e post).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Size: 31 636 133
Packed Size: 28 308 640
Folders: 98
Files: 1 062
------------------------: 
Path: test.rom
Type: SquashFS
Offset: 4456512
Physical Size: 8 310 784
Headers Size: 18 312
File System: SquashFS 4.0
Method: XZ
Cluster Size: 1 048 576
Big-endian: -
Created: 2023-11-26 20:07:38
Characteristics: DUPLICATES_REMOVED EXPORTABLE
Code Page: UTF-8


Het word niet opgepakt door de NVR nog.. Die geeft nog steeds aan bij het kiezen, no firmware found.
Daarnaast is het pakketje wel 2x zo klein als het origineel.. :?

[ Voor 6% gewijzigd door unixa op 26-11-2023 20:53 ]

Pagina: 1