NOWS/Security

Firmware 이해하기 (2) IDA

emzei 2017. 9. 6. 17:56

printf("abc");


파라미터 셋업 - 파라미터 주소 설정

출력 함수 호출


주소는 어떻게 알까?

컴파일 후, 링커가 설정해준다.



시작 주소값 확인.


1) li 파라미터 값 확인하기

2) UART Boot Message 확인하기

Entry at 0x80001000

Starting program at 0x80001000

...

3) BSS 초기화 코드 찾아서 Load address 찾기

BSS 영역 : 초기화되지 않은 전역변수, 초기화되지않은 정적변수

 

nop

li $a0, 0x1234 //BSD 시작주소

li $a1, 0x2344 //BSD 끝주소



BSS 초기화하는 코드 - 일정한 패턴이 있음

BSS 시작주소를 알 수 있다

" BSS 시작주소 - Boot Code Size = Boot Code " 시작주소 추정 가능