Reversing

[코드엔진] basic 14

BIGFROG 2020. 2. 18. 16:51

name이 CodeEngn일때 serial을 구하시오.
*bruteforce필요, 5개의 숫자로 되어 있는 정답을 찾아야함.

PEiD - UPX패킹확인.
upx를 이용해 언패킹함.


올리디버거로 올려서 스트링 검색 
Good job 있는 쪽을 확인

name : CodeEngn
key : 22222
를 넣고 돌려보자.

정답으로 가는 분기점이 CMP, JNZ쪽이다.
CMP EAX, ESI 있는 쪽을 수정해보자.


EAX 값은 56CE(dec.22222)이다.

EAX레지스터 값은 내가 넣은 시리얼 키 값이고, ESI레지스터 값이 비교할 값(진짜 serial key 값)이다.

pop esi 이후 esi값을 확인하면 된다.


name에 따라 변하는 시리얼 키 일 것이므로,(그래서 문제에서 name = CodeEngn으로 특정시켜주었음) 
위에 있는 함수를 통해 시리얼 키가 저장되었을 것이다.
그게 ESI 레지스터 값임.
따라서 ESI 레지스터의 값을 10진수로 변환시키면


129A1 = dec.76193