6kittylog
basic RCE 05 본문
요것도 내부 스터디 준비하면서 풀어야 하는 문제
요건 이제 upx 패킹에 대한 문제이다.
그냥 Register now하면 이렇게 뜬다.
먼저 패킹이란 무엇이고 UPX가 무엇이닞 짚고 넘어가자.
패킹이란? -> 컴프레서와 프로텍터로 나뉨
압축! 다만, zip과 다른 부분은 확장자는 그대로 실행 파일 확장자를 유지, 파일의 코드나 PE구조를 압축하는 것이 패킹의 주요 포인트.
이중에 하나가 UPX 패킹, Ultimate Packer fo Executables
https://github.com/upx/upx/releases
Releases · upx/upx
UPX - the Ultimate Packer for eXecutables. Contribute to upx/upx development by creating an account on GitHub.
github.com
열어보면 요렇게 있을 것이다. 이 폴더에 압축 풀어야 하는 파일도 배치시켜줘야함
upx 언패킹은 다음과 같이 함
upx -d -o <저장할이름> <언패킹할파일이름>
//파일 이름에 확장도 넣어서 작성해줘야 함
자주 쓰는 ida로 함수 개수 비교
동적 분석 툴로도 비교
hxd로 파일을 까보면 위와 같이 표기되어 있음! (함수 수가 너무 적다. 코드 분석이 이상하게 된다면 패킹된 것이 아닌지 확인해보기)
코드엔진 RCE 05 문제는 동적 분석으로 넘어가보자
문자열 참조 먼저..
일단 문자열을 보고 대충 이건가 try해봤는데 맞았고.. 너무 날로 먹은 거 같으니 자세한 assembly 분석을 써보자
문자열은 그냥 보기 편하도록 문법에 맞지 않게 넣음
mov eax, 입력한 user 네임
mov edx, "Registered User"
call 05unpack.403b2c -> eax와 edx 맞는지 구분하는 함수
jne 05unpack.440f8c -> wrong 출력
...
mov eax, 입력한 serial
mov edx, "754-GFX-IER-954"
call 05unpack.403B2C -> eax와 edx 맞는지 구분하는 함수
jne 05unpack.440F72 -> wrong 출력
이후로는 congrats! you cracked this crackme 출력하는 코드
...너무 대충 작성한 거 같긴 해
'리버싱 > CodeEngn' 카테고리의 다른 글
basic RCE 04 (0) | 2025.01.26 |
---|