함수 링크 순서 정해주기
오후 12:48 2005-10-28 조경민 bro@shinbiro.com
========================================================
vc linker 옵션중 /ORDER 옵션으로 링크시 함수 순서를 결정해줄 수 있다.
문법
/ORDER:@filename
링크된 함수 순서는 링크시 /map 옵션을 주어 map file을 생성하게 해서
알 수 있다.
1. Project/Settings/C&C++ 에서 /Gy 옵션을 추가한다.
2. func.txt 파일을 만든다. 파일 안에 순서대로 링크할 함수들을 추가한다.
만일 start라는 함수를 처음 링크하고자 할때 func.txt 안 내용
start
3. Project/Settings/link 에서 /ORDER:@func.txt 와 /MAP (또는 Generate Map File선택)을 추가
컴파일해본다.
맵파일을 보면 링크 순서가 바뀌어 실제 가상주소상 위로 올라옴을 알 수 있다.(Rva+Base)
원래는
Address Publics by Value Rva+Base Lib:Object
0001:00000000 _int0 00010400 intasm.obj
0001:0000000e _jump_to 0001040e intasm.obj
0001:00000020 _start 00010420 f _main.obj
:
이었는데, 아래처럼 바뀐다.
Address Publics by Value Rva+Base Lib:Object
0001:00000000 _start 00010400 f _main.obj <- 처음으로 올라왔다.
0001:000000e0 _int0 000104e0 intasm.obj
0001:000000ee _jump_to 000104ee intasm.obj
:
오후 12:48 2005-10-28 조경민 bro@shinbiro.com
========================================================
vc linker 옵션중 /ORDER 옵션으로 링크시 함수 순서를 결정해줄 수 있다.
문법
/ORDER:@filename
링크된 함수 순서는 링크시 /map 옵션을 주어 map file을 생성하게 해서
알 수 있다.
1. Project/Settings/C&C++ 에서 /Gy 옵션을 추가한다.
2. func.txt 파일을 만든다. 파일 안에 순서대로 링크할 함수들을 추가한다.
만일 start라는 함수를 처음 링크하고자 할때 func.txt 안 내용
start
3. Project/Settings/link 에서 /ORDER:@func.txt 와 /MAP (또는 Generate Map File선택)을 추가
컴파일해본다.
맵파일을 보면 링크 순서가 바뀌어 실제 가상주소상 위로 올라옴을 알 수 있다.(Rva+Base)
원래는
Address Publics by Value Rva+Base Lib:Object
0001:00000000 _int0 00010400 intasm.obj
0001:0000000e _jump_to 0001040e intasm.obj
0001:00000020 _start 00010420 f _main.obj
:
이었는데, 아래처럼 바뀐다.
Address Publics by Value Rva+Base Lib:Object
0001:00000000 _start 00010400 f _main.obj <- 처음으로 올라왔다.
0001:000000e0 _int0 000104e0 intasm.obj
0001:000000ee _jump_to 000104ee intasm.obj
:
'KB > C/C++' 카테고리의 다른 글
typeof (0) | 2006.06.28 |
---|---|
code profiler (0) | 2006.04.17 |
RSA를 이해하기 위한 코드 (0) | 2005.03.25 |
[펌] vc 5, 6 stl 버그 픽스 (0) | 2004.09.10 |
[펌] C++ Reverse Disassembly (0) | 2004.09.10 |