본문 바로가기

[Wargame Write-up]/CodeEngn Challenges

[CodeEngn Challenges] Advance RCE 02



뜬금없이 정답이 뭐냐고 한다.




입력값이 하나라 그런 것 같다. Win 10 x64 환경에서 실행하면 오류가 나서 가상 머신 돌렸다.




Entry Point로부터 꽤나 내려왔는데, 별다른 의심이 가는(입력값을 비교하는) 구문이 없다. 


4013C5에서 호출하는 주소의 함수가 좀 의심스러웠다.




육감은 정확했다. 한 글자씩 뽑아서 비교하고 있다. 이를 토대로 아래처럼 코딩해봤다.


ASCII 코드표를 외우고 있는 사람들이라면 바로 알겠지만, 컴퓨터의 힘을 빌리고 싶었다...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
import os
 
def showTitle():
    print "#####################################################"
    print "#                                                   #"
    print "#                                                   #"
    print "#                CodeEngn Advance 02                #"
    print "#                                      - by Sith    #"
    print "#                                                   #"
    print "#                                                   #"
    print "#####################################################"
 
def getPassword():
    passwdHexArr = [0x430x520x410x410x410x430x4b0x450x440x21]
    result = ""
 
    for i in passwdHexArr:
        result += chr(i)
 
    return result
 
def main():
    os.system("cls")
    showTitle()
    print "\n" + getPassword()
 
if __name__ == '__main__':
    main()
cs



Clear! (왜 이 MessageBox의 Title이 "오류"인지는 잘 모르겠다.)