From 514b20c4a1e18dafaf17ddd4b31313acd3f19afc Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:20:48 +0000 Subject: [PATCH 1/6] Update README.md --- README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1115384..5fff5a8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ -# stage-one +# S1 - Native File Format Deconstruction -this is a draft showing how stage one might be implimented using c++ inheritance. please refer to main.cpp for more details. +Stage One, or "S1" for short is the first stage in LLO. This stage deconstructs native files and creates an IL version of them called "Low Level Obfuscation Intermediate File Format" or LLOIFF for short. This branch of the repository is mearly a proposal for the composition of S1 and is entirely subject to change. + +### File Format Deconstructors - dctors + +The term "dctor" is typically refered to class deconstructors, however in the usage in this proposal it refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction. + +``` +In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use. + +- https://en.wikipedia.org/wiki/Strategy_pattern +``` + +This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. From 6715acb1999b6490fb8ee2fd157c96f8d0e7ef13 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:21:12 +0000 Subject: [PATCH 2/6] Update README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 5fff5a8..a5841af 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,7 @@ Stage One, or "S1" for short is the first stage in LLO. This stage deconstructs The term "dctor" is typically refered to class deconstructors, however in the usage in this proposal it refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction. -``` -In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use. - +*"In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.* - https://en.wikipedia.org/wiki/Strategy_pattern -``` This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. From ce71ee1bbb352c343365b3ce203435aa530ec483 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:21:21 +0000 Subject: [PATCH 3/6] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a5841af..c16a6c6 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,5 @@ Stage One, or "S1" for short is the first stage in LLO. This stage deconstructs The term "dctor" is typically refered to class deconstructors, however in the usage in this proposal it refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction. *"In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.* -- https://en.wikipedia.org/wiki/Strategy_pattern This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. From 06ddd6eb042b608a361681b343c4669ba7289349 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:21:34 +0000 Subject: [PATCH 4/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c16a6c6..65c1729 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,6 @@ Stage One, or "S1" for short is the first stage in LLO. This stage deconstructs The term "dctor" is typically refered to class deconstructors, however in the usage in this proposal it refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction. -*"In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.* +*"In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use."* This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. From 4c8f8ff004a080c14c1e010c30fdca784b053f7b Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:23:59 +0000 Subject: [PATCH 5/6] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65c1729..2e918f3 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,11 @@ Stage One, or "S1" for short is the first stage in LLO. This stage deconstructs ### File Format Deconstructors - dctors -The term "dctor" is typically refered to class deconstructors, however in the usage in this proposal it refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction. +The term "dctor" typically refered to class deconstructors, however the usage in this proposal refers to file format deconstruction. I went with the "strategy pattern" with my file format deconstruction as it seems like the best code pattern to use. *"In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use."* -This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. +This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. For example, a COFF, PE, ELF, and LIB file all require different deconstruction algorithms. LIB in particular as it is composed of multiple COFF files. I have used "decorator pattern" for my LIB file dctor. + + +*"In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same class."* From 78eb44a56bb555251120be7b479b2fde78bf2a1c Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 27 Jun 2021 01:26:25 +0000 Subject: [PATCH 6/6] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e918f3..cc16ed8 100644 --- a/README.md +++ b/README.md @@ -10,5 +10,8 @@ The term "dctor" typically refered to class deconstructors, however the usage in This is ideal for deconstruction algorithms as there can be different files to deconstruct and thus different algorithms must run. For example, a COFF, PE, ELF, and LIB file all require different deconstruction algorithms. LIB in particular as it is composed of multiple COFF files. I have used "decorator pattern" for my LIB file dctor. - *"In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same class."* + +Below is a UML diagram showing how dctor's are correlated to one another. + +![](https://imgur.com/vtCxRIG.png)