728x90
워게임 풀이
Reversing.Kr
This site tests your ability to Cracking & Reverse Code Engineering. Now Challenge a problem for each environment. (Windows, Linux, .Net, Flash, Java, Python, Mobile..) Admin E-Mail: gogil@reversing.kr
reversing.kr
11. x64 Lotto
문제 파일을 실행했더니 위와 같았다. 로또 번호를 맞추는 것?같다..
6개 숫자를 입력하지만 이 숫자가 틀리다면 계~~~~~~속 반복된다.
숫자 6개를 입력받고 cls 한 뒤, 0.5초(0x1F4u) 쉰다.
v19~v25까지 srand(time(0)) 해서 나온 100 이하 rand 값 6개를 저장한다.
v3은 0이고, v13~v18(입력한 숫자), v19~v25(rand 값) 틀릴 때까지 비교한다. 6개가 다 맞을 경우 LABEL_9로 가서 v2가 1인 상태가 유지되고, v3=6이 되었으니 반복문이 종료된다.
변수를 초기화한다.
140003021에 있는 값을 가져와 초기화 한 변수에 차례대로 XOR(^) 한다.
v1이 1(참)이면, 즉 아까 숫자들을 다 맞췄으면
아까 변수들에 0xF를XOR 해서 출력해준다. 이것이 flag이다!!!
[ 파이썬으로 푸는 법]
n = [184, 92, 139, 107, 66, 184, 56, 237, 219, 91, 129, 41, 160, 126, 80, 140, 27, 134, 245, 2, 85, 33, 12, 14, 242]
d = [231, 51, -11, 20, 62, 221, 91, 191, 204, 52, 231, 51, -11, 20, 62, 221, 91, 191, 204, 52, 68, 100, 20, 73, -12]
for i in range(len(d)):
if(d[i]<=0):
d[i] = d[i] + 256
for i in range(len(n)):
print(chr((n[i] ^ d[i] ^ 0xF) + i), end='')
Password is from_GHL2_-_!
'Reversing' 카테고리의 다른 글
CodeBlocks로 C코드 exe파일 생성하기 (0) | 2023.09.29 |
---|---|
[Reversing] Easy Unpack_WirteUp (0) | 2023.05.28 |
[Reversing] AutoHotkey1_WirteUp (0) | 2023.05.27 |
[Reversing] Direct3D FPS_WirteUp (0) | 2023.05.27 |
[Reversing] Position_WirteUp (1) | 2023.05.24 |