1
$\begingroup$

I can provide input to an application that encrypts plaintext via an unknown algorithm, which I would like to reverse. I can obtain plaintext:ciphertext pairs, and the length of the cipher depends on the length of the input. For example, for 2 character input:

'AA'      82 46 4C 0B 32 11 B7 17 01 35 E2 92 1D 32 91 94 03 D6 37 A0 1B 65 73 FE
'AB'      82 46 4C 0B 32 11 B7 17 01 35 E2 92 1D 32 91 94 42 48 22 84 0D B2 B9 FF
'BA'      82 46 4C 0B 32 11 B7 17 01 35 E2 92 1D 32 91 94 23 BA 6C 97 39 92 7E C4

Input of 3-5 characters results in a longer cipher:

'AAAAAA'      2F 84 BD 26 22 F7 BC 5C 23 CD 5C 80 46 02 E4 56 03 8B DD B9 1A 1D 13 B0 17 BF 1B 2F
'AAAAAB'      2F 84 BD 26 22 F7 BC 5C 23 CD 5C 80 46 02 E4 56 03 8B DD B9 05 26 CB C1 00 00 01 00

At 6 characters the cipher becomes 4 bytes longer still. I have collected some additional input and output here.

How would I go about reversing this encryption? It seems as if the output changes in rather predictable patterns for a given input, but I have no idea how to proceed.

Unfortunately, decompiling the source is not an option, since I cannot access that.

$\endgroup$
  • $\begingroup$ Interestingly only the last 8 bytes differ. $\endgroup$ – kelalaka Mar 8 at 16:01