今天发现LordPE的中FLC(File Location Calculator)计算地址的一个BUG。
测试文件,
壳:Krypton 0.5 -> Yado/Lockless
EP:0x00077000
File Offset: 00001000
ImageBase: 00400000
SectionAlignment::00001000
FileAlignment::00000200
NumberOfSections:0005
最后一节信息:
name v.offset r.size r.offset r.size flags
_!_!_!_ 00077000 00135c00 00001000 00134315 E0000020
当计算文件offset为00077000的VA和RVA,载入文件,打FLC,在Offset框中输入00077000(我要找到的文件偏移量),
计算结果:1 VA,00478000 (计算的不正确)
2 RVA,00078000(计算的不正确)
3 Additional Information一栏的输出的信息正确。
跑到VA处,不对,被忽悠了。看来只得自已动手计算了。
比较了一下文件偏移00077000在最后一节_!_!_!_ 中,开始计算:
MyVA(0x00077000) = ImageBase + v_Last.offset + (0x00077000 - r_Last.offset) = 0x00400000 + 0x00077000 + (0x0007700 - 0x1000)
= 0x004ED000
跳到0x004ED000,就是那个我要的VA啦。
不知道为什么LordPE计算结果不对,有时LordPE在计算时会无故挂去,不解。有待研究,学习学习。~~
测试文件,
壳:Krypton 0.5 -> Yado/Lockless
EP:0x00077000
File Offset: 00001000
ImageBase: 00400000
SectionAlignment::00001000
FileAlignment::00000200
NumberOfSections:0005
最后一节信息:
name v.offset r.size r.offset r.size flags
_!_!_!_ 00077000 00135c00 00001000 00134315 E0000020
当计算文件offset为00077000的VA和RVA,载入文件,打FLC,在Offset框中输入00077000(我要找到的文件偏移量),
计算结果:1 VA,00478000 (计算的不正确)
2 RVA,00078000(计算的不正确)
3 Additional Information一栏的输出的信息正确。
跑到VA处,不对,被忽悠了。看来只得自已动手计算了。
比较了一下文件偏移00077000在最后一节_!_!_!_ 中,开始计算:
MyVA(0x00077000) = ImageBase + v_Last.offset + (0x00077000 - r_Last.offset) = 0x00400000 + 0x00077000 + (0x0007700 - 0x1000)
= 0x004ED000
跳到0x004ED000,就是那个我要的VA啦。
不知道为什么LordPE计算结果不对,有时LordPE在计算时会无故挂去,不解。有待研究,学习学习。~~