Author Topic: exe VA 2 RAW  (Read 801 times)

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
exe VA 2 RAW
« on: December 16, 2005, 10:58:33 PM »
Uz delsi dobu jsem resil problem "Jak to sakra ten Olly dela, ze umi najit skutecnou vzdalenost instrukce v EXE?"
skutecnou = na HD

Pro nazornost ukazka instrukce targetu v pameti
- obrazek vlevo
a ta sama instrukce targetu na HD
- obrazek vpravo

Chtel sem tedy zjistit jak Olly prekopal 0044D3BF -> 0004C7BF.
Na netu se mi hledat nechtelo, tak mi nezbylo nic jinyho nez to vyresit sam.
Vickrat uz to neudelam, nestoji to za to :rolleyes:

Reseni:
RAW = skutecna adresa instrukce v souboru
VA = adresa instrukce v pameti
secP2RD = IMAGE_SECTION_HEADER.PointerToRawData
secVA = IMAGE_SECTION_HEADER.VirtualAddress

Code: [Select]
RAW = VA - ImageBase - secVA + secP2RD
RAW = 0044D3BF - 00400000 - 1000 + 400
RAW = 0004C7BF


Kdyz treba potrebuje zjistit adresu instrukce(na HD) v .CODE sekci, tak
secP2RD = CODE.PointerToRawData
secVA = CODE.VirtualAddress

kdyz chcete znat adresu instrukce(na HD) v .DATA sekci, tak
secP2RD = DATA.PointerToRawData
secVA = DATA.VirtualAddress

tot vse, vidim ze vas to obohatilo :D

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: exe VA 2 RAW
« Reply #1 on: May 31, 2007, 08:55:43 AM »
A čo takýto príklad...?
Code: [Select]

[B]Optional header[/B]
# Section alignment Entry point File alignment Image base
02 00001000 0000101C 00000200 00400000

[B]Section headers[/B]
name Virtual size Virtual address Size of raw data Pointer to raw data
0 00004000 00001000 0000000C 0000001C
1 00002004 00006000 00000D03 00000200
Aký je raw offset pre entrypoint?
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: exe VA 2 RAW
« Reply #2 on: May 31, 2007, 04:19:42 PM »
Podle uvedeneho postupu to vyjde:
RAW = RVA - secVA + secP2RD
RAW = 101C - 1000 + 1C
RAW = 38h = 56d

Docela maly cislo.
To mi pripomina
http://www.phreedom.org/solar/code/tinype/tiny.97/

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: exe VA 2 RAW
« Reply #3 on: June 04, 2007, 08:13:04 PM »
Hmm,  vypočítaný raw offset 0x38 pre entrypoint sa mi nepozdáva byť správnym výsledkom.
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: exe VA 2 RAW
« Reply #4 on: June 04, 2007, 08:33:20 PM »
a duvod?..

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: exe VA 2 RAW
« Reply #5 on: June 11, 2007, 11:59:45 PM »
Prejdi si tú tabuľku e?te raz, a pozorne. Je tam jedna dôle?itá hodnota. Určite na to príde?...
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation