8^512: hello from the other side of the quantum dimension
8^8 sounds interesting. 16 million reboots of a real {PC,C64,ST,Amiga,Mac,Z80,...} sounds like a collectively highly entertaining kind of hilarious. The issues only begin when you start wondering if any of the programs wedges the hardware into "interesting" states that are preserved across reboots - or at least the what if of that dimension of entropy... then the problem space becomes 8^8^8...
[I decided to compute 8^8^8. The result is apparently 15 million digits long. (`echo 8^8^8 | bc -ql | wc` -> `222814 222814 15596963`)
Thats weird "reference". Why 8 as the base number? Nobody works with 3bit bytes. 8^8 == 2^24 == 2^(8 * 3) == 256^3, i.e. the combination space of three bytes.
The smallest category in pouet for reference is 32b (or 256 bits), so 2^256 combinations to brute force. For comparison usually 128bit encryption is considered "safe" and infeasible to brute force.
You might be able to constrain the search space to only valid IA32 instructions, but realistically I don't see it helping that much
You could further constrain it to exclude a lot of instructions and instruction pairs that makes no sense given the context. E.g. any instruction pair where the second one makes the first one redundant, such as the second instruction clobbering the same register the first one modified. Or a "ret" in the first few instructions...
It'd probably not constrain the search space nearly enough though.
But even if it did and you'd somehow manage to even generate every combination, you'd still face the second problem of how to evaluate if they do something "interesting enough" to be worthwhile reviewing.
My original comment ran the numbers against the OP's "wouldn't that be 256^256?", but I got tripped up by the reply refuting that and saying it was 8^256 instead.
For as-yet unknown reasons my brain has always had a hard time mapping between the real world and the mathematical vacuum, so it was honestly less stressful to risk trusting that comment than try and [figure out how to] figure it out on my own. So I just substituted calculations for 8^n.
Hopefully I can figure out those mapping problems one day. I think neurological damage may be involved, or something - I had to resort to button-mashing on my calculator while trying to figure out how many vegetables I could buy for $X given that they were $Y/kg one day at the supermarket. I'm 29. </rant>
For handy reference:
8^8: 16,777,216
8^16: 281,474,976,710,656
8^32: 79,228,162,514,264,337,593,543,950,336
8^64: 6,277,101,735,386,680,763,835,789,423,207,666,416,102,355,444,464,034,512,896
8^128: ...
8^256: ?
8^512: hello from the other side of the quantum dimension
8^8 sounds interesting. 16 million reboots of a real {PC,C64,ST,Amiga,Mac,Z80,...} sounds like a collectively highly entertaining kind of hilarious. The issues only begin when you start wondering if any of the programs wedges the hardware into "interesting" states that are preserved across reboots - or at least the what if of that dimension of entropy... then the problem space becomes 8^8^8...
[I decided to compute 8^8^8. The result is apparently 15 million digits long. (`echo 8^8^8 | bc -ql | wc` -> `222814 222814 15596963`)