shiyamganesh's picture
Upload 7 files
888f4e3 verified
#!/usr/bin/env python3
import os
import json
import msgpack
from pathlib import Path
HERE = Path(__file__).resolve().parent
def load_runtime(path):
# Typical Python MessagePack runtime behavior: map becomes dict, duplicate keys collapse.
# In msgpack-python this keeps the last duplicate key value.
return msgpack.unpackb(Path(path).read_bytes(), raw=False, strict_map_key=False)
def infer(model, x):
score = sum(float(w) * float(v) for w, v in zip(model["weights"], x)) + float(model["bias"])
return int(score > float(model["threshold"]))
def main():
benign_input = [0.0, 0.0]
trigger_input = [0.0, 0.0]
malicious = load_runtime(HERE / "duplicate_threshold_model.msgpack")
control = load_runtime(HERE / "control_model.msgpack")
result = {
"malicious_runtime_threshold": malicious["threshold"],
"control_threshold": control["threshold"],
"malicious_benign_input_class": infer(malicious, benign_input),
"control_benign_input_class": infer(control, benign_input),
"malicious_trigger_input_class": infer(malicious, trigger_input),
"control_trigger_input_class": infer(control, trigger_input),
"claim": "duplicate-key MessagePack file is accepted by runtime unpacker; last duplicate threshold controls inference behavior",
}
print(json.dumps(result, indent=2))
assert malicious["threshold"] == -0.5, "runtime should retain last duplicate key"
assert control["threshold"] == 0.99
assert infer(control, trigger_input) == 0
assert infer(malicious, trigger_input) == 1
print("RESULT: duplicate-key MessagePack model was accepted; runtime used the last duplicate threshold and flipped output.")
if __name__ == "__main__":
main()