![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||
|
||||||||||||||
![]() |
#1
|
|||
|
|||
![]() Hi ,
i'm trying to reverse an encryption algorithm that takes and usigned integer and an index value and returns the encrypted / obfuscated 32 bit unsigned value . The algo looks like : Encrypt ( plain UINT32 , KEY_INDEX , OUT_VALUE) the encrypt function takes the (KEY_INDEX % 0x64)*8 and ((KEY_INDEX % 0x64)*8)+8 from a 0x190 elements 4 bytes array , the plaintext value and calculates the cipher value using some kind of transformation function based on floating point calculations . Does anybody have a clue on what encryption/obfuscation algo uses this king of behaviour . It's quite difficult to extract the algo end reverse it so any help would be useful . thanks . |
#2
|
|||
|
|||
![]() To reply to myself i found the soluton to the problem .
The ctypto function is a simple modular exponentiation function . It choses a random MODULO and EXPONENT from a lookup table based on a chosen index then calculates X^EXPONENT MOD (MODULO) where X is the 32bit plaintext that we want to encrypt . So theorically reversing the function should be fesible since the problem to solve is calculating the nth modular root of the result . |
#3
|
|||
|
|||
![]() How dumb i am !!
Algo used was simply RSA using 32bit (tooooo week ) key . Reversed . |