Skip to content

Commit 159dba7

Browse files
authored
update for ghidra 10.3 (#32)
Updates Groovy and Kotlin to newer versions, and updates the CI workflow and documentation to support Ghidra 10.3.
1 parent b970fb9 commit 159dba7

File tree

15 files changed

+86
-95
lines changed

15 files changed

+86
-95
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ jobs:
1212
runs-on: "ubuntu-latest"
1313
strategy:
1414
matrix:
15-
ghidra: ["10.2.3"]
15+
ghidra: ["10.3"]
1616
include:
17-
- ghidra: "10.2.3"
18-
ghidra-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_10.2.3_build/ghidra_10.2.3_PUBLIC_20230208.zip"
19-
ghidra-sha256: "daf4d85ec1a8ca55bf766e97ec43a14b519cbd1060168e4ec45d429d23c31c38"
20-
ghidra-filename: "ghidra_10.2.3_PUBLIC_20230208.zip"
21-
ghidra-folder: "ghidra_10.2.3_PUBLIC"
17+
- ghidra: "10.3"
18+
ghidra-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_10.3_build/ghidra_10.3_PUBLIC_20230510.zip"
19+
ghidra-sha256: "4e990af9b22be562769bb6ce5d4d609fbb45455a7a2f756167b8cdcdb75887fc"
20+
ghidra-filename: "ghidra_10.3_PUBLIC_20230510.zip"
21+
ghidra-folder: "ghidra_10.3_PUBLIC"
2222

2323
env:
2424
GHIDRA_INSTALL_DIR: /home/runner/ghidra/${{ matrix.ghidra-folder }}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77

8+
## [2.3.0] - 2023-06-04
9+
### Changed
10+
- Upgrade to Groovy 4.0.12
11+
- Upgrade to Kotlin 1.8.21
12+
13+
814
## [2.2.0] - 2023-03-15
915
### Added
1016
- Automatic class import option for all interpreters.

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ plugins {
2121
dependencies {
2222
implementation('org.jruby:jruby-complete:9.3.10.0')
2323
implementation('org.clojure:clojure:1.11.1')
24-
implementation('org.apache.groovy:groovy:4.0.9')
25-
implementation('org.apache.groovy:groovy-groovysh:4.0.9')
26-
testImplementation('junit:junit:4.13')
27-
runtimeOnly('org.jetbrains.kotlin:kotlin-scripting-jsr223:1.8.10')
24+
implementation('org.apache.groovy:groovy:4.0.12')
25+
implementation('org.apache.groovy:groovy-groovysh:4.0.12')
26+
testImplementation('junit:junit:4.13.2')
27+
runtimeOnly('org.jetbrains.kotlin:kotlin-scripting-jsr223:1.8.21')
2828
}
2929

3030
test {

data/auto-import.xml

Lines changed: 0 additions & 68 deletions
Large diffs are not rendered by default.

docs/development.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ features, or maybe even adding support for a new language, here is some
44
information that you will likely find useful.
55

66

7+
## Setting Up a Development Environment
8+
While there is documentation included with Ghidra on how to set up a plugin
9+
development environment, there are a few unmentioned pitfalls that are worth
10+
mentioning.
11+
12+
TODO: upgrade steps (deleted build directory, link to new Ghidra)
13+
14+
715
## Adding a New Language
816
Support for a wide variety of languages is the primary goal of Ruby Dragon. As
917
such, its design is optimized to make the addition of a new one as
@@ -62,4 +70,4 @@ two of these which you will need to provide. The first is a basics script that
6270
does several common tasks in Ghidra. The second saves all strings that are
6371
defined in a program to a given file. You will need to implement these two
6472
scripts, and also add runs of them in the Github Action tests and verify their
65-
output against an expected value.
73+
output against an expected value.

docs/roadmap.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ or want to make a suggestion, please submit an issue on the project's
44
[Github page](https://github.com/goatshriek/ruby-dragon).
55

66

7+
## 2.3.0
8+
* [CHANGE] **Delay interpreter creation**
9+
Currently some interpreters are created when the tool is created, which
10+
increases startup time, often needlessly. This will be adjusted for all
11+
interactive interpreters so that they do not load until needed.
12+
13+
714
## Unallocated to a release
815
* [ADD] **Complete Example Set**
916
A full suite of example scripts is needed for users to quickly understand how

ghidra_scripts/GhidraBasicsScriptRb.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
FUN_00401000
9797
FUN_00401010
9898
Catch_All@004011b0
99+
FUN_004011d7
99100
FUN_004012ea
100101
entry
101102
FUN_00401549

src/main/help/help/shared/Frontpage.css renamed to src/main/help/help/shared/DefaultStyle.css

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,48 @@
1515
*/
1616
/*
1717
WARNING!
18-
This file is copied to all help directories. If you change this file, you must copy it
19-
to each src/main/help/help/shared directory.
20-
21-
2218
Java Help Note: JavaHelp does not accept sizes (like in 'margin-top') in anything but
2319
px (pixel) or with no type marking.
2420
21+
The blockquote tag is used heavily to control indentation throughout the help docs. Place the
22+
blockquote tag around other elements to create a standard indentation. The default values of
23+
blockquote are:
24+
25+
blockquote {
26+
display: block;
27+
margin-top: 1em;
28+
margin-bottom: 1em;
29+
margin-left: 40px;
30+
margin-right: 40px;
31+
}
32+
2533
*/
34+
35+
36+
/*
37+
Add some indentation for lists to show their relation to the preceding text. The value is
38+
chosen based on the left margin of the body and the blockquote.
39+
*/
40+
ul { margin-left: 50px; }
41+
ol { margin-left: 50px; }
42+
li { font-family:times new roman; font-size:14pt; margin-left: 5px; }
43+
2644

27-
body { margin-bottom: 50px; margin-left: 10px; margin-right: 10px; margin-top: 10px; } /* some padding to improve readability */
28-
li { font-family:times new roman; font-size:14pt; }
2945
h1 { color:#000080; font-family:times new roman; font-size:36pt; font-style:italic; font-weight:bold; text-align:center; }
3046
h2 { margin: 10px; margin-top: 20px; color:#984c4c; font-family:times new roman; font-size:18pt; font-weight:bold; }
31-
h3 { margin-left: 10px; margin-top: 20px; color:#0000ff; font-family:times new roman; `font-size:14pt; font-weight:bold; }
47+
h3 { margin-left: 10px; margin-top: 20px; color:#0000ff; font-family:times new roman; font-size:14pt; font-weight:bold; }
3248
h4 { margin-left: 10px; margin-top: 20px; font-family:times new roman; font-size:14pt; font-style:italic; }
49+
h5 { margin-left: 10px; margin-top: 20px; font-family:times new roman; font-size:12pt; font-style:italic; }
50+
51+
52+
/*
53+
A class to be used for showing screenshot style images. These images will have padding above
54+
and below the image and will be centered. To apply this to a file path, use this syntax:
55+
<DIV class="image"><IMG src="..." /></DIV>
56+
*/
57+
div.image { margin-top: 20px; margin-bottom: 40px; text-align: center; }
58+
59+
3360

3461
/*
3562
P tag code. Most of the help files nest P tags inside of blockquote tags (the was the
@@ -40,11 +67,10 @@ h4 { margin-left: 10px; margin-top: 20px; font-family:times new roman; font-size
4067
*/
4168
p { margin-left: 40px; font-family:times new roman; font-size:14pt; }
4269
blockquote p { margin-left: 10px; }
43-
4470
p.providedbyplugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
45-
p.ProvidedByPlugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
4671
p.relatedtopic { color:#800080; margin-left: 10px; font-size:14pt; }
47-
p.RelatedTopic { color:#800080; margin-left: 10px; font-size:14pt; }
72+
p.image { margin-top: 100; margin-bottom: 100; }
73+
4874

4975
/*
5076
We wish for a tables to have space between it and the preceding element, so that text
@@ -55,6 +81,8 @@ table { margin-left: 20px; margin-top: 10px; width: 80%;}
5581
td { font-family:times new roman; font-size:14pt; vertical-align: top; }
5682
th { font-family:times new roman; font-size:14pt; font-weight:bold; background-color: #EDF3FE; }
5783

84+
85+
5886
/*
5987
Code-like formatting for things such as file system paths and proper names of classes,
6088
methods, etc. To apply this to a file path, use this syntax:

src/main/help/help/topics/Clojure/interpreter.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<META name="ProgId" content="FrontPage.Editor.Document">
1111

1212
<TITLE>Clojure Interpreter</TITLE>
13-
<LINK rel="stylesheet" type="text/css" href="../../shared/Frontpage.css">
13+
<LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
1414
</HEAD>
1515

1616
<BODY>

src/main/help/help/topics/Groovy/interpreter.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<META name="ProgId" content="FrontPage.Editor.Document">
1111

1212
<TITLE>Groovy Interpreter</TITLE>
13-
<LINK rel="stylesheet" type="text/css" href="../../shared/Frontpage.css">
13+
<LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
1414
</HEAD>
1515

1616
<BODY>

0 commit comments

Comments
 (0)