CodeEngn Basic14 풀이
Wargame | CTF/Reversing

CodeEngn Basic14 풀이

이름이 CodeEngn 일때 시리얼을 구하랍니다. 정답은 여러개가나올수있고 5개의 숫자로된 정답을 찾으라네요.  

프로그램을 한번실행해 봅시다.

입력받는 박스가 두개가 있네요. 체크버튼을 누르면 시리얼과 비교해서 결과화면을 띄웁니다.

쉬운 UPX패킹 방식입니다. 손쉽게 OEP를 찾아줍시다. 


(문자길이를 구해서 그 길이만큼 반복)

1.문자가 저장된곳에 접근 

2.해당문자에서 1글자만 따옴

3.해당문자 아스키코드값을 제곱한다.

4.그값을 ESI에 더한다.

5.해당문자 아스키코드값을 오른쪽으로 1칸시프트한다.

6.시프트한값을 ESI에 더한다.

7.ESI에 다시 해당문자아스키코드값을 더한다.

8.EAX값을 증가시키고 ECX값을 감소시킨다. ECX값이 0이될때까지 반복한다.


최종적으로 ESI에 누적된 값을 스택에 푸시한다.


밑칸에 있는것도 어떤 알고리즘으로 값을 하나만들어 냅니다.

(문자길이를 구해서 그 길이만큼 반복)

1.해당 문자열에서 한글자를 따옵니다.

2.따온 문자에서 30을 뺍니다.

3.ECX값을 1 감소시킵니다

4.한글자따온 (해당문자값 제곱) X A 

5.ECX값만큼 (문자값제곱 X A)를 해준다.

6.이값을 EBX에 계속 중첩시킨다.


eax 리턴 


그리고 그 두값을 비교하네요. 두값이 같아야 성공메세지를 띄웁니다.

CodeEngn 이라는 문자를통한 알고리즘 계산값은 129A1입니다.

'Wargame | CTF > Reversing' 카테고리의 다른 글

CodeEngn Basic16 풀이  (0) 2018.03.19
CodeEngn Basic15 풀이  (0) 2018.03.19
CodeEngn Basic13 풀이  (0) 2017.09.14
CodeEngn Basic12 풀이  (0) 2017.09.11
CodeEngn Basic11 풀이  (0) 2017.09.11