97, 1/5 회원가입  로그인  
   spe
   dll 리버싱 할 때 주소 계산법 질문이요ㅠ!

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=86 [복사]


안녕하세요~

리버스 엔지니어링 바이블로 공부하다가 궁금한 점이 생겼는데 여기 밖에 질문할 곳이 없어서 글을 써봅니다ㅠ!

dll 리버싱 할 때 dll이 로드되는 장소가 겹치게 되면 imagebase가 달라지기 때문에, 주소를 간단한 공식을 이용해서 구해야 한다고 이해를 했는데요,

여기서 주소를 구할 때...
base address + base of code를 하라는 데 무슨 말인지 모르겠어요;;
인터넷에 찾아보았더니 imagebase + rva = va란 말도 나오는데
두 공식이 같은 공식인가요? 그리고

각 공식의 base address, base of code, imagebase, rva, va는 무슨 뜻인지 아는데 저 공식이 의미하는 것이 무엇인지 모르겠어요ㅠㅠ

도움부탁드립니다ㅠㅠ

  Hit : 4727     Date : 2014/12/26 01:16



    
kyj9206 base address는 일종의 기준점이라 생각하시면 됩니다. base of code는 그 기준점에서 코드가 얼마만큼 떨어져 있냐(offset이라고도 하죠)를 의미합니다.
base of code = rva, base address = imagebase 이렇게 됩니다. va는 프로그램이 시작 하고 난 후 동작 할때 코드가 올라가 있는 실제 주소를 뜻합니다.
2014/12/27  
cd80 dll이든 프로그램 자체든 프로세스에 올라갈때 파일이 한꺼번에 특정 기준주소부터 올라가는데
파일 상에서의 오프셋이 말씀하신 base of code, rva고
특정 기준주소가 base address
그 기준주소부터 파일이 다 들어가있으니까 그 기준주소 + 파일상에서의 오프셋이
실제 메모리에 들어간 그 오프셋이 되고 이게 va에요
2014/12/28  
spe 알려주셔서 감사합니다~ 간단한 거였네요! 2015/01/06