bueno, entonces lo de 0x17... es la frase y tambien virtualsize
ya entendi mas sobre los multiplos que me tenia confundido
pero a ver, para obtener VirtualAddress, como mencionas en el taller, hay que regresar una sección y tomar el virtualaddress + SizeOfRawData que seria algo asi
000001a0 2e 69 64 61 74 61 00 00 98 00 00 00 00 20 00 00 |.idata....... ..|
2e 69 64 61 74 61 <--- esto debe ser .idata
00 00 <--- esto debe ser virtualsize
98 00 00 00 <---- esto es VitualAddress
00 20 00 00 <---- esto es SizeOfRawData
bueno, esto esta en little endian, lo que seria
si sumo esos 2, seria 00 02 00 98, equivalente a 2098, si lo redondeo seria 3000
y finalmente quedaria asi, cierto?
00 00 00 98
00 02 00 00
/////////////
00 03 00 00
para encontrar SizeOfRawData entonces seria lo que sigue de VirtualAddress
000001a0 2e 69 64 61 74 61 00 00 98 00 00 00 || 00 20 00 00 <--- seria este
entonces si busco FileAlignment + SizeOfRawData seria
FileAlignment: -> Lo encontramos con 0x98 + 0x24 = 0xBC y tiene un valor 00 02 00 00 (real: 00 00 02 00).
seria 0x220, su multiplo seria 400
aqui una duda, porque 400?, y porque no 300?
y para encontrar PointerToRawData, seria el siguiente de SizeOfRawData
000001b0 00 02 00 00 <---- aqui se encuentra 00 04 00 00 00 00 00 00 00 00 00 00 |................|
si se lo sumo al resultado de FileAlignment + SizeOfRawData + PointerToRawData... seria
0x400 + 200 = 0x600 <--- 00 06 00 00
espero haber entendido, si tengo algun error, espero puedan coregirme
bueno, al rato intentare hacerlo en windows, salu2