1. VS 콘솔 샘플 코드
#include <stdio.h>
int sub_1() // main()으로 부터 호출을 당하는 callee
{
return 0x1234;
}
int main(void) // system으로 부터 호출을 당하는 callee
{
sub_1();
return 0;
}
2. VS 최초 프로젝트 생성 시 옵션 확인
3. VS 코드 확인
Entry point 코드 확인
0040125B 확인
Main 함수 찾기
.text:00401260 jmp loc_4010D9 // main을 이동하는 과정
일단 main 함수 진입점을 찾았다.
.text:004011CE call sub_401000
main함수를 가봤더니 헉 알 수 없다. 무엇을 하는지 알 수 없다.
일단 중요한 건 main 함수를 찾은 것이다.
.text:00401000 sub_401000 proc near ; CODE XREF: start-8Dp
.text:00401000 ; .text:00401831j
.text:00401000 xor eax, eax
.text:00401002 retn
.text:00401002 sub_401000 endp
수상한 값 역추적
이 값은 도대체 무슨 값일까?
.text:00401003 byte_401003 db 3Bh ; DATA XREF: sub_40198B+Fo
.text:00401004 dd 4030040Dh, 275F200h, 0E9F2C3F2h, 279h, 0E8016A56h, 0B47h
.text:00401004 dd 67EE8h, 72E85000h, 0E800000Bh, 0B9Dh, 0CDE8F08Bh, 6AFFFFFFh
.text:00401004 dd 0E8068901h, 3F9h, 5E0CC483h, 7374C084h, 83E8E2DBh, 68000008h
.text:00401004 dd 4018FAh, 599E8h, 641E800h, 0E8500000h, 0B0Fh, 0C0855959h
.text:00401004 dd 3AE85175h, 0E8000006h, 68Fh, 0B74C085h, 40100068h, 0AEBE800h
.text:00401004 dd 0E8590000h, 651h, 64CE8h, 626E800h, 6DE80000h, 50FFFFFFh
.text:00401004 dd 0B24E8h, 12E85900h, 84000006h, 0E80574C0h, 0ACDh, 0FFFF53E8h
.text:00401004 dd 77FE8FFh, 0C0850000h, 6AC30175h, 659E807h, 0E8CC0000h
.text:00401004 dd 61Eh, 0E8C3C033h, 7ADh, 0FFFF2FE8h, 0ECE850FFh, 5900000Ah
딱 봐도 메인 함수에 대한 보안이 되어 있다는 것을 알 수 있다.
일단 코드를 따라 가보자.
.text:00401260 jmp loc_4010D9
main 함수를 호출하는 과정에서 해당 코드가 수행되었다.
뭔가 느낌이 오는가? 아직 아무것도 알 수 없다면 우리는 다음 단원에서 밝혀보자.
'reverse engineering' 카테고리의 다른 글
1.3메인 함수와 사용자 정의 함수 찾기 (VS 옵션 코드 이해) (0) | 2021.10.13 |
---|---|
1.2메인 함수와 사용자 정의 함수 찾기 (VS 옵션 코드 이해) (0) | 2021.10.13 |
1.4 숨어 있는 실행파일 확인(UPX 패킹시) (0) | 2021.10.06 |
1.3 숨어 있는 실행파일 추출2 (0) | 2021.10.06 |
1.2 숨어 있는 실행파일 추출1 (0) | 2021.10.06 |