Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
maude-hcs — छिपे हुए संचार प्रणालियों के लिए औपचारिक मॉडलिंग और विश्लेषण ढाँचा, जो गुप्त चैनलों, विरोधी मॉडलों की विशिष्टता और अज्ञेयता-प्रदर्शन व्यापार-बंद के सांख्यिकीय मॉडल जाँच को सक्षम बनाता है। | Kitploit
उपकरण/GitHubGitHub/raytheonbbn/maude-hcs
नेटवर्क सुरक्षास्टेग्नोग्राफीगोपनीयतापेपर और शोधलर्निंग और शिक्षाDNS विश्लेषण
GitHubraytheonbbn/maude-hcs

maude-hcs

छिपे हुए संचार प्रणालियों के लिए औपचारिक मॉडलिंग और विश्लेषण ढाँचा, जो गुप्त चैनलों, विरोधी मॉडलों की विशिष्टता और अज्ञेयता-प्रदर्शन व्यापार-बंद के सांख्यिकीय मॉडल जाँच को सक्षम बनाता है।

रिपॉजिटरी देखें
52171 महीना पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Maude-HCS

Maude-HCS वास्तविक दुनिया के पैमानों पर छिपे संचार प्रणालियों (HCS) को औपचारिक रूप से निर्दिष्ट करने और उनके बारे में तर्क करने के लिए पहली सामान्यीकृत और मॉड्यूलर टूलचेन में से एक है। यह नेटवर्क डिजाइनरों को वैकल्पिक HCS डिजाइनों का शीघ्र और प्रभावी ढंग से पता लगाने में सक्षम बनाता है और डिजाइन पर भरोसा करने के लिए आवश्यक औपचारिक गोपनीयता-प्रदर्शन गारंटी प्रदान करता है।

परिचय

छिपे संचार प्रणालियाँ (HCS) संचार की उपस्थिति को छिपाने के लिए सामान्य नेटवर्क गतिविधि के भीतर गुप्त संदेशों को एम्बेड करती हैं। व्यवहार में, HCS की अज्ञेयता का मूल्यांकन आमतौर पर तदर्थ यातायात आँकड़ों या विशिष्ट डिटेक्टरों का उपयोग करके किया जाता है, जिससे सुरक्षा दावे प्रयोगात्मक सेटअपों और निहित प्रतिकूल धारणाओं से कसकर जुड़ जाते हैं।

Maude-HCS एक निष्पादन योग्य मॉडलिंग और विश्लेषण ढांचा है जो जटिल HCS डिजाइनों में अज्ञेयता-प्रदर्शन व्यापार-बंदों के बारे में तर्क करने के लिए एक सैद्धांतिक और निष्पादन योग्य आधार प्रदान करता है। डिजाइनर औपचारिक रूप से प्रोटोकॉल व्यवहार, प्रतिकूल अवलोकन योग्यताएं और पर्यावरणीय धारणाएँ निर्दिष्ट करते हैं, और प्रेरित ट्रेस वितरणों से मोंटे कार्लो नमूने उत्पन्न करते हैं। इनका उपयोग एक सांख्यिकीय परीक्षण की सही और गलत सकारात्मक दरों का अनुमान लगाकर और इन अनुमानों को अज्ञेयता मापों पर निचली सीमाओं में परिवर्तित करके अज्ञेयता के दावों का ऑडिट करने के लिए किया जा सकता है। यह स्पष्ट रूप से बताई गई मॉडलिंग धारणाओं के तहत पता लगाने की क्षमता और प्रदर्शन के साथ इसके व्यापार-बंदों का व्यवस्थित मूल्यांकन सक्षम बनाता है।

कृपया यदि आपको अपने HCS के मॉडलिंग और तर्क में सहायता की आवश्यकता हो तो हमसे संपर्क करें। और कृपया यदि आप इसे अपने शोध के भाग के रूप में उपयोग करते हैं तो हमारे कार्य का उल्लेख करने पर विचार करें।```bibtex @article{khoury2026maude, title={Maude-HCS: Model Checking the Undetectability-Performance Tradeoffs of Hidden Communication Systems}, author={Khoury, Joud and Kim, Minyoung and Merlin, Christophe and Meseguer, Jos{'e} and Ratliff, Zachary and Talcott, Carolyn}, journal={arXiv preprint arXiv:2603.03369}, year={2026} }

root@kitploit:~
## आवश्यकताएँ
python संस्करण `3.12.4` आवश्यक है

अपना पसंदीदा वातावरण बनाएँ और इसे सक्रिय करें, उदाहरण के लिए

pyenv के लिए```bash
pyenv install 3.12.4
pyenv local 3.12.4

conda के लिए```bash conda create --name pwnd2 python=3.12.4 conda activate pwnd2

root@kitploit:~
virtual env के लिए```bash
python -m venv venv
source venv/bin/activate

Install: from git source

We structured the repo source code so that we import dns-formalization-maude as a dependency (a submodule). We created a fork of this dependency so that we can track our changes to it. We use sparse-checkout to avoid needing to checkout all the source of the dependency which includes many irrelevant files (such as Testbed).

To clone the main repo```shell git clone [email protected]:raytheonbbn/maude-hcs.git

root@kitploit:~
मुख्य शाखा में नवीनतम (संभवतः अस्थिर) स्रोत है।
`pwnd.cp1` जैसी पुरानी शाखाएँ/टैग स्थिर स्नैपशॉट को संदर्भित करते हैं जिनका उपयोग मूल्यांकन के दौरान परिणाम उत्पन्न करने के लिए किया गया था 
(उदा., `pwnd.cp1` चैलेंज प्रॉब्लम 1 के लिए उपयोग किया गया, और इसी प्रकार `pwnd.cp2`)।
किसी पुराने स्नैपशॉट का उपयोग करने के लिए, विशिष्ट शाखा को चेकआउट करें (जैसे `pwnd.cp1`)।

हमारे कोड के क्लोन का उपयोग करके dns सबमॉड्यूल सेटअप करें ताकि हम मूल स्रोत में किए गए परिवर्तनों को ट्रैक कर सकें,
केवल प्रासंगिक स्रोत रखने के लिए स्पार्स-चेकआउट का उपयोग करें।```shell
cd maude-hcs
mkdir -p maude_hcs/deps
git submodule add -b <branch> -f [email protected]:raytheonbbn/dns-formalization-maude.git \
  maude_hcs/deps/dns_formalization
cd maude_hcs/deps/dns_formalization
git sparse-checkout init --cone
git sparse-checkout set "Maude/dns" "Maude/common" "Maude/test" "Maude/attack_exploration"
cd ../../../
git reset .gitmodules
git reset maude_hcs/deps/dns_formalization

उपरोक्त कमांड में <branch> को या तो pwnd.43.rb1 पर सेट करें ताकि चैलेंज प्रॉब्लम 1 के परिणामों को पुनः प्रस्तुत किया जा सके, या नवीनतम संस्करण के लिए pwnd पर सेट करें।

उपरोक्त को .git/modules/maude_hcs/deps/dns_formalization/info/ के अंतर्गत sparse-checkout नामक एक नई फ़ाइल बनानी चाहिए और इसे केवल Maude/src जैसी कुछ निर्देशिकाओं को शामिल करने का निर्देश देना चाहिए।

इस बिंदु पर git status एक साफ़ स्टार्ट दिखाना चाहिए।

इंस्टॉल करने के लिए, पहले dns नामक पैकेज के रूप में निर्भरता इंस्टॉल करें, हम इसे Maude.* के रूप में आयात करते हैं, फिर maude_hcs को एक पैकेज के रूप में इंस्टॉल करें (dns पर निर्भरता के साथ)।```shell cd maude_hcs/deps/dns_formalization pip install -e . cd ../../../ pip install -e .

root@kitploit:~
## स्वचालित रूप से उपयोगकर्ता मॉडल उत्पन्न करें

उपयोगकर्ता मॉडल मार्कोव मॉडल होते हैं जिनका उद्देश्य यह दर्शाना है कि उपयोगकर्ता कैसे व्यवहार करते हैं।
ये json प्रारूप में दिए गए हैं।
पहला कदम इन्हें औपचारिक maude प्रस्तुतियों में परिवर्तित करना है।

ऐसा करने के लिए, निम्नलिखित निर्दिष्ट करें 
 - protocol: dns या mastodon 
 - input directory जिसमें वे सभी json मॉडल हैं जिन्हें आप कनवर्ट करना चाहते हैं 
 - output directory जिसमें json मॉडलों के सभी maude संस्करण होंगे

उदाहरण के लिए,```shell
# convert dns tgen user models
 maude-hcs --verbose \ 
    --protocol=dns markov \
    --json-dir=../pwnd-cp2/src/static/tgen_models/dns/ \ 
    --maude-dir=./maude_hcs/lib/tgen/maude/dnsprofiles/markov/
    
# convert mastodon tgen models
maude-hcs --verbose \
    --protocol=mastodon markov \
    --json-dir=../pwnd-cp2/src/static/tgen_models/mastodon \
    --maude-dir="./maude_hcs/lib/raceboat/maude/mastodonprofiles/"

मार्कोव जेसन विनिर्देशों के उदाहरण ./maude_hcs/lib/tgen/maude/dnsprofiles/markov/ के अंतर्गत देखें (और इसी प्रकार मास्टोडॉन के लिए), साथ ही उनके रूपांतरित मौड विनिर्देशों के साथ।

HCS कॉन्फ़िगरेशन स्वतः उत्पन्न करें

हम generate कमांड का उपयोग करके प्रारंभिक कॉन्फ़िगरेशन उत्पन्न करते हैं। HCS कॉन्फ़िगरेशन को सीधे HCS कॉन्फ़िगरेशन पैरामीटर का उपयोग करके जेसन में पास किया जा सकता है, या Shadow प्रयोग कॉन्फ़िगरेशन फ़ाइल का उपयोग करके, या YML कॉन्फ़िगरेशन फ़ाइल का उपयोग करके। इनमें से प्रत्येक का वर्णन आगे किया गया है।

HCS json कॉन्फ़िगरेशन का उपयोग करना

maude-hcs json कॉन्फ़िगरेशन फ़ाइल को इस प्रकार पास करें,

आयोडीन के साथ एक प्रोबेबिलिस्टिक DNS मॉडल कॉन्फ़िगरेशन उत्पन्न करने और आउटपुट फ़ाइल नाम निर्दिष्ट करने के लिए,```shell maude-hcs --verbose generate
--run-args="./use-cases/challenge-problem-2/cp2_scenarios/cp2_scenario_1-hcsconfig.json"
--model=prob
--filename="cp2_scenario_1"
--output-dir="./use-cases/challenge-problem-2/cp2_scenarios/"

root@kitploit:~
`--model=nondet` सेट करें ताकि एक गैर-निश्चयात्मक संस्करण उत्पन्न हो।

यह आउटपुट निर्देशिका में निष्पादन योग्य maude फ़ाइल (और संबंधित HCS config json) उत्पन्न करता है।
इनपुट json कॉन्फ़िगरेशन फ़ाइल को समझना सीधा होना चाहिए। इसमें निम्नलिखित का विनिर्देश शामिल है:
 * नेटवर्क टोपोलॉजी (लिंक और उनकी विशेषताएँ)
 * प्रतिद्वंद्वी (इस मामले में zeek डिटेक्टर प्रोफ़ाइल, मूविंग एवरेज डिटेक्टरों के लिए बेसलाइन डेटा, और उनके कॉन्फ़िगरेशन)
 * चैनल/प्रोटोकॉल: प्रत्येक प्रोटोकॉल में एक weird नेटवर्क और एक अंतर्निहित नेटवर्क प्रोटोकॉल शामिल होता है। पहला दूसरे में डेटा छिपाता/एम्बेड करता है। उदाहरण के लिए, Iodine DNS में एम्बेड होता है (इसलिए चैनल को iodine-dns कहा जाता है) और Destini Mastodon में एम्बेड होता है

कुछ पैरामीटरों के विवरण के लिए [HCSParamsGuide](https://github.com/raytheonbbn/maude-hcs/blob/HEAD/HCSParamsGuide.md) देखें।
ध्यान दें कि संभाव्य मॉडल गैर-निश्चयात्मक पैरामीटरों के साथ-साथ संभाव्य पैरामीटरों (जो गैर-निश्चयात्मक पैरामीटरों को ओवरराइड करते हैं) को भी जोड़ देगा।

### YML कॉन्फ़िगरेशन का उपयोग करना
#### एकल कॉन्फ़िगरेशन
एक YML कॉन्फ़िगरेशन में टनलों और अंतर्निहित नेटवर्कों का पूर्ण कॉन्फ़िगरेशन होता है।
हम इससे सीधे HCS config उत्पन्न कर सकते हैं।```shell
 maude-hcs --verbose  generate --yml-filename=./use-cases/challenge-problem-2/cp2_setup_example.yml     --model=prob --filename=generated_test_yml

CP2 की बैच्ड कॉन्फ़िगरेशन

बैच्ड कॉन्फ़िगरेशन के लिए, जैसे कि CP2 में, एकाधिक YML फ़ाइलों को Maude परिदृश्य फ़ाइलों में रूपांतरित करें:```shell ./scripts/generate_cp2_maude.sh [scenario_dir]

root@kitploit:~
जहाँ `scenario_dir` वैकल्पिक है (डिफ़ॉल्ट `../pwnd_cp2`)

### Shadow yaml विन्यास का उपयोग करना
नेटवर्क विन्यास हमारे HCS कॉन्फ़िग json के बजाय एक shadow फ़ाइल का उपयोग करके निर्दिष्ट किया जा सकता है
(Shadow विनिर्देशों के बारे में अधिक जानकारी के लिए [Shadow](https://github.com/shadow/shadow) सिम्युलेटर देखें)।

एक मॉडल उत्पन्न करने के लिए जो shadow फ़ाइल में परिभाषित विशेषताओं का उपयोग करता है, निर्दिष्ट करें:```shell
--shadow-filename <path_to_shadow_file.yaml>

shadow yaml फ़ाइल नेटवर्क, होस्ट और प्रक्रिया कॉन्फ़िगरेशन निर्दिष्ट करती है।

मान लें कि shadow नेटवर्क कॉन्फ़िगरेशन निर्देशिका ../pwnd-cp1 में स्थित है, तो चलाएँ```shell maude-hcs --verbose --protocol=dns generate --shadow-filename=../pwnd-cp1/shadow_files/examples/cp1_sim_config.yaml --model=prob --filename=generated_test_shadow

root@kitploit:~
## HCS कॉन्फ़िगरेशन चलाएँ

### Maude के साथ स्वतंत्र रूप से चलाएँ
एक कॉन्फ़िगरेशन को स्वतंत्र मॉड में चलाने के लिए, पहले अपने सिस्टम के लिए [स्वतंत्र मॉड](https://github.com/maude-lang/Maude) स्थापित करें (हम संस्करण 3.5.0 या उससे नीचे की सलाह देते हैं)

एक एकल कॉन्फ़िगरेशन चलाने के लिए, मॉड को फ़ाइल नाम के साथ आमंत्रित करें, उदाहरण के लिए, `results` में,```shell
maude ./use-cases/challenge-problem-2/cp2_scenarios/cp2_scenario_1.maude

Maude प्रॉम्प्ट के अंदर, टाइप करें```shell rew initConfig .

root@kitploit:~
यह सभी पुनर्लेखनों को तब तक निष्पादित करेगा जब तक कोई और नियम नहीं मिलते और कोई प्रगति नहीं हो सकती। लॉगिंग जोड़ने से निष्पादन की वाचालता बढ़ जाएगी,```shell
set print attribute on .

निष्पादन को निम्नलिखित कमांड के साथ भी चरणबद्ध किया जा सकता है (maude मैनुअल देखें)```shell rew[1] initConfig . cont 1 .

root@kitploit:~
### सांख्यिकीय मॉडल जाँच

सांख्यिकीय मॉडल जाँच [QMaude](https://github.com/fadoss/umaudemc) में scheck उपकमांड के माध्यम से उपलब्ध है:```shell
maude-hcs scheck [-h] [--advise] 
                 [--protocol {dns}] [--file FILE] [--test TEST] [--initial INITIAL] [--query QUERY] 
                 [--assign METHOD] [--alpha ALPHA] [--delta DELTA] 
                 [--seed SEED] [--jobs JOBS] [--format {text,json}]

options:
  --help, -h              Show help message and exit
  --advise                Do not suppress debug messages from Maude  
  --protocol PR           The protocol module being analyzed e.g., dns, which points to an smc file specific to that protocol. 
  --file FILE             Maude source file specifying the model-checking problem. If --protocol is specified, this parameter becomes optional, and if specified overrides the protocol smc file.
  --test TEST             Test generated from maude-hcs, default=results/generated_test.maude
  --initial INITIAL       Initial term, default=initConfig
  --query QUERY           QuaTEx query, default=smc/query.quatex
  --assign METHOD         Assign probabilities to the successors according to the given method, default=pmaude
  --alpha ALPHA, -a ALPHA Required significance level for the confidence interval, default=0.05
  --delta DELTA, -d DELTA Maximum admissible radius for the confidence interval around the mean, default=0.5
  --seed SEED, -s SEED    Random seed
  --jobs JOBS, -j JOBS    Number of parallel simulation threads, default=1, -j 0 will start as many jobs as CPU units
  --format {text,json}    Output format for the simulation results, default=text
  --distribute WORKERS    Distribute the computation across multiple machines, specified as a list of workers for the simulation.
  --dump OUTPUTFILE       Dump query evaluations into the given file. Currently, it only works with the sequential version (-j 1).
                          For each simulation, a line is written with the result of all queries separated by space. 
  -D D                    Define a constant to be used in QuaTEx expressions.

उपरोक्त कमांड द्वारा उत्पन्न फ़ाइल के लिए एक नमूना SMC रन है:```shell maude-hcs scheck --test ./use-cases/challenge-problem-2/cp2_scenarios/cp2_scenario_1.maude --query ./smc/cp2_eval_cp2_scenario_1.quatex -j 0 -n 30-120

root@kitploit:~
प्रायिकता मॉडल और इसकी प्रारंभिक कॉन्फ़िगरेशन Maude में निर्दिष्ट की जानी चाहिए और इसे ``--test TEST`` विकल्प (डिफ़ॉल्ट: ``results/generated_test.maude``) के माध्यम से प्रदान किया जाना चाहिए।  
Maude निष्पादन ``--initail INITIAL`` विकल्प (डिफ़ॉल्ट: ``TEST`` में निर्दिष्ट ``initConfig``) के माध्यम से प्रदान किए गए प्रारंभिक टर्म से शुरू होता है और अंतिम कॉन्फ़िगरेशन तक पुनर्लेखन करता है।  
अंतिम कॉन्फ़िगरेशन से, मॉडल जाँच समस्या के लिए Maude स्रोत फ़ाइल में निर्दिष्ट मॉनिटर और प्रतिद्वंद्वी अभिनेताओं का उपयोग करके प्रेक्षणीयों को निकाला जाता है, जो ``--file FILE`` विकल्प या ``--protocol PR`` विकल्प के माध्यम से प्रदान किया जाता है। 
उदाहरण के लिए ``--protocol dns`` एक मॉडल जाँच फ़ाइल को संदर्भित करता है जो विशेष रूप से dns प्रोटोकॉल के लिए `lib/` के अंतर्गत बनाई गई है।

मात्रात्मक गुण, जैसे औसत विलंबता का अपेक्षित मान, QuaTEx सूत्र का उपयोग करके निर्दिष्ट किया जा सकता है और ``--query QUERY`` विकल्प (डिफ़ॉल्ट: ``smc/query.quatex``) के माध्यम से प्रदान किया जा सकता है।  
हमारे उदाहरण विलंबता और स्केलेबिलिटी मीट्रिक्स, जो बाहर निकाली गई फ़ाइलों के संदर्भ में हैं, ``smc/latency.quatex`` और ``smc/scalability_cp2_scenario_1.quatex`` में परिभाषित हैं, और ``smc/cp2_eval_cp2_scenario_1.quatex`` में आयातित हैं, और निम्नलिखित रूप के QuaTEx सूत्र के साथ व्यक्त किए जा सकते हैं:```shell
Latency() = s.rval("getLatency(getMonitor(C))");
eval E[Latency()] with delta = 2;

ExfilFilesC2() = 
	if (s.rval("getToDCumulativeNQueryPostNAT(C,416)") == 0.0) then 
		discard
  else 
		s.rval("getExfilFiles(getMonitor(C), getToDCumulativeNQueryPostNAT(C,416))") 
	fi;
eval E[ExfilFilesC2()];

जहां अभिव्यक्ति Latency() मॉनिटर से विलंबता मान निकालता है और delta = 2 के साथ इसकी अपेक्षा का मूल्यांकन करता है। अभिव्यक्ति ExfilFilesC2() सशर्त रूप से निकाले गए फ़ाइलों की संख्या का मूल्यांकन करता है: यदि पोस्ट-नेट DNS प्रश्नों की संचयी संख्या के आधार पर पता लगाने का समय शून्य है - जिसका अर्थ है कि कोई पता लगाना नहीं होता है क्योंकि संचयी प्रश्न गणना कभी भी अपनी सीमा (जैसे, उपरोक्त उदाहरण में 416) से अधिक नहीं होती है - तो नमूना अस्वीकार कर दिया जाता है; अन्यथा, पता लगाने के समय तक निकाले गए फ़ाइलों की संख्या का मूल्यांकन किया जाता है।

नमूनाकरण तब तक जारी रहता है जब तक या तो निर्दिष्ट नमूनों की संख्या पूरी नहीं हो जाती (अर्थात -n min-max विकल्प, जैसे -n 30-300) या सभी प्रश्नों का वांछित सांख्यिकीय महत्व के साथ उत्तर नहीं दिया जाता है। नीचे दिए गए उदाहरण में, दूसरे प्रश्न का उत्तर डिफ़ॉल्ट मानों alpha=0.05 और delta=0.5 का उपयोग करके 30 नमूनों के बाद दिया जाता है, जबकि पहले प्रश्न का उत्तर 270 नमूनों के बाद with delta = 2 का उपयोग करके दिया जाता है, जैसा कि ऊपर निर्दिष्ट किया गया है।

आउटपुट में शामिल हैं:

  • mu: नमूना माध्य (अपेक्षित मान)
  • sigma: नमूना मानक विचलन
  • r (विश्वास त्रिज्या): दिए गए alpha के लिए mu के चारों ओर त्रुटि मार्जिन, अर्थात विश्वास (1-alpha) के साथ mu ± radius```shell step=30 n=30 30 μ=191.13112908653187 8.066666666666666 σ=20.074331354964382 1.048260737942926 r=7.495878519259243 0.391426992470463 step=60 n=60 30 μ=191.73987197380484 8.066666666666666 σ=18.784008301748255 1.048260737942926 r=4.852423885397848 0.391426992470463 step=90 n=90 30 μ=191.0827655561146 8.066666666666666 σ=17.597893935302075 1.048260737942926 r=3.6858075268606814 0.391426992470463 step=120 n=120 30 μ=191.28516943859958 8.066666666666666 σ=16.712118022094398 1.048260737942926 r=3.0208416995911134 0.391426992470463 step=150 n=150 30 μ=191.81314662826944 8.066666666666666 σ=16.539151183097196 1.048260737942926 r=2.6684398888965446 0.391426992470463 step=180 n=180 30 μ=190.8746803932425 8.066666666666666 σ=16.936122821805657 1.048260737942926 r=2.4909903998666914 0.391426992470463 step=210 n=210 30 μ=191.46358580546917 8.066666666666666 σ=16.52110171477275 1.048260737942926 r=2.24749940416632 0.391426992470463 step=240 n=240 30 μ=191.56944900796088 8.066666666666666 σ=16.513730454991496 1.048260737942926 r=2.0998701423425232 0.391426992470463 step=270 n=270 30 μ=191.8095651355114 8.066666666666666 σ=16.62555049424396 1.048260737942926 r=1.9920516750753852 0.391426992470463 Number of simulations = 270 Query 1 (./smc/readme.quatex:5:1) μ = 191.8095651355114 σ = 16.62555049424396 r = 1.9920516750753852 Query 2 (./smc/readme.quatex:6:1) (30 simulations) μ = 8.066666666666666 σ = 1.048260737942926 r = 0.391426992470463
root@kitploit:~
यदि हम उपरोक्त QuaTEx सूत्र में थ्रेसहोल्ड मान को 500 में संशोधित करते हैं, तो कुछ नमूने त्याग दिए जाते हैं।  
फिर परिणाम त्याग किए गए नमूनों की संख्या के साथ रिपोर्ट किए जाते हैं, और शेष नमूनों का उपयोग करके सांख्यिकीय गारंटी की गणना नीचे दिखाए अनुसार की जाती है।```shell
Number of simulations = 270
Query 1 (./smc/readme.quatex:7:1)
  μ = 191.80187664851906        σ = 16.429217228790975        r = 1.9685272804723886
Query 2 (./smc/readme.quatex:8:1) (39 simulations)
  μ = 9.76923076923077          σ = 0.48458003855418535       r = 0.1570826767676969
  where 21 executions out of 60 (35.0%) have been discarded

एक ही समानांतर सेटिंग (अर्थात -j का समान मान) में समान प्रयोगों को पुन: उत्पन्न करने के लिए, एक ही यादृच्छिक बीज के साथ --seed विकल्प का उपयोग करें। डिफ़ॉल्ट रूप से या ‑1 पास करने पर, वर्तमान समय का उपयोग बीज के रूप में किया जाता है।```shell

maude-hcs scheck --seed 0

Number of simulations = 30 μ = 1.5301530777180123 σ = 3.9683630959745835e-05 r = 1.481811132921282e-05

maude-hcs scheck --seed 0

Number of simulations = 30 μ = 1.5301530777180123 σ = 3.9683630959745835e-05 r = 1.481811132921282e-05

maude-hcs scheck --seed 0 -j 4

Number of simulations = 30 μ = 1.5301436629475402 σ = 5.0836982397393854e-05 r = 1.8982841201450367e-05

maude-hcs scheck --seed 0 -j 4

Number of simulations = 30 μ = 1.5301436629475402 σ = 5.0836982397393854e-05 r = 1.8982841201450367e-05

root@kitploit:~
### परीक्षण स्वचालन
runexp.sh एक स्वचालन स्क्रिप्ट है जो जनरेशन और SMC विश्लेषण को जोड़ती है। इसमें दो आवश्यक तर्क होते हैं:```shell
runexp.sh CONFIG_FILENAME METRIC

where 
  CONFIG_FILENAME is the name of the .yaml shadow file defining the experiment
  METRIC is the quatex property and can be latency, throughput, goodput, or all

वितरित SMC चलाएँ

SMC मशीन के सभी कोर का उपयोग करके अत्यधिक समानांतर किया जा सकता है, जिससे मोंटे कार्लो नमूनाकरण में लगभग रैखिक गति प्राप्त होती है, जैसा कि ऊपर -j 0 विकल्प का उपयोग करके बताया गया है। QMaude वितरित SMC (सुविधा अभी सक्रिय परीक्षण के अंतर्गत) का उपयोग करके मशीनों के बीच और भी अधिक समानांतरता की अनुमति देता है।

वितरित SMC चलाने के लिए, एक या अधिक कार्यकर्ता (workers) होने चाहिए जिन्हें निम्नलिखित के साथ प्रारंभ किया जाता है:

root@kitploit:~
$ umaudemc sworker -a 127.0.0.1 -p 1234
👂 Listening on 127.0.0.1:1234...

नए sworker कमांड के लिए केवल विकल्प एड्रेस (-a) और पोर्ट (-p) हैं। यह नियंत्रक से कनेक्शन की प्रतीक्षा करता रहता है।

नियंत्रक पक्ष पर, एक सामान्य scheck कमांड को अतिरिक्त विकल्प --distribute <फ़ाइल> के साथ निष्पादित किया जा सकता है। उदाहरण के लिए,

root@kitploit:~
$ maude-hcs scheck --distribute workers.json

फ़ाइल workers.json (यह TOML या YAML भी हो सकती है) सिमुलेशन के लिए कार्यकर्ताओं की सूची निर्दिष्ट करती है। यह फ़ाइल एक शब्दकोश (dictionary) होनी चाहिए जिसमें workers कुंजी हो जिसमें { "workers": [ {"address": "127.0.0.1", "port": 1234} ] } या बस { "workers": [ "127.0.0.1:1234" ] } प्रारूप के मानों की सूची हो। इसके अलावा, विकल्प और आउटपुट सामान्य scheck कमांड के समान होने चाहिए।

scheck कमांड दूरस्थ कार्यकर्ताओं से जुड़ेगा, उन्हें सभी आवश्यक जानकारी प्रेषित करेगा, उन्हें सक्रिय करेगा, और निर्धारित आत्मविश्वास स्तर तक पहुंचने तक उनके परिणामों को संसाधित करेगा। फ़ाइलों को मैन्युअल रूप से प्रत्येक मशीन पर कॉपी करने के बजाय जो कार्यकर्ता चलाती है, फ़ाइलें कनेक्शन के माध्यम से भेजी जाती हैं। Maude समावेशन हल हो जाते हैं और Maude स्रोतों का एक सपाट संस्करण भेजा जाता है।

एक स्वतंत्र परीक्षण के लिए QMaude चलाएँ

QMaude उसी औपचारिकता में मॉडल का सांख्यिकीय मॉडल जाँच (SMC) प्रदान करता है। latency.quatex और smc.maude को अपने प्रयोग की निर्देशिका में कॉपी करें (या इसे results में रखें)।
पूर्व (former) को संशोधित करके लक्ष्य (संभाव्य) प्रयोग लोड करें। चलाएँ```shell umaudemc --no-advise scheck smc initConfig latency.quatex -a 0.05 --assign pmaude -j 50

root@kitploit:~
QMaude, quatex क्वेरी (μ) के लिए अपेक्षित मान और उस मान तक पहुंचने में लगने वाले मोंटे कार्लो सिमुलेशन की संख्या लौटाता है।

## Tests

परीक्षण चलाने के लिए, पहले अपने वातावरण में pytest इंस्टॉल करें।```
pip install -e .[test]

फिर यूनिट परीक्षण चलाएँ``` python -m pytest

root@kitploit:~
## अन्य उपयोगिताएँ

प्रयोग में उपयोग किए जाने वाले json मेटाडेटा फ़ाइल में छवियों की निर्देशिका को परिवर्तित करने के लिए,

उदाहरण के लिए mastodon tgen क्लाइंट द्वारा उपयोग की जाने वाली छवियाँ उत्पन्न करने के लिए (इसी प्रकार destini के लिए कवर छवियाँ)```shell
 maude-hcs --verbose --protocol dnsmastodon images --image-dir ../pwnd-cp2/src/static/images/ --image-out-dir results/

प्रति quatex क्वेरी, परिदृश्यों में testbed और SMC के बीच तुलना प्लॉट उत्पन्न करने के लिए

plotfinal.py का उपयोग करें तर्कों के साथ smc_directory, tne_directory, quatex_directory```shell python scripts/plotfinal.py use-cases/challenge-problem-2/results-aligned/ use-cases/challenge-problem-2/cp2_scenarios_tne/cp2_te_results/ smc/

root@kitploit:~
वही स्क्रिप्ट CDF प्लॉट उत्पन्न करेगी।```shell
python scripts/gather\_samples.py use-cases/challenge-problem-2/results-aligned/samples/ use-cases/challenge-problem-2/results-aligned/cdfs use-cases/challenge-problem-2/cp2_scenarios_tne/cp2_te_results/

संदर्भ

निम्नलिखित परियोजनाओं का सीधे उपयोग Maude-HCS द्वारा किया जाता है

  • Maude
  • QMaude
  • DNS प्रोटोकॉल औपचारिकीकरण Maude का उपयोग करते हुए
  • Actors2PMaude उपकरण
टूल डाउनलोड करें