Vinnaren i pepparkakshustävlingen!
2024-07-16, 15:31
  #1
Medlem
Jag har analyserat en PE, .exe i Win 11 med Jdk 22 och sparat Ghidras projekt i sin .gzf. När ja gnu försöker öppna detta arkivformat i Ghidra på Linux får jag följande error:

Kod:
Language version (V4.1 or later) required for 'x86:LE:32:default'
ghidra.program.model.lang.LanguageNotFoundException: Language version (V4.1 or later) required for 'x86:LE:32:default'
	at ghidra.program.model.lang.LanguageVersionException.check(LanguageVersionException.java:126)
	at ghidra.program.database.ProgramDB.<init>(ProgramDB.java:328)
	at ghidra.app.util.opinion.GzfLoader.loadPackedProgramDatabase(GzfLoader.java:107)
	at ghidra.app.util.opinion.GzfLoader.load(GzfLoader.java:80)
	at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:395)
	at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:338)
	at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:306)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

---------------------------------------------------
Build Date: 2024-Jun-14 1025 EDT
Ghidra Version: 11.1.1
Java Home: /snap/ghidra/25/usr/lib/jvm/java-17-openjdk-amd64
JVM Version: Ubuntu 17.0.11
OS: Linux 5.15.0-116-generic amd64

Nån mer vettigt kunnig på Java som vet vad fasiken det är som är fel?
Inte ens Ghidras eller JDKs egna forum kan svara på varför detta kommer upp.

(Nej, jag undviker helst java)
Citera
2024-07-16, 15:49
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av Methos
Jag har analyserat en PE, .exe i Win 11 med Jdk 22 och sparat Ghidras projekt i sin .gzf. När ja gnu försöker öppna detta arkivformat i Ghidra på Linux får jag följande error:

Kod:
Language version (V4.1 or later) required for 'x86:LE:32:default'
ghidra.program.model.lang.LanguageNotFoundException: Language version (V4.1 or later) required for 'x86:LE:32:default'
	at ghidra.program.model.lang.LanguageVersionException.check(LanguageVersionException.java:126)
	at ghidra.program.database.ProgramDB.<init>(ProgramDB.java:328)
	at ghidra.app.util.opinion.GzfLoader.loadPackedProgramDatabase(GzfLoader.java:107)
	at ghidra.app.util.opinion.GzfLoader.load(GzfLoader.java:80)
	at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:395)
	at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:338)
	at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:306)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

---------------------------------------------------
Build Date: 2024-Jun-14 1025 EDT
Ghidra Version: 11.1.1
Java Home: /snap/ghidra/25/usr/lib/jvm/java-17-openjdk-amd64
JVM Version: Ubuntu 17.0.11
OS: Linux 5.15.0-116-generic amd64

Nån mer vettigt kunnig på Java som vet vad fasiken det är som är fel?
Inte ens Ghidras eller JDKs egna forum kan svara på varför detta kommer upp.

(Nej, jag undviker helst java)
Koden ser ju ut att exekvera iaf.

Har du lagt till din java home på din path i linux?

https://htmlpreview.github.io/?https...e.html#Install
Citera
2024-07-16, 16:39
  #3
Medlem
Citat:
Ursprungligen postat av Proton
Koden ser ju ut att exekvera iaf.

Har du lagt till din java home på din path i linux?

https://htmlpreview.github.io/?https...e.html#Install

Min Java_home verkar ligga i snaparkivet som Ghidra är installerat i. Jag kör ju annars Ghidra helt utan problem i Linux, så Java har jag. Däremot är det ett herkel att försöka få Ghidra att ta med alla win .dll för en PE så jag fick analysera filen i Win11 som jag har på burken sedan köpet av datorn. Men Ghidra på Linux vill inte ta kollegans zip-projekt.
Citera
2024-07-17, 09:35
  #4
Medlem
a-mortals avatar
Citat:
Ursprungligen postat av Methos
Jag har analyserat en PE, .exe i Win 11 med Jdk 22 och sparat Ghidras projekt i sin .gzf. När ja gnu försöker öppna detta arkivformat i Ghidra på Linux får jag följande error:

Kod:
Language version (V4.1 or later) required for 'x86:LE:32:default'
ghidra.program.model.lang.LanguageNotFoundException: Language version (V4.1 or later) required for 'x86:LE:32:default'
	at ghidra.program.model.lang.LanguageVersionException.check(LanguageVersionException.java:126)
	at ghidra.program.database.ProgramDB.<init>(ProgramDB.java:328)
	at ghidra.app.util.opinion.GzfLoader.loadPackedProgramDatabase(GzfLoader.java:107)
	at ghidra.app.util.opinion.GzfLoader.load(GzfLoader.java:80)
	at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:395)
	at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:338)
	at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:306)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

---------------------------------------------------
Build Date: 2024-Jun-14 1025 EDT
Ghidra Version: 11.1.1
Java Home: /snap/ghidra/25/usr/lib/jvm/java-17-openjdk-amd64
JVM Version: Ubuntu 17.0.11
OS: Linux 5.15.0-116-generic amd64

Nån mer vettigt kunnig på Java som vet vad fasiken det är som är fel?
Inte ens Ghidras eller JDKs egna forum kan svara på varför detta kommer upp.

(Nej, jag undviker helst java)
Det står ju vad felet är. Du försöker köra windows intel på linux amd utan att översätta.
ghidra.program.model.lang.LanguageNotFoundExceptio n
En fil saknas i ghidra för att köra vad du nu än kör.
https://www.reddit.com/r/ghidra/comm...ile/?rdt=32781
Här är någon som försöker öppna filen du kanske saknar.
https://github.com/NationalSecurityA...s/x86-64.pspec
Kod:
<property key="assemblyRating:x86:LE:64:default" value="GOLD"/>

Jag känner inte till ghidras men om det inte fungerar så kanske det beror på att du använder en amd processor. Programmet kanske behöver typ Ghidra/Processors/amd64/data/languages/x86-64.pspec eller Ghidra/Processors/x86/data/languages/amd-64.pspec
Citera
2024-07-17, 10:44
  #5
Medlem
Citat:
Ursprungligen postat av a-mortal
Det står ju vad felet är. Du försöker köra windows intel på linux amd utan att översätta.
ghidra.program.model.lang.LanguageNotFoundExceptio n
En fil saknas i ghidra för att köra vad du nu än kör.
https://www.reddit.com/r/ghidra/comm...ile/?rdt=32781
Här är någon som försöker öppna filen du kanske saknar.
https://github.com/NationalSecurityA...s/x86-64.pspec
Kod:
<property key="assemblyRating:x86:LE:64:default" value="GOLD"/>

Jag känner inte till ghidras men om det inte fungerar så kanske det beror på att du använder en amd processor. Programmet kanske behöver typ Ghidra/Processors/amd64/data/languages/x86-64.pspec eller Ghidra/Processors/x86/data/languages/amd-64.pspec


Det är en rätt intressant tolkning och slutsats du kommer med. Så enligt dig har Javatrollen i datorn gått och bytt arkitektur från Intel till AMD? För filen skapades på Intel Windows 11 och skulle packas upp på samma Intel Linux Mint.
Det är samma dator. Sedan är det inte en ELF, utan en PE. eller rättare sagt ska väl själva .gfk vara en Java serializeble file som kanske är ELF.

Ghidra fungerar, förutom då att jag inte kan importera dess egen projektfil.
Citera
2024-07-17, 16:00
  #6
Medlem
a-mortals avatar
Citat:
Ursprungligen postat av Methos
Det är en rätt intressant tolkning och slutsats du kommer med. Så enligt dig har Javatrollen i datorn gått och bytt arkitektur från Intel till AMD? För filen skapades på Intel Windows 11 och skulle packas upp på samma Intel Linux Mint.
Det är samma dator. Sedan är det inte en ELF, utan en PE. eller rättare sagt ska väl själva .gfk vara en Java serializeble file som kanske är ELF.

Ghidra fungerar, förutom då att jag inte kan importera dess egen projektfil.
Nu när jag hör från dig att det är samma dator så verkar det ju vara nått tokigt.
Kod:
Java Home: /snap/ghidra/25/usr/lib/jvm/java-17-openjdk-amd64
JVM Version: Ubuntu 17.0.11
OS: Linux 5.15.0-116-generic amd64
Jag tycker det ser ut som det för det står ju amd64 och x86 på andra platsen vilket förstås är förvirrande eftersom x86-64 är amd64. x86 är 32-bit kanske.
https://devicetests.com/difference-b...4-amd64-64-bit

Tolkning 1: Som felmeddelandet säger, en fil saknas.

Min tolkning nr 2 är någon inställning är fel så den försöker köra 32-bit little endian istället för systemets 64-bit ge/le.

Tolkning 3: Något fel med filen. Att du tror du har en 64-bit fil när det egentligen är en 32-bit le PE-fil.
PE-filer kan både vara 32 bit och 64 bit.
https://learn.microsoft.com/en-us/ar...rmat-in-detail

Vad är din version på x86 language packetet?
Klarar ghidra av 64-bit filer?
Citera
2024-07-17, 16:18
  #7
Medlem
Problemet är löst med att dels uppgradera till JDK 22 (har ingen aning om varför inte debian har JDK22) och sedan kör jag från exakt samma version av Ghidra som jag kör på windows. Nu kan jag importera filen.

Tråden kan låsas då detta egentligen inte är en java-dev fråga upptäckte jag.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in