Ixus 265 HS Firmware Dump

1xx, 2xx, 3xx, 5xx, 7xx, 8xx, 9xx, 1xxx

Ixus 265 HS Firmware Dump

Beitragvon Bollwurf » 20.03.2014, 18:08

Hallo,

Ich würde gerne einen Firmware Dump bei meiner Canon Ixus 265 HS durchführen.
Dazu nutze ich diese Anleitung:

http://chdk.wikia.com/wiki/Canon_Basic/Scripts/Dumper

Habe beide Scripts probiert, aber nix passiert...

Also der Script wird erkannt! Es kommt eine Meldung, aber danach geschieht nix weiter...

Auch die Firmwareerkkennung mit den beiden Dateien klappt nicht... Muss ich da etwas anderes unternehmen?

LG
Bollwurf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 20.03.2014, 17:58
Kamera(s): Canon Ixus 265 HS

Re: Ixus 265 HS Firmware Dump

Beitragvon srsa.4c » 20.03.2014, 18:54

Hallo,

diese Ixus hat einen neuen Prozessor (DIGIC 4+), also Überraschungen sind nicht ausgeschlossen.
Ist der Schreibschutz deaktiviert? Haben die Skripte irgendwelche Dateien erzeugt? Könntest du vielleicht irgendwie die Meldung lesen?
Wenn nicht, versuch mal mit diesem Skript:
Syntax: [ Download ] [ Verstecken ]
Benutze Canon Basic Syntax Highlighting
dim f,a,startadr=0,romsize=0x1000000,msgstr=0

private sub mydump(c)
        startadr = c * 0x1000000
        startadr = startadr + 0xf0000000
        sprintf(msgstr,"A/DUMP%0X.BIN",c)
        LCDMsg_SetStr(a,msgstr)
        f=Fopen_Fut(msgstr,"w")
        Fwrite_Fut(startadr,romsize,1,f)
        Fclose_Fut(f)
end sub

private sub Initialize()
    UI.CreatePublic()
    a=LCDMsg_Create()
    LCDMsg_SetStr(a,"Running")
    System.Create()
    msgstr = AllocateMemory(80)

        mydump(15)
        mydump(14)
        mydump(13)
        mydump(12)
        mydump(11)
        mydump(10)
        mydump(9)
        mydump(8)
        mydump(7)
        mydump(6)
        mydump(5)
        mydump(4)
        mydump(3)
        mydump(2)
        mydump(1)
        mydump(0)

        LCDMsg_SetStr(a,"Done")
    FreeMemory(msgstr)
end sub
Erstellt in 0.009 Sekunden, mit GeSHi 1.0.8.9
Dieser Skript wird versuchen, eine Reihe von ROM-Dumps zu erzeugen (16*16MB).
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: Ixus 265 HS Firmware Dump

Beitragvon Bollwurf » 20.03.2014, 19:26

Hi,

Schreibschutz ist deaktiviert. Bei einem älterem Script kam immer startednot found! CBDUMPER.LOG wurde erstellt.

Jetzt hab ich nochmal

Code: Alles auswählen
' dump ROM to A/PRIMARY.BIN
' log to A/CBDUMPER.LOG
 
DIM startaddr=0
DIM os="unk"
DIM lcdmsg=0
DIM msgstr=0
 
' detect start address and OS
' order must be from highest to lowest, since accessing outside of ROM may trigger an exception
private sub GetStart()
   if memcmp(0xFFC00004,"gaonisoy",8) = 0 then
      startaddr = 0xFFC00000
      os = "dry"
      exit sub
   end if
   if memcmp(0xFFC00008,"Copyrigh",8) = 0 then
      startaddr = 0xFFC00000
      os = "vx"
      exit sub
   end if
   if memcmp(0xFF810004,"gaonisoy",8) = 0 then
      startaddr = 0xFF810000
      os = "dry"
      exit sub
   end if
   if memcmp(0xFF810008,"Copyrigh",8) = 0 then
      startaddr = 0xFF810000
      os = "vx"
      exit sub
   end if
   if memcmp(0xFF000004,"gaonisoy",8) = 0 then
      startaddr = 0xFF000000
      os = "dry"
      exit sub
   end if
   if memcmp(0xFC020004,"gaonisoy",8) = 0 then
      startaddr = 0xFC020000
      os = "dry"
      exit sub
   end if
end sub
 
private sub RegisterProcs()
   ' Newest cams (Dryos rel 43 and later) only have System.Create()
   ' on older dryos cams SystemEventInit is an alias for System.Create()
   ' ExecuteEventProcedure does is not registered by default on vx,
   ' but calling an unregistered is not fatal
   if System.Create() = -1 then
      SystemEventInit()
   end if
   if ExecuteEventProcedure("UI_RegistDebugEventProc") = -1 then
      ExecuteEventProcedure("UI.CreatePublic")
   end if
end sub
 
private sub InitMsg()
   lcdmsg = ExecuteEventProcedure("LCDMsg_Create")
   msgstr = AllocateMemory(80)
   ' truncate log
   msgfile = Fopen_Fut("A/CBDUMPER.LOG","w")
   if msgfile <> 0 then
      Fclose_Fut(msgfile)
   end if
end sub
 
private sub PutMsg(msg)
   if lcdmsg >= 0 then
      LCDMsg_SetStr(lcdmsg,msg)
   end if
   msgfile = Fopen_Fut("A/CBDUMPER.LOG","a")
   if msgfile <> 0 then
      Fwrite_Fut(msg,strlen(msg),1,msgfile)
      Fwrite_Fut("\n",1,1,msgfile)
      Fclose_Fut(msgfile)
   end if
end sub
 
private sub Initialize()
   RegisterProcs()
   InitMsg()
   PutMsg("Started")
 
   GetStart()
 
   if startaddr <> 0 then
      sprintf(msgstr,"%0X %s",startaddr,os)
      PutMsg(msgstr)
      romsize = 0xFFFFFFFC - startaddr
      dumpfile = Fopen_Fut("A/PRIMARY.BIN","w")
      if dumpfile <> 0 then
         Fwrite_Fut(startaddr,romsize,1,dumpfile)
         Fclose_Fut(dumpfile)
         Wait(500)
         PutMsg("done")
      else
         PutMsg("file error")
      end if
   else
      PutMsg("not found!")
   end if
   FreeMemory(msgstr)
end sub

Benutzt. Jetzt kommt started und der Bildschirm (ganze Kamera) geht aus... Nix weiter... Auch wenn ich 5 min warte...

Bei deinem Script passiert das gleiche... Ohne Meldung...
Zuletzt geändert von msl am 20.03.2014, 20:27, insgesamt 1-mal geändert.
Grund: edit by Mod: fehlendes Code-Tag gesetzt
Bollwurf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 20.03.2014, 17:58
Kamera(s): Canon Ixus 265 HS

Re: Ixus 265 HS Firmware Dump

Beitragvon srsa.4c » 20.03.2014, 20:32

Bollwurf hat geschrieben:Jetzt kommt started und der Bildschirm (ganze Kamera) geht aus... Nix weiter... Auch wenn ich 5 min warte...
Bei deinem Script passiert das gleiche... Ohne Meldung...
Also, die Skripte stürzen ab...
Ich habe zwei andere Skripte. Das erste Skript wird versuchen einen 8MB ROM-Dump zu machen. Wenn es auch abstürzt, probiere mal das zweite Skript um ein wenig RAM zu dumpen - hoffentlich werden wir dort ROM-Adressen finden...
Syntax: [ Download ] [ Verstecken ]
  1. ' BLIND ROMDUMPER 8M 
  2. dim f,a,startadr=0,romsize=0x800000,msgstr=0 
  3.  
  4. private sub mydump(c) 
  5.     startadr = c * 0x800000 
  6.     startadr = startadr + 0xf0000000 
  7.     sprintf(msgstr,"A/DUMP%0X.BIN",c) 
  8.     LCDMsg_SetStr(a,msgstr) 
  9.     f=Fopen_Fut(msgstr,"w") 
  10.     Fwrite_Fut(startadr,romsize,1,f) 
  11.     Fclose_Fut(f) 
  12.     Wait(200) 
  13. end sub 
  14.  
  15. private sub Initialize() 
  16.   UI.CreatePublic() 
  17.   a=LCDMsg_Create() 
  18.   LCDMsg_SetStr(a,"Running") 
  19.   System.Create() 
  20.   msgstr = AllocateMemory(80) 
  21.  
  22.     mydump(31) 
  23.     ' mydump(30) 
  24.     ' mydump(29) 
  25.     ' mydump(28) 
  26.     ' mydump(27) 
  27.     ' mydump(26) 
  28.     ' mydump(25) 
  29.     ' mydump(24) 
  30.     ' mydump(23) 
  31.     ' mydump(22) 
  32.     ' mydump(21) 
  33.     ' mydump(20) 
  34.     ' mydump(19) 
  35.     ' mydump(18) 
  36.     ' mydump(17) 
  37.     ' mydump(16) 
  38.     ' mydump(15) 
  39.     ' mydump(14) 
  40.     ' mydump(13) 
  41.     ' mydump(12) 
  42.     ' mydump(11) 
  43.     ' mydump(10) 
  44.     ' mydump(9) 
  45.     ' mydump(8) 
  46.     ' mydump(7) 
  47.     ' mydump(6) 
  48.     ' mydump(5) 
  49.     ' mydump(4) 
  50.     ' mydump(3) 
  51.     ' mydump(2) 
  52.     ' mydump(1) 
  53.     ' mydump(0) 
  54.  
  55.     LCDMsg_SetStr(a,"Done") 
  56.   FreeMemory(msgstr) 
  57. end sub 


Syntax: [ Download ] [ Verstecken ]
  1. ' RAMDUMPER 8M 
  2. dim f,a,startadr=4,ramsize=0,msgstr=0 
  3.  
  4. private sub mydump(c) 
  5.     ramsize = (c * 1024) - 4 
  6.     sprintf(msgstr,"A/RAM%0X.BIN",c) 
  7.     LCDMsg_SetStr(a,msgstr) 
  8.     f=Fopen_Fut(msgstr,"w") 
  9.     Fwrite_Fut(startadr,ramsize,1,f) 
  10.     Fclose_Fut(f) 
  11.     Wait(200) 
  12. end sub 
  13.  
  14. private sub Initialize() 
  15.   UI.CreatePublic() 
  16.   a=LCDMsg_Create() 
  17.   LCDMsg_SetStr(a,"Running") 
  18.   System.Create() 
  19.   msgstr = AllocateMemory(80) 
  20.  
  21.     mydump(8192) 
  22.  
  23.     LCDMsg_SetStr(a,"Done") 
  24.   FreeMemory(msgstr) 
  25. end sub 
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: Ixus 265 HS Firmware Dump

Beitragvon Bollwurf » 21.03.2014, 15:28

Hallo,

Hat beides geklappt...

Habs mal bei uploaded hochgeladen... Oder soll es woanders?

Also File 1:

http://ul.to/5wusmzpj

File 2:

http://ul.to/a61eduh8

Wie geht man jetzt weiter vor?

Danke nochmal für die Unterstützung =D>
Bollwurf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 20.03.2014, 17:58
Kamera(s): Canon Ixus 265 HS

Re: Ixus 265 HS Firmware Dump

Beitragvon srsa.4c » 21.03.2014, 18:34

Hallo,

danke für die Dumps. Das erste Dump zeigt daß das Firmware eigentlich 16MB groß sein soll. Probier mal wieder mit diesem Skript (es ist fast identisch mit meinem ersten Skript, versucht aber nur ein Dump zu machen):
Syntax: [ Download ] [ Verstecken ]
Benutze Canon Basic Syntax Highlighting
dim f,a,startadr=0,romsize=0x1000000,msgstr=0

private sub mydump(c)
        startadr = c * 0x1000000
        startadr = startadr + 0xf0000000
        sprintf(msgstr,"A/DUMP%0X.BIN",c)
        LCDMsg_SetStr(a,msgstr)
        f=Fopen_Fut(msgstr,"w")
        Fwrite_Fut(startadr,romsize,1,f)
        Fclose_Fut(f)
end sub

private sub Initialize()
    UI.CreatePublic()
    a=LCDMsg_Create()
    LCDMsg_SetStr(a,"Running")
    System.Create()
    msgstr = AllocateMemory(80)

        mydump(15)

        LCDMsg_SetStr(a,"Done")
    FreeMemory(msgstr)
end sub
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: Ixus 265 HS Firmware Dump

Beitragvon Bollwurf » 21.03.2014, 19:13

Hi,

Woher weißt du, das es 16mb sein sollten? Wie liest du das aus?

Hier der Dump:

http://ul.to/un00588u
Bollwurf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 20.03.2014, 17:58
Kamera(s): Canon Ixus 265 HS

Re: Ixus 265 HS Firmware Dump

Beitragvon srsa.4c » 21.03.2014, 22:16

Hallo,

wiedermal danke für deine Bemühungen.

Woher weißt du, das es 16mb sein sollten? Wie liest du das aus?

Ich habe einen Crash-Log in deinem Dump gefunden. Im Log sind auch ROM-Adressen zu finden, z.B.
F0 72 0A FF (0xff0a72f0 hexadezimal). Aus Erfahrung wußte ich dann, daß die ROM-Start-Adresse 0xff000000 sein muß (was eine Größe von 16MB bedeutet).

Syntax: [ Download ] [ Verstecken ]
Benutze Text Syntax Highlighting
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00F80000  C0 0B 00 00 32 30 31 34 3A 30 33 3A 32 30 20 31  Ŕ...2014:03:20 1
00F80010  39 3A 31 37 3A 31 36 00 01 00 00 00 00 00 00 00  9:17:16.........
00F80020  D4 01 00 00 53 63 72 69 70 74 2E 63 00 00 00 00  Ô...Script.c....
00F80030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00F80040  00 00 00 00 22 00 F2 00 43 74 72 6C 53 72 76 00  ....".ň.CtrlSrv.
00F80050  E8 6C 02 00 34 00 00 00 EC 00 00 00 0A 00 00 00  čl..4...ě.......
00F80060  0A 00 00 00 18 0A 00 00 00 00 00 00 00 00 00 00  ................
00F80070  EE EE EE EE 00 00 00 00 18 00 00 00 80 00 00 00  îîîî........€...
00F80080  F0 72 0A FF 00 00 00 00 13 00 00 20 00 00 00 00  đr.˙....... ....
00F80090  D8 D5 57 00 00 1C 00 00 40 0C 00 00 FF FF FF FF  ŘŐW.....@...˙˙˙˙
00F800A0  A8 EF 57 00 F4 79 0A FF F4 F0 57 00 00 00 00 00  ¨ďW.ôy.˙ôđW.....
00F800B0  00 00 00 00 5C 1B 0A FF D4 01 00 00 00 00 00 00  ....\..˙Ô.......
00F800C0  00 00 00 00 80 20 41 00 00 00 00 00 2C 19 26 FF  ....€ A.....,.&˙
00F800D0  64 38 00 00 E0 AE 41 00 73 08 00 00 F4 1D 0A FF  d8..ŕ®A.s...ô..˙
00F800E0  0D 00 00 00 E0 AE 41 00 00 00 00 00 00 00 00 20  ....ŕ®A........
00F800F0  00 00 00 00 5C B4 00 00 00 00 00 00 01 00 00 00  ....\´..........
00F80100  00 00 00 00 FC 18 26 FF 5C 08 00 00 FC 0C 26 FF  ....ü.&˙\...ü.&˙
00F80110  78 8C 2F 00 D4 39 00 00 5C 08 00 00 44 16 00 00  xŚ/.Ô9..\...D...
00F80120  00 00 00 20 00 00 00 20 18 02 98 19 18 02 98 19  ... ... ........
00F80130  0C 08 26 FF 9C 7A 0A FF 78 8C 2F 00 01 00 00 00  ..&˙śz.˙xŚ/.....
00F80140  D4 39 00 00 5C 08 00 00 44 16 00 00 B8 7F 0A FF  Ô9..\...D...¸..˙
00F80150  70 71 02 00 B8 39 00 00 18 02 98 19 18 02 98 19  pq..¸9..........
00F80160  18 02 98 19 18 02 98 19 18 02 98 19 98 73 0A FF  .............s.˙
00F80170  70 71 02 00 90 3F 56 00 40 19 00 00 70 27 6B 00  pq...?V.@...p&#39;k.
00F80180  18 02 98 19 18 02 98 19 18 02 98 19 18 02 98 19  ................
Erstellt in 0.001 Sekunden, mit GeSHi 1.0.8.9


Und jetzt die schlechte Nachricht:
Es gibt einige wichtige veränderungen in der Firmware. Ich fürchte daß das eine blinde Portierung ziemlich schwierig machen kann.
Das bedeutet, jemand mit der Kamera und mehr oder weniger Programmierungskenntnissen wird benötigt.

Ich habe einen neuen Thread im internationalen Forum geöffnet und deinen Dump dorthin gepostet.
Weitere Fragen kann ich dort beantworten (ich kann auf Englisch viel schneller kommunizieren).

MfG.
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: Ixus 265 HS Firmware Dump

Beitragvon Bollwurf » 22.03.2014, 10:57

Vielen Dank!

Ich werde das ganze weiter verfolgen. Wenn ich was helfen kann, gebt mir Bescheid. Bin aber ab nächste Woche für 3 Wochen im Urlaub...

Aber als ersten Schritt, werdet ihr die Firmware decompilieren oder?

Mein Vati hat die SX 600 HS

Da kann ich nächste Woche mit den gleichen Scripten auch versuchen nen Dump zu machen... Wenn alles klappen sollte, lade ich sie hier hoch. Dann habt ihr diese auch :D
Bollwurf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 20.03.2014, 17:58
Kamera(s): Canon Ixus 265 HS

Re: Ixus 265 HS Firmware Dump

Beitragvon Florens » 09.01.2015, 05:58

hat sich hier eventuell was getan, sorry für die Frage, ich weiß sowas ist viel Arbeit.

oder kann man noch irgendwas machen um vielleicht doch noch zu chdk auf ner 265 HS zu kommen...
hätte hier auch noch eine

Gruß Florens
Florens
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 1
Registriert: 09.01.2015, 03:24
Kamera(s): IXUS 265 HS


Zurück zu 100er/1000er-Serie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast