본문 바로가기

Programming/Linux_Kernel

linux - t32 로 code 영역 dump 뜨기

코드영역을 비교해 보려고 다음과 같이 덤프를 떳는데
한참 작은 size 만 덤프가 되었다.

data.save.binary "D:\c_expat_code_2.dat" 0x40031000++0x1d000

다시한번 시도해 보니 bus 애러가 난다.

이유인 즉슨...
linux 는 4kb 단위로 demanding page 를 한다.
따라서 hit 가 되지 않은 code 영역은 ram 상에 없고, map 되어 있지 않으므로 애러가 나고
덤프되던 영역까지만 저장이 되는 것이다.

코드 영역이
40031000-4004e000 r-xp 00000000 b3:02 25236034   /mnt/data/factoryfs/lib/libexpat.so.1.5.0
이정도 크기라면,
해당 영역을 뒤져가며 다 dump 를 떠야지만 code 유효성 검사를 할 수 있다.