반응형
CodeEngn 에서의 대부분의 문제와는 달리 이번에는 시리얼을 단서로 Name을 구해내는 문제이다.
Name에서 시리얼을 추출하는 로직을 알아내야겠다고 생각했다.
Name을 입력한 후 반복문에서 시리얼 값을 만들어내는 부분을 찾아냈다.
처음에 ECX에 들어가는 값은 스택에 있는 값으로 ESI가 0, 1, 2 로 늘어남에 따라 ECX에는 0x10, 0x20, 0x30이 들어가게 된다.
EDX에 들어가는 값은 Name으로 입력한 input값을 한 바이트씩 잘라낸 것이다.
그리고 ECX와 EDX 두 개를 XOR 연산 시켜서 이것을 시리얼 값으로 만들어내는 것이다.
만약 ESI가 3이 된다면 0으로 초기화 시켜서 0x10~0x30 루틴을 유지하게 만들어 준다.
(0x0019FE08 라인에서 끝에 10 20 30 이 박혀있음을 알 수 있다.)
XOR연산 성질을 이용해서 README에서 준 시리얼에 대응하는 Name값을 구해냈다.
Correct !
반응형
'<Wargame & CTF> > Reversing.kr' 카테고리의 다른 글
[ Reversing.kr ] Ransomware (0) | 2020.01.02 |
---|---|
[Reversing.kr]ImagePrc (0) | 2019.03.27 |
[Reversing.kr]Replace (0) | 2019.02.08 |
[Reversing.kr]Music_Player (1) | 2019.01.30 |
[Reversing.kr]Easy Unpack (0) | 2019.01.18 |