Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 3 additions & 12 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Licensed under the Apache License, Version 2.0
<https://www.apache.org/licenses/LICENSE-2.0>.

================================================================================
== Host.svg ==
== Machine.svg ==
================================================================================

"Computer" icon <https://thenounproject.com/term/computer/576625/>
Expand All @@ -27,19 +27,10 @@ from the Noun Project <https://thenounproject.com/>
is licensed under CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>.

================================================================================
== Password.svg ==
== Credentials.svg ==
================================================================================

"Lock" icon <https://thenounproject.com/term/lock/576530/>
by ✦ Shmidt Sergey ✦ <https://thenounproject.com/monstercritic/>
from the Noun Project <https://thenounproject.com/>
is licensed under CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>.

================================================================================
== User.svg ==
================================================================================

"User" icon <https://thenounproject.com/term/user/581261/>
by ✦ Shmidt Sergey ✦ <https://thenounproject.com/monstercritic/>
from the Noun Project <https://thenounproject.com/>
is licensed under CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>.
is licensed under CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>.
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,10 @@ This project structure is optimized for modern MAL development workflows, which

## 🛠️ Tooling and Compilation

All necessary tools for compiling, analyzing, and working with MAL languages are centralized in the MAL ecosystem.
All necessary tools for working with MAL languages are centralized in the MAL ecosystem.

### MAL Toolbox

For all development, compilation, and integration with analysis environments (such as Python), please refer to the main repository:

* **MAL Toolbox Repository:** [https://github.com/mal-lang/mal-toolbox](https://github.com/mal-lang/mal-toolbox)

### Compiling Your Language

A detailed, step-by-step tutorial on how to compile a MAL language specification is available here:

* **Compilation Tutorial:** [https://github.com/mal-lang/mal-toolbox-tutorial?tab=readme-ov-file#compiling-a-language](https://github.com/mal-lang/mal-toolbox-tutorial?tab=readme-ov-file#compiling-a-language)
* **MAL Toolbox Repository:** [https://github.com/mal-lang/mal-toolbox](https://github.com/mal-lang/mal-toolbox)
79 changes: 45 additions & 34 deletions src/main/mal/exampleLang.mal
Original file line number Diff line number Diff line change
Expand Up @@ -13,42 +13,53 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#id: "org.mal-lang.examplelang"
#version: "1.0.0"

#id: "exampleLang"
#version: "2.0.0"

category System {
asset Network {
| access
-> hosts.connect
}

asset Host {
| connect
-> access
| authenticate
-> access
| guessPassword
-> guessedPassword
| guessedPassword [Exponential(0.02)]
-> authenticate
& access
}

asset User {
| attemptPhishing
-> phish
| phish [Exponential(0.1)]
-> passwords.obtain
}

asset Password {
| obtain
-> host.authenticate
}

asset Machine {
| connect
-> authCompromise

| authenticate
-> authCompromise

& authCompromise
-> compromise

| compromise
-> storesCreds.access,
networks.communicate
}

asset Credentials {
| access
-> useUnencrypted,
crack

& useUnencrypted
-> use

| crack [HardAndCertain]
-> use

| use
-> authenticates.authenticate

# encrypted
-> useUnencrypted
}

asset Network {
| communicate
-> parties.connect
}
}

associations {
Network [networks] * <-- NetworkAccess --> * [hosts] Host
Host [host] 1 <-- Credentials --> * [passwords] Password
User [user] 1 <-- Credentials --> * [passwords] Password
}
Machine [parties] * <-- Communication --> * [networks] Network
Machine [storedOn] 0..1 <-- Storage --> * [storesCreds] Credentials
Machine [authenticates] 0..1 <-- Access --> * [authCreds] Credentials
}
1 change: 0 additions & 1 deletion src/main/resources/icons/User.svg

This file was deleted.

Loading