[Wargame] CERTIS random enc

Posted by MrBIN on November 18, 2016

Random enc

  • secret 파일과 out.enc 라는 파일이 주어짐.
  • secret 파일은 파이썬 바이트 코드이며 uncompyle 툴로 디컴파일이 가능. img1 img2

  • 디컴파일한 코드에는 flag.txt를 enc한 코드가 있고 이를 토대로 dec 해야함.
import random
import ctypes
from time import *
from pwn import log

libc = ctypes.CDLL('libc.so.6')
f = open('out.enc','r')

data = ""
data2 = ""
while True:
    s = f.read(1)
    if s == '': break
    #print '%02X' % int(ord(s)),
    data += s

p = log.progress('start...')
for t in range(1,111112):
    p.status(str(t+1))
    pr_data = ""
    libc.srand(t)
    for i in data:
        rd = libc.rand()%119

        dec = ord(i)
        real_dec = rd ^ dec
        pr_data += chr(real_dec)
    if "IS" in pr_data.upper():
        print pr_data

img3