반응형
Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial 이라고 되어 있다.
Serial만 찾으면 되지만 OEP도 찾아보자
OEP ( Original Entry Point ): 패킹된 파일의 시작 부분을 의미한다. OEP 이전 실행 부분은 패킹된 파일이 메모리에
로드되어 압축을 푸는 명령어가 들어있다.
EP ( Entry Point ) : 프로그램이 실행될 때 시작되는 지점을 가리킨다. 대부분의 프로그래밍 언어에서는 "main()" 함수가 이 역할을 수행한다.
OEP는 언패킹한 프로그램의 EP와 같다.
ImageBase 인 00400000 + 00001360 [ ep ] 를 해주면 00401360 으로 oep를 구했다.
프로그램 실행모습
UPX Packing이 되어있다. 언패킹 해주자
IDA를 켜보자
여기서도 oep가 보이긴 한다.
어쨌든, IDA의 강력한 기능인 디컴파일 기능을 통해 C언어로 볼 수 있다.
함수를 타고 들어가보자
4번째 파라미터인 DialogFunc는 대화 상자 프로시저에 대한 포인터라고 msdn에 나와있다. 타고들어가보자
sub_401005() 를 타고 들어가자
sub_401030() 을 타고 들어가자
Str2를 받아서 Str1과 비교후 맞는지 아닌지 메세지박스를 띄워주고 있다.
그렇다면 Str1에 시리얼키가 들어 있을 것이니 Str1을 타고 들어간다.
Str1 = "AD46DFS547" 이라는 걸 알 수 있다.
그럼 텍스트박스에 넣고 확인해본다면 ?
성공 메시지를 볼 수 있다.
반응형
'Reverse Engineering > [CodeEngn] Basic RCE' 카테고리의 다른 글
[Reversing] CodeEngn - Basic RCE L08 (0) | 2024.07.02 |
---|---|
[Reversing] CodeEngn - Basic RCE L07 (0) | 2024.07.02 |
[Reversing] CodeEngn - Basic RCE L05 (0) | 2024.07.02 |
[Reversing] CodeEngn - Basic RCE L04 (0) | 2024.07.02 |
[Reversing] CodeEngn - Basic RCE L03 풀이 (0) | 2024.07.02 |