passes: junk classes with real bodies and no fingerprint
NoisePass now builds branching helper methods (counted int loop, random arithmetic, even/odd merge, non-throwing ops only) whose results the entry sums into a private static field, instead of an empty run()V. Names come from the same NameGenerator styles as real code and live in a random real package (no more shadow/decoy uniformity for grep to catch); every generated method gets fresh StackMapTable frames. weave_first_reachable takes (class, entry) pairs. New NoiseConfig.junk_methods_per_class (default 3). Tests assert invariants (unique valid identifiers, calls, field store, determinism) plus real-JVM verification of junk classes; paranoid+junk_ratio=1 smoke on lorep: 18 junk classes, all load.
This commit is contained in:
parent
74ad4552e4
commit
2cbb9db31e
11 changed files with 648 additions and 159 deletions
|
|
@ -97,7 +97,7 @@ fn build_frame(
|
|||
})?;
|
||||
if !(1..=3).contains(&count) {
|
||||
return Err(ClassfileError::Write(format!(
|
||||
"append-кадр на {count} local'ов (нужно 1–3)"
|
||||
"append-кадр на {count} local'ов (нужно 1-3)"
|
||||
)));
|
||||
}
|
||||
RtFrame::AppendFrame {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue