본문 바로가기

WARGAME/Root-Me

PDF - Javascript

pdf파일을 주는데 이런게 적혀있다

무시하고 안에 자바스크립트를 찾아보자


전에 써니나타스에서 이와 비슷한 문제를 푼적이 있어서

그대로 해봤다


우선 이사이트에 업로드해서 자바스크립을 봤는데

소스가 음 일단 실행해봤다


소스는 이렇게 생겼는데


실행하니 zjocYQp 이게 정의되지 않았단다


pdf 파일을 보면 자바 스크립트가 두개있는데

다른 한개에서 zjocYQp 이 변수를 찾았다

근데 소스를 보면 info에서 author, title, subject를 또 찾아야할 거같다

kail를 열어 peepdf를 사용해보았다

peepdf -i ch7.pdf

metadata를 실행하니


var info={ subject: "I5xlmqMpKN14VZNWuCulWR2fy4X6jS3j", producer: "MiKTeX pdfTeX-1.40.12", creator: "TeX", title: "xj5oWJOch2E0ir5BI05QuClyYTLnHBmz", keywords: "47ljm6agvj2xYyKVnEVwBfin2KQvzzto", author: "dVbFZxLu7en8hJhhFfCTIOer76hBPONC", creationDate: "BjcEwttYWwOcPn1bZPwXPqbt1jUq6X4e" };


이렇게 얻을 수 있었는데

이걸 변수로 해서 넣고 실행했다


이번에는 앱이 정의되지 않았단다

그래서 앱을 찾으려고 막 뒤져봤지만 음 모르겠다

그래서 소스를 다시 천천히 읽다가


이런걸 찾았다

연산하는거같은데 일단 python으로 옮겨보았다 java를 못하기 때문에..


한가지 문제였던게

HeGJR4 이 변수에 뭐가 들어가는지 몰랐다

그래서 그냥 한개씩 다 넣어봤는데 첫번째가 맞았다

1
2
3
4
5
6
7
8
9
10
11
12
HeGJR4 = "dVbFZxLu7en8hJhhFfCTIOer76hBPONCxj5oWJOch2E0ir5BI05QuClyYTLnHBmzI5xlmqMpKN14VZNWuCulWR2fy4X6jS3j"
a0O7ZyO = [18 , 55 , 16 , 102 , 49 , 29 , 53 , 72 , 16 , 17 , 54 , 65 , 79 , 97 , 11 , 49 , 23 , 22 , 41 , 59 , 98 , 104 , 60 , 19 , 124 , 17 , 83 , 52 , 49 , 61 , 110 , 34 , 22 , 25 , 66 , 0 , 37 , 106 , 114 , 67 , 9 , 66 , 53 , 30 , 27 , 23 , 70 , 50 , 38 , 94 , 70 , 52 , 93 , 100 , 41 , 23 , 45 , 49 , 62 , 78 , 60 , 42 , 8 , 90 , 34 , 80 , 1 , 76 , 11 , 30 , 63 , 80 , 61 , 47 , 93 , 93 , 50 , 59 , 58 , 62 , 26 , 45 , 82 , 64 , 112 , 26 , 83 , 5 , 18 , 26 , 20 , 99 , 74 , 3 , 119 , 44 , 68 , 21 , 10 , 39 , 54 , 20 , 41 , 27 , 80 , 0 , 73 , 20 , 79 , 109 , 65 , 83 , 47 , 0 , 107 , 53 , 39 , 60 , 18 , 29 , 69 , 11 , 85 , 41 , 53 , 54 , 103 , 56 , 25 , 26 , 69 , 65 , 54 , 38 , 42 , 17 , 28 , 26 , 98 , 73 , 6 , 7 , 21 , 42 , 40 , 70 , 80 , 113 , 18 , 44 , 24 , 89 , 48 , 32 , 98 , 78 , 60 , 42 , 8 , 90 , 34 , 80 , 1 , 76 , 4 , 2 , 119 , 80 , 108 , 101 , 90 , 81 , 47 , 115 , 117 , 42 , 16 , 47 , 6 , 9 , 44 , 51 , 66 , 22 , 87 , 85 , 52 , 83 , 24 , 39 , 27 , 77 , 10 , 57 , 18 , 35 , 122 , 12 , 62 , 12 , 23 , 4 , 9 , 89 , 1 , 36 , 79 , 65 , 125 , 27]
YQpoczFfjk = len(HeGJR4)
 
for i, j in zip(range(len(a0O7ZyO)),range(len(a0O7ZyO))):
    if(j >= 96):
        j = 95
    a0O7ZyOChar = a0O7ZyO[i]
    keyChar = ord(HeGJR4[j])
    a0O7ZyO[i] = (a0O7ZyOChar ^ keyChar)
 
print a0O7ZyO
cs

위의 소스를 실행해서 얻은 값으로


1
2
3
4
5
6
7
a= [11897114321071011216139116881213943998981112106111433989977539591189711432971101151191111143261329711211246114101115112111110115101403969110116101114321161041013210710112132102111114321189710810510097116105111110394439729799107467685328068704612796779212667113581063512637743576910619577861201194797636795921382115112474392766412311811283510810912764664458271207011451907483686649848725810738110104295861548596925316412269108997089401246163945711477113399683120731610284102125110995110778374323113]
result = ""
 
for x in range(len(a)):
    result += chr(a[x])
 
print result
cs

다시 돌려준다


이렇게 나오는데

var key='tXy'+cYQpjo+'YaK

일단 뒤는 모르겠고

이렇게 나와서

tXyxj5oWJOch2E0ir5BI05QuClyYTLnHBmzYaK

끝이다


위에 조금 해매서 잘못했었다 ㄷㄷ

'WARGAME > Root-Me' 카테고리의 다른 글

ELF - ARM  (0) 2017.01.16
PE - RunPE  (0) 2017.01.13
ELF - KeygenMe  (0) 2016.12.02
ELF - Random Crackme  (0) 2016.11.29
ELF - Anti-debug  (0) 2016.11.28