20번 문제다. CodeEngn! 이 출력되도록 할 때
crackme3.key 파일의 값이 무엇이 되야하는가? 가 문제이다.
일단 올리디에 던져보면 crackme3.key 파일이 필요한 것과
그 파일에서 18의 크기만큼을 가져온다는 것을 알 수 있다.
일단 crackme3.key 파일을 만들어주고 진행하자.
복호화? 음.. 여튼 그런 루틴이다.
간단하게 설명하면 bl에 0x41('A')값을 저장하고
bl이 0x4F가 될 때까지 bl의 값을 하나씩 늘려가면서 가져온 18개의 파일의 값과
xor 연산을 진행하고 그 값을 저장한다.
1 2 3 4 5 6 7 8 9 | num_arr = [67,111,100,101,69,110,103,110, 33, 32, 32, 32, 32, 32, 32, 32, 32, 32] bl = 65 for i in range(0,18): num_arr[i] = num_arr[i] ^ bl bl = bl + 1 print hex(num_arr[i]), | cs |
이런 값이 나온다. 이걸 crackme3.key 파일에 입력하면 안에서 루틴을 돌고
점프문 패치를 조금 해주면
이런 문구가 뜨게된다. 그럼 CodeEngn! 이 뜨게 하려면
crackme3.key 파일이 가져야 하는 값이 이미 나왔다. 끝
반응형
'Wargame > Reversing-W' 카테고리의 다른 글
CodeEngn advance 8 (0) | 2017.07.20 |
---|---|
CodeEngn advance 5 (0) | 2017.07.20 |
CodeEngn basic 18 (0) | 2017.07.19 |
CodeEngn basic 17 (0) | 2017.07.19 |
CodeEngn basic 16 (0) | 2017.07.18 |