728x90

RVA to RAW

1. RVA = 5000์ผ ๋•Œ File offset์€?

๋จผ์ € ํ•ด๋‹น RVA๊ฐ’์ด ์†ํ•œ ์„น์…˜์„ ์ฐพ์•„์•ผ ํ•จ.

  • RVA 5000 -> ์ฒซ ๋ฒˆ์งธ ํ…์ŠคํŠธ ์„น์…˜์— ์†ํ•ด์žˆ์Œ(ImageBase 01000000์„ ๊ณ ๋ คํ•ด์„œ VA๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ)

๋น„๋ก€์‹์— ๋”ฐ๋ผ ๊ณ„์‚ฐ.

  • RAW = 5000(RVA) – 1000(VirtualAddress, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ—ค๋” – ํ…์ŠคํŠธ ์„น์…˜๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ) + 400(PointerToRawData) = 4400
  • VirtualAddress๊ฐ€ 1000์ธ ์ด์œ ๋Š” Memory์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 01001000์—์„œ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ 1000์ด๋‹ค. (ImageBase ๊ฐ’์„ ๋นผ๋ฉด) PointerToRawData ๊ฐ’์ด 400์ธ ์ด์œ ๋Š” File์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 00000400์—์„œ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2. RVA = 13314์ผ ๋•Œ File Offset์€?

  • RVA = 13314๋Š” ์„ธ ๋ฒˆ์งธ ์„น์…˜์ธ (.rsrc)์— ์†ํ•ด์žˆ์Œ.
  • RAW = 13314(RVA) - B000(VirtualAddress) + 8400(PointerToRawData) = 10174

3.RVA = ABA8์ผ ๋•Œ File Offset์€?

  • RVA = ABA8๋Š” ๋‘ ๋ฒˆ์งธ ์„น์…˜์ธ (.data)์— ์†ํ•ด์žˆ์Œ.
  • RAW = ABA8(RVA) - 9000(VirtualAddress) + 7C00(PointerToRawData) = 97A8
RAW์˜ ๊ฒฐ๊ณผ๋Š” 97A8์ธ๋ฐ ์ด๋Š” File Offset์—์„œ ๋ณผ ๋•Œ ์„ธ ๋ฒˆ์งธ Section์— ์†ํ•ด์žˆ๋‹ค.

RVA๋Š” ๋‘ ๋ฒˆ์งธ Section ์ธ๋ฐ RAW๋Š” ์„ธ ๋ฒˆ์งธ Section์ด๋ผ๋Š” ๊ฒƒ์€ ๋ง์ด ์•ˆ ๋˜๋ฏ€๋กœ  "ํ•ด๋‹น RVA(ABA8)์— ๋Œ€ํ•œ RAW ๊ฐ’์€ ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค." ๋ผ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค.
์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ ์ด์œ ๋Š” ๋‘ ๋ฒˆ์งธ Section์˜ VirtualSize์˜ ๊ฐ’์ด SizeOfRawData ๊ฐ’๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 


โ€ป ์ฐธ๊ณ 

https://tyeolrik.github.io/reversing/2017/03/15/Reversing-12-RVA-to-RAW.html

 

RVA to RAW

Hello, I am TyeolRik, Newbie Developer

tyeolrik.github.io

 

+ Recent posts