A quine-like program could just as well put its real payload in a string with a cryptographic signature, verify the signature, and then eval the string with the string as input; thus emulating the “passed its own sourcecode” format.
Altering the internal structure of an opponent program would be very difficult, but that’s not the only way to mutate a program. You can’t tinker with the insides of a black box, but you can wrap a black box.
To be concrete: given an opponent’s source code, I could mechanically generate an equivalent program with extremely dissimilar source code (perhaps just a block of text, a decryption routine, and a call to eval) that nevertheless acts exactly like the original program in every way. And since that mechanically-obfuscated program would act exactly like the original program in every way, the obfuscated program would not be able to detect that it had been altered. Do you agree?
Altering the internal structure of an opponent program would be very difficult, but that’s not the only way to mutate a program. You can’t tinker with the insides of a black box, but you can wrap a black box.
To be concrete: given an opponent’s source code, I could mechanically generate an equivalent program with extremely dissimilar source code (perhaps just a block of text, a decryption routine, and a call to eval) that nevertheless acts exactly like the original program in every way. And since that mechanically-obfuscated program would act exactly like the original program in every way, the obfuscated program would not be able to detect that it had been altered. Do you agree?