<Wargame & CTF>/Reversing.kr

[Reversing.kr]Easy Keygen

gosoeungduk 2019. 1. 15. 23:45
반응형


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