codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
from binascii import hexlify def crypto(string): #SOUL123412341234 buffer = hex(int(string[4:12])) array = [0x57, 0x1F, 0x06, 0x2C, 0x34, 0x0B, 0x58, 0x2F, 0x11, 0x0B, 0x29, 0x5E, 0x05, 0xFF, 0x04, 0x1D] esi = 0xD1E7 var4 = 0 for byte in xrange(len(string)): if byte < 12: eax = int(hexlify(string[byte]), 16) eax = (eax & 0x7F) & 0xFFFFFFFF edx = eax eax = (eax << byte) & 0xFFFFFFFF edx = (edx * esi) & 0xFFFFFFFF esi = (esi ^ edx) & 0xFFFFFFFF edx = array[byte] esi = (esi + eax) & 0xFFFFFFFF eax = esi var4 = edx if eax > 0: edx = 0x00 else: edx = 0xFFFFFFFF edx = eax % 0x64 var4 = (var4 + edx) & 0xFFFFFFFF eax = (eax / 0x64) & 0xFFFFFFFF esi = (esi - var4) & 0xFFFFFFFF else: break esi = esi & 0x7FFFFFFF if buffer < 0x0CE4: eax = esi if eax > 0: edx = 0x00 else: edx = 0xFFFFFFFF var4 = eax % 0xFF2F eax = eax / 0xFF2F esi = var4 esi = esi & 0xFFFF #EBP+C and EDI are both pointers to variables, unknown to me atm #if EBP+C == 0: #[EBP+C] = EDI return hex(int(esi)) print crypto("SOUL123412341234")
Private
[
?
]
Run code
Submit