diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/DbViewerComponent.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/DbViewerComponent.java index 3d163f1a9b..456a9d3888 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/DbViewerComponent.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/DbViewerComponent.java @@ -200,12 +200,12 @@ class DbViewerComponent extends JPanel { GTable gTable = new GTable(); if (table.getRecordCount() <= 10000) { model = new DbSmallTableModel(table); - gTable.setDefaultRenderer(Long.class, new LongRenderer()); } else { model = new DbLargeTableModel(table); } gTable.setModel(model); + gTable.setDefaultRenderer(Long.class, new LongRenderer()); JScrollPane scroll = new JScrollPane(gTable); panel.add(scroll, BorderLayout.CENTER); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/dbtable/LongRenderer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/dbtable/LongRenderer.java index 0f48c65bd5..db9ff3d5f1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/dbtable/LongRenderer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/dbtable/LongRenderer.java @@ -17,18 +17,19 @@ package ghidra.app.plugin.debug.dbtable; import java.awt.Component; -import javax.swing.*; +import javax.swing.JLabel; +import javax.swing.SwingConstants; import docking.widgets.table.GTableCellRenderer; import docking.widgets.table.GTableCellRenderingData; +import ghidra.docking.settings.Settings; public class LongRenderer extends GTableCellRenderer { @Override public Component getTableCellRendererComponent(GTableCellRenderingData data) { - JLabel renderer = - (JLabel) super.getTableCellRendererComponent(data); + JLabel renderer = (JLabel) super.getTableCellRendererComponent(data); renderer.setHorizontalAlignment(SwingConstants.LEADING); @@ -39,4 +40,9 @@ public class LongRenderer extends GTableCellRenderer { protected String getText(Object value) { return value == null ? "" : "0x" + Long.toHexString((Long) value); } + + @Override + protected String formatNumber(Number value, Settings settings) { + return getText(value); + } } diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighLanguageProvider.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighLanguageProvider.java index 0a6b4ef363..ae5cedb58a 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighLanguageProvider.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighLanguageProvider.java @@ -369,7 +369,10 @@ public class SleighLanguageProvider implements LanguageProvider { catch (SleighException ex) { // Error with the manual shouldn't prevent language from loading Msg.error(this, ex.getMessage()); } - descriptions.put(id, description); + if (descriptions.put(id, description) != null) { + Msg.showError(this, null, "Duplicate Sleigh Language ID", + "Language " + id + " previously defined: " + defsFile); + } } parser.end(start); } diff --git a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec index 587b253557..156fc99d37 100644 --- a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec +++ b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec @@ -25,6 +25,9 @@ + + + diff --git a/Ghidra/Processors/ARM/certification.manifest b/Ghidra/Processors/ARM/certification.manifest index 821d08ab0f..fb30db5de9 100644 --- a/Ghidra/Processors/ARM/certification.manifest +++ b/Ghidra/Processors/ARM/certification.manifest @@ -5,7 +5,6 @@ data/languages/ARM.cspec||GHIDRA||||END| data/languages/ARM.dwarf||GHIDRA||||END| data/languages/ARM.ldefs||GHIDRA||||END| data/languages/ARM.opinion||GHIDRA||||END| -data/languages/ARM.pspec||GHIDRA||||END| data/languages/ARM.sinc||GHIDRA||||END| data/languages/ARM4_be.slaspec||GHIDRA||||END| data/languages/ARM4_le.slaspec||GHIDRA||||END| @@ -30,6 +29,7 @@ data/languages/ARMinstructions.sinc||GHIDRA||||END| data/languages/ARMneon.dwarf||GHIDRA||||END| data/languages/ARMneon.sinc||GHIDRA||||END| data/languages/ARMt.pspec||GHIDRA||||END| +data/languages/ARMtTHUMB.pspec||GHIDRA||||END| data/languages/ARMt_v45.pspec||GHIDRA||||END| data/languages/ARMv8.sinc||GHIDRA||||END| data/languages/old/ARMv5.lang||GHIDRA||||END| diff --git a/Ghidra/Processors/ARM/data/languages/ARM.ldefs b/Ghidra/Processors/ARM/data/languages/ARM.ldefs index 1b14ea0c54..929560c95a 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM.ldefs +++ b/Ghidra/Processors/ARM/data/languages/ARM.ldefs @@ -18,6 +18,23 @@ + + Generic ARM/Thumb v8 little endian (Thumb is default) + + + + + + + + + Generic ARM/Thumb v8 big endian (Thumb is default) + + + + + + - - + + @@ -11,8 +11,8 @@ - - + + @@ -32,7 +32,7 @@ - - + + diff --git a/Ghidra/Processors/ARM/data/languages/ARM_win.cspec b/Ghidra/Processors/ARM/data/languages/ARM_win.cspec index 24c476dc0e..9e71ff4a04 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM_win.cspec +++ b/Ghidra/Processors/ARM/data/languages/ARM_win.cspec @@ -22,6 +22,9 @@ + + + diff --git a/Ghidra/Processors/ARM/data/languages/ARM.pspec b/Ghidra/Processors/ARM/data/languages/ARMtTHUMB.pspec similarity index 52% rename from Ghidra/Processors/ARM/data/languages/ARM.pspec rename to Ghidra/Processors/ARM/data/languages/ARMtTHUMB.pspec index d92ed07517..cc30cec13c 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM.pspec +++ b/Ghidra/Processors/ARM/data/languages/ARMtTHUMB.pspec @@ -1,15 +1,19 @@ + + + + @@ -23,6 +27,7 @@ + @@ -31,8 +36,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml b/Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml index 1614593376..c74608db5e 100644 --- a/Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml +++ b/Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml @@ -63,13 +63,15 @@ 11100101 00101101 1110.... ........ 0x........ 0xe24dd... 0xe5 0x2d 0xe0 0x08 0xe1a0c00d 0xe92d.... + - 0xe24dd... 11101001 00101101 .1...... ....0000 + 0xe24dd... 11101001 00101101 .1...... ....0000 + @@ -77,36 +79,49 @@ 11101001 00101101 .1...... ....0000 + + + + 11101001 00101101 .1...... ....0000 + + + + - 0xe24dd... 11100101 00101101 1110.... ........ + 0xe24dd... 11100101 00101101 1110.... ........ + 11100101 00101101 1110.... ........ 0xe24dd... + 11101001 00101101 .1...... ....0000 0x........ 0xe24dd... + 11100101 00101101 1110.... ........ 0x........ 0xe24dd... + 0xe1a0c00d 0xe92d.... + @@ -183,10 +198,4 @@ - - 11101001 00101101 .1...... ....0000 - - - - diff --git a/Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml b/Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml index 57f48d2280..7e18bea070 100644 --- a/Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml +++ b/Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml @@ -64,6 +64,7 @@ 0x08 0xe0 0x2d 0xe5 0x0dc0a0e1 0x....2de9 ........ .1...... 00101101 11101001 + @@ -71,20 +72,30 @@ 0x..d.4de2 ....0000 .1...... 00101101 11101001 + + ....0000 .1...... 00101101 11101001 + - + + + ........ .1...... 00101101 11101001 + + + + 0x..d.4de2 ........ 1110.... 00101101 11100101 + @@ -92,6 +103,7 @@ ........ 1110.... 00101101 11100101 0x..d.4de2 + @@ -99,6 +111,7 @@ ....0000 .1...... 00101101 11101001 0x........ 0x..d.4de2 + @@ -106,12 +119,14 @@ ........ 1110.... 00101101 11100101 0x........ 0x..d.4de2 + 0x0dc0a0e1 0x....2de9 + @@ -189,13 +204,6 @@ - - ........ .1...... 00101101 11101001 - - - - - @@ -290,6 +298,7 @@ add ip,lr,r3, lsl #0x1 | add lr,lr,r3, lsl #0x1 bx ip | bx lr --> + @@ -304,6 +313,7 @@ add ip,lr,r3, lsl #0x1 | add lr,lr,r3, lsl #0x1 bx ip | bx lr --> +