From 6108d89f06642a85fce01b36dc20a7271124783d Mon Sep 17 00:00:00 2001 From: Aly Date: Sat, 31 Oct 2020 15:23:16 -0700 Subject: [PATCH 1/2] Add Ghidra stuff --- decompilation.md | 4 ++++ ghidra.md | 8 ++++++++ java.md | 3 +++ journal/2020-10-31.md | 5 +++++ masm-assembly.md | 3 +++ 5 files changed, 23 insertions(+) create mode 100644 decompilation.md create mode 100644 ghidra.md create mode 100644 java.md create mode 100644 masm-assembly.md diff --git a/decompilation.md b/decompilation.md new file mode 100644 index 0000000..15369a3 --- /dev/null +++ b/decompilation.md @@ -0,0 +1,4 @@ +# Decompilation + +- The process of rewriting an application into a target-independent programming + language diff --git a/ghidra.md b/ghidra.md new file mode 100644 index 0000000..c6126aa --- /dev/null +++ b/ghidra.md @@ -0,0 +1,8 @@ +# Ghidra + +- SRE (Software Reverse Engineering) tool +- Has a [[Java]]-based plugin system + +[//begin]: # "Autogenerated link references for markdown compatibility" +[Java]: java "Java" +[//end]: # "Autogenerated link references" diff --git a/java.md b/java.md new file mode 100644 index 0000000..b8768ce --- /dev/null +++ b/java.md @@ -0,0 +1,3 @@ +# Java + +- Programming language diff --git a/journal/2020-10-31.md b/journal/2020-10-31.md index 5833c92..5f1f955 100644 --- a/journal/2020-10-31.md +++ b/journal/2020-10-31.md @@ -1,7 +1,12 @@ # 2020-10-31 - Set up this journal. See the [[readme]]. +- Looked into writing a [[Ghidra]] plugin to generate [[MASM Assembly]] for a + [[decompilation]] project. [//begin]: # "Autogenerated link references for markdown compatibility" [readme]: ..\README "Aly's digital garden" +[Ghidra]: ..\ghidra "Ghidra" +[MASM Assembly]: ..\masm-assembly "MASM Assembly" +[decompilation]: ..\decompilation "Decompilation" [//end]: # "Autogenerated link references" diff --git a/masm-assembly.md b/masm-assembly.md new file mode 100644 index 0000000..724e8c7 --- /dev/null +++ b/masm-assembly.md @@ -0,0 +1,3 @@ +# MASM Assembly + +- A dialect of assembly meant for Microsoft's compiler From 19e444998af06d1cd39be5514e1f24bfc6180995 Mon Sep 17 00:00:00 2001 From: Aly Date: Sat, 31 Oct 2020 18:27:12 -0700 Subject: [PATCH 2/2] Elaborate more on today's work --- decompilation.md | 7 +++++-- fs2.md | 5 +++++ ghidra.md | 6 ++++-- java.md | 4 +++- journal/2020-10-31.md | 8 ++++++++ masm-assembly.md | 2 +- sledge.md | 12 ++++++++++++ zig.md | 3 +++ 8 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 fs2.md create mode 100644 sledge.md create mode 100644 zig.md diff --git a/decompilation.md b/decompilation.md index 15369a3..882b342 100644 --- a/decompilation.md +++ b/decompilation.md @@ -1,4 +1,7 @@ # Decompilation -- The process of rewriting an application into a target-independent programming - language +- The process of rewriting assembly into a target-independent programming + language. +- "Matching" decompilation aims to be able to produce the exact same assembly + output given the same compiler and libraries as a way of proving that the + decompilation is correct. diff --git a/fs2.md b/fs2.md new file mode 100644 index 0000000..ec83458 --- /dev/null +++ b/fs2.md @@ -0,0 +1,5 @@ +# fs2 + +- https://fs2.io +- A library that allows abstracting data transmission and control into a shared + concept called a `Stream`. diff --git a/ghidra.md b/ghidra.md index c6126aa..30d8148 100644 --- a/ghidra.md +++ b/ghidra.md @@ -1,8 +1,10 @@ # Ghidra -- SRE (Software Reverse Engineering) tool -- Has a [[Java]]-based plugin system +- SRE (Software Reverse Engineering) tool. +- Has a [[Java]]-based plugin system. +- Typically used to assist in [[decompilation]]. [//begin]: # "Autogenerated link references for markdown compatibility" [Java]: java "Java" +[decompilation]: decompilation "Decompilation" [//end]: # "Autogenerated link references" diff --git a/java.md b/java.md index b8768ce..f22d10f 100644 --- a/java.md +++ b/java.md @@ -1,3 +1,5 @@ # Java -- Programming language +- Programming language. +- Compiled to bytecode that is executed on a Virtual Machine. +- Effectively platform-independent. diff --git a/journal/2020-10-31.md b/journal/2020-10-31.md index 5f1f955..f028c60 100644 --- a/journal/2020-10-31.md +++ b/journal/2020-10-31.md @@ -3,10 +3,18 @@ - Set up this journal. See the [[readme]]. - Looked into writing a [[Ghidra]] plugin to generate [[MASM Assembly]] for a [[decompilation]] project. +- Explored whether or not it's possible to write recursive algorithms in + constant space using [[fs2]], and how it applies to [[sledge]]. + - It was discussed in the Scala Discord whether or not there exists an + algorithm to generate moves for the Dragon Fractal in constant space. The + current theory is that there can't be an algorithm that uses less than + linear space. [//begin]: # "Autogenerated link references for markdown compatibility" [readme]: ..\README "Aly's digital garden" [Ghidra]: ..\ghidra "Ghidra" [MASM Assembly]: ..\masm-assembly "MASM Assembly" [decompilation]: ..\decompilation "Decompilation" +[fs2]: ..\fs2 "fs2" +[sledge]: ..\sledge "sledge" [//end]: # "Autogenerated link references" diff --git a/masm-assembly.md b/masm-assembly.md index 724e8c7..e51d4b8 100644 --- a/masm-assembly.md +++ b/masm-assembly.md @@ -1,3 +1,3 @@ # MASM Assembly -- A dialect of assembly meant for Microsoft's compiler +- The dialect of assembly used by Microsoft's assembler. diff --git a/sledge.md b/sledge.md new file mode 100644 index 0000000..4a1a569 --- /dev/null +++ b/sledge.md @@ -0,0 +1,12 @@ +# sledge + +- Work-in-progress programming language. +- Meant to look like [[fs2]]-based programs, but with a [[Zig]]-like paradigm. +- Completely disallows mutability in the source code to allow for better + optimizations, and to allow for returning variably-sized objects like + buffers or closures on the stack instead of the heap. + +[//begin]: # "Autogenerated link references for markdown compatibility" +[fs2]: fs2 "fs2" +[Zig]: zig "Zig" +[//end]: # "Autogenerated link references" diff --git a/zig.md b/zig.md new file mode 100644 index 0000000..34a1c67 --- /dev/null +++ b/zig.md @@ -0,0 +1,3 @@ +# Zig + +- https://ziglang.org/