4 ms·
I believe it was also the part of the key.
by ckaygusu 12y ago
I believe it was also the part of the key.
- sillysaurus3 12y agoCould you change the jmp into a nop, then xor every nth byte of the program with jmp xor nop, where n = whatever offset the jmp was at in the key? The result should be a valid decryption.
- ckaygusu 12y agoI see. That would work I suppose, but at that time I couldn't think of this.
- annnnd 12y agoWouldn't that also change the xor-ed instructions? That is, wouldn't the program behave differently?
- sillysaurus3 12y agoNah, if instruction "foo" is xor'd with "jmp", then xoring foo with "jmp xor nop" will remove the jmp and add the nop. Then the nop is removed during decryption, because "foo xor nop" xor nop = foo. The reason this is clean and convenient is because nop is a single byte (0x0f or 0x90), which lets you replace any instruction of any size with nops. But if you had to transform jmp into an instruction of a different size, things could get hairy if the byte sizes don't line up. But you could still replace several instructions with other code.
- twosheep 12y agoI understood some of those words.
- na85 12y agoMaybe go back to reddit.