From eb587029e92eb173345009ce8800276b48ccfc33 Mon Sep 17 00:00:00 2001 From: Valentin Brandl Date: Tue, 29 Mar 2022 20:39:19 +0200 Subject: [PATCH] New assets --- assets/c2.drawio | 1 + assets/c2.drawio.pdf | Bin 0 -> 22548 bytes assets/dot/c2.dot | 23 +++++++++++++++++++---- assets/md5_ip_dist.png | Bin 0 -> 21788 bytes assets/p2p.drawio | 1 + assets/p2p.drawio.pdf | Bin 0 -> 22326 bytes 6 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 assets/c2.drawio create mode 100644 assets/c2.drawio.pdf create mode 100644 assets/md5_ip_dist.png create mode 100644 assets/p2p.drawio create mode 100644 assets/p2p.drawio.pdf diff --git a/assets/c2.drawio b/assets/c2.drawio new file mode 100644 index 00000000..982c0f0f --- /dev/null +++ b/assets/c2.drawio @@ -0,0 +1 @@ +1ZlPb5swGIc/DcdKYPMvxzXruh4qTYqmni1wgivAyDgN2aefGSaA37ZJMyUxl4j8MAY/fiCviYOXRfMoSJU985TmDnLTxsHfHYTiMFafbbDvAh8vumAjWNpF3hCs2B+qQ1enW5bSetJQcp5LVk3DhJclTeQkI0Lw3bTZmufTs1ZkQ0GwSkgO0xeWykwPK3CH/Cdlm6w/s+fqPQXpG+ugzkjKd6MIPzh4KTiX3VbRLGnesuu5dMf9+GDv4cIELeUpB8iXO/8evZIngleoeK2b7Hd9p3t5I/lWD3iJ9OXKfc9A8G2Z0rYb18H3u4xJuqpI0u7dqUlXWSaLXH3z1Oaal1JPI2qbw8vsz0mFpM0o0pf9SHlBpdirJnovDjVC7RDqGe9GM6KjbDQZfUa0A5tDzwMmtaFJfYEaAtQ8AE11oxylx4GRuurEXbOmhXwJgp5tBDEgGNtNEPlTghjdmKAPCEZ2EzTvYv/WDgaAIHz0WUXQdDC+McAQAAzsBhjY9hiMAMHQboJ+bNljMAYE/XkRvPVNvAAAsd0AD78jtyLmwaIZEivTb+3qQ31LclLXLJmCmpbUJ1Oq+VYk9HhlKonYUPnZGLp2NJ2sfiDzEePgHcZ9JmhOJHubFsPvgddn+MWZGtlwT7jGc9mcu27c+qjxGsfoCC+Mjnyjow4M6OifB4dh/4cacGVgjRrBPNXwjBldnKmGb/72X1sNuOSxRo3FPNVARi3inqtGZKgRXFkNuJazRo14nmpgQw3vXDWMag2FV1YDLlKtUSOcpxofvcj5shpmrRFdWQ24/LZGDTxPNQJDDXymGsGxevbSasD3Ctao4c9TDaN6xGb1eLIax+rZS6sBX5hYo0Y0TzWM6hGb1ePJahyrZ89WQ30d/mfsmg9/1uKHvw== \ No newline at end of file diff --git a/assets/c2.drawio.pdf b/assets/c2.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..97acaf4664e83bcb9f8d4187e9e0813d88a0765b GIT binary patch literal 22548 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 literal 0 HcmV?d00001 diff --git a/assets/dot/c2.dot b/assets/dot/c2.dot index d64dfa6d..e716921e 100644 --- a/assets/dot/c2.dot +++ b/assets/dot/c2.dot @@ -1,16 +1,31 @@ digraph G { node [ shape = "circle" ]; - cc [ label = "C2 server"; shape = "box" ]; { rank = same; b1 [ label = "1" ]; b2 [ label = "2" ]; b3 [ label = "3" ]; - b4 [ label = "4" ]; } - cc -> b1 [ dir = "back" ]; cc -> b2 [ dir = "back" ]; cc -> b3 [ dir = "back" ]; - cc -> b4 [ dir = "back" ]; + { + rank = same; + cc [ label = "C2 server"; shape = "box" ]; + b4 [ label = "4" ]; + b5 [ label = "5" ]; + cc -> b4 [ dir = "back" ]; + cc -> b5 [ dir = "back" ]; + } + { + rank = same; + b6 [ label = "6" ]; + b7 [ label = "7" ]; + b8 [ label = "8" ]; + b9 [ label = "9" ]; + } + cc -> b6 [ dir = "back" ]; + cc -> b7 [ dir = "back" ]; + cc -> b8 [ dir = "back" ]; + cc -> b9 [ dir = "back" ]; } diff --git a/assets/md5_ip_dist.png b/assets/md5_ip_dist.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d4fb8f5401b70ff1a6ff2f629f7b66be36c99c GIT binary patch literal 21788 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 O?NQTWq1Zpdb5swFEB/TR4rgW0CeVzS7uNh0qRo6rMFTqACHBmnIfv1c4aB4NuoLE2x81LBBWx8fLCvnc7wqqi/CbpLf/KE5TPkJfUMP84QiuaR+nsKHJsAiUgT2IosaUJ+H1hnf5gOejq6zxJWDW6UnOcy2w2DMS9LFstBjArBD8PbNjwf1rqjWwYC65jmMPqcJTLVzQq8Pv6dZdu0rdn39JWCtjfrQJXShB/OQvhphleCc9kcFfWK5Sd2LZfmua8XrnYvJlgpxzwgnx/IEr3QHxSvUfFS1env6gE1pbzSfD9scCWPLQJVjKKtTpaHNJNsvaPx6cpB9beKpbLI1ZmvDmm1a7pgk9VM1brc8FLqLlUvh5e6MiYkqy+2wu/YKKcYL5gUR3VL+8Bc49Q+oZb34ax3dCg965g2RrUP267kHpk60NT+gyAGBCO3CSIyJIiRZYIEEAzdJogNB4ltBwNAELlN0HQwsgxwDgAGbgMMXBsGQ0Bw7jZBEjk2DEaAILkvgrY/4gUAiN0G2M0jtoj5PkAGiZXJl1Merc7inFZVFg9BCb4vkxOhR+8iJZaAJNtgpKrkexGz91NVScWWyfcmQ8j8jHHwBuM2JlhOZfY6fN23wOsafvFMNaT/JjxjXDb7rmmmfuo8WzcKMnOMbsZsC2o4gIL+edA1+wNqwJWBu2oEI9VYWFXDN3p0cSs1vInVgEsed9VYjFQjsqoGMnIRs0fHqgGGn6nVgGs5d9WI7mJCwYYa/rVqEMtqwEWqu2rM70KNSxs5H1Zj6lwDLr/dVWNsGoqtqhEYauBb5RpmPvvZasB9BXfVICPVsJtrGD2KzY/96lxjajXghom7aoR3MWqEhhrBrSaUqdWAW0HuqjF21AitqrEw1AivnVDMfNYs6JPVaHOku1ADj1SD2FQjMOYBfPWWl5nP3mzUUKf97+zN7f0/K+Cnvw== \ No newline at end of file diff --git a/assets/p2p.drawio.pdf b/assets/p2p.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c5d34799902036ebfcbdbae873d4704e94e1df0e GIT binary patch literal 22326 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�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 pI#9N=7rNAUSJj%K%{|9o|gy8@H literal 0 HcmV?d00001