diff --git a/src/Infiltrator.jl b/src/Infiltrator.jl index d35767f..285f152 100644 --- a/src/Infiltrator.jl +++ b/src/Infiltrator.jl @@ -341,7 +341,7 @@ function init_transient_eval_module(mod, locals) # insert local variables into current scope Core.eval(newmod, Expr(:block, map(x->Expr(:(=), x...), [(k, maybe_quote(v)) for (k, v) in locals])...)) # insert variables in safehouse - Core.eval(newmod, Expr(:block, map(x->Expr(:(=), x...), [(k, maybe_quote(v)) for (k, v) in get_store_names()])...)) + Core.eval(newmod, Expr(:block, map(x->Expr(:(=), x...), [(k, maybe_quote(v)) for (k, v) in get_store_names() if !isdefined(newmod, k)])...)) # insert all bindings from the source module that aren't already defined in the eval module Core.eval(newmod, Expr(:block, map(x->Expr(:(=), x...), [(k, maybe_quote(v)) for (k, v) in modns if !isdefined(newmod, k)])...)) diff --git a/test/Julia_multi_exfiltrate_1.1.multiout b/test/Julia_multi_exfiltrate_1.1.multiout new file mode 100644 index 0000000..cd18a47 --- /dev/null +++ b/test/Julia_multi_exfiltrate_1.1.multiout @@ -0,0 +1,312 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB \ No newline at end of file diff --git a/test/Julia_multi_exfiltrate_1.6.multiout b/test/Julia_multi_exfiltrate_1.6.multiout new file mode 100644 index 0000000..cd18a47 --- /dev/null +++ b/test/Julia_multi_exfiltrate_1.6.multiout @@ -0,0 +1,312 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB \ No newline at end of file diff --git a/test/Julia_multi_exfiltrate_1.7.multiout b/test/Julia_multi_exfiltrate_1.7.multiout new file mode 100644 index 0000000..cd18a47 --- /dev/null +++ b/test/Julia_multi_exfiltrate_1.7.multiout @@ -0,0 +1,312 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB \ No newline at end of file diff --git a/test/Julia_multi_exfiltrate_1.8.multiout b/test/Julia_multi_exfiltrate_1.8.multiout new file mode 100644 index 0000000..cd18a47 --- /dev/null +++ b/test/Julia_multi_exfiltrate_1.8.multiout @@ -0,0 +1,312 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBB +++++++++++++++++++++++++++++++++++++++++++++++++++ +|Infiltrating : +| +|infil> i +|1 +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|2 +| +|infil> @exfiltrate +|Exfiltrating 1 local variable into the safehouse. +| +|infil> @continue +| +|Infiltrating : +| +|infil> i +|3 +| +|infil> safehouse.i +|2 +| +|infil> @continue +| +|Infiltrating : +| +|infil> +-------------------------------------------------- +|AAAAAAAAAAAAAAAAAAAAAAA +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBBC +|C +| +|BBBBBBBCCCCCCCCCCC +|C +| +|BBBBBBBCCCCCCCCC +| +|CCCCCCCCCCCCCCCCCCCCCCC +| +|BBBBBBB \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 408ae32..efadbbb 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -45,6 +45,12 @@ using ..Infiltrator jfunc() = @infiltrate end +function multiexfiltrate() + for i in 1:10 + @infiltrate + end +end + @testset "infiltration tests" begin if Sys.isunix() && VERSION >= v"1.1.0" using TerminalRegressionTests @@ -136,6 +142,12 @@ end run_terminal_test(Jmod.jfunc, nothing, ["x\n", "randstring\n", "@exit\n"], "Julia_imported_globals_$(VERSION.major).$(VERSION.minor).multiout") + + # safehouse should not shadow local variables + run_terminal_test(multiexfiltrate, nothing, + ["i\n", "@continue\n", "i\n", "@exfiltrate\n", "@continue\n", "i\n", "safehouse.i\n", "@continue\n", "@exit\n"], + "Julia_multi_exfiltrate_$(VERSION.major).$(VERSION.minor).multiout") + @test Infiltrator.store.i == 2 else @warn "Skipping UI tests on non unix systems" end