Lotto Number / 로또 1등 당첨번호를 맞추세요

lotto1.exe

첨부된 실행파일을 내려받아 실행하면 
1분마다 한번씩 반복하여 임의의 로또 번호를 추첨합니다. 

프로그램이 발생할 난수를 예측하여 1등에 당첨되면 플래그를
얻을 수 있습니다.


코드를 작성하다 화가 나서 결국 디버깅을 하기로 마음먹었다.


먼저 IDA를 이용하여 해당 파일을 열어보았다.



스트링을 훑어보던 중 f|a9 : %s라는 문자열이 보인다.


xref 를 따라가보자.



v13에 저장된 값을 플래그로 출력하는데 중간에 xor 연산을 하는 것을 알 수 있다. 


계속 따라가보자.



v13에 저장된 문자열이 보인다.


로또 번호와 상관 없이 플래그는 고정이므로


저 문자열을 배열에 넣고 xor 2 연산을 해주면 플래그가 출력될 것이다.





소스코드


string = "a`60;f`7aadf444d6:f`13g0:17;0;g6"

length = len(string)
i = 0
for i in range(0,length):
print chr(ord(string[i])^2)


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - RSA Decrypt  (0) 2017.04.21
Reversing - Difficult Mine  (0) 2017.04.21
Packet Analyze - Find EXE File  (0) 2017.04.20
Packet Analyze - hacker msg??  (0) 2017.04.20
Reversing - Fine KEY1  (0) 2017.04.20

+ Recent posts