如何获取可执行文件的各块的RVA,Offset.(200分)

  • 主题发起人 主题发起人 hying95
  • 开始时间 开始时间
H

hying95

Unregistered / Unconfirmed
GUEST, unregistred user!
我选择一个可执行文件后,输入Offset,可得到RVA
 
再顶一次
 
是太简单,没人愿意回答?
还是太难,回答不了?
 
吃完饭试试回答
 
ImageBase:= GetModuleHandle(nil);
ImageBase + $10000 一般就是可执行文件的 rva
可以用createprocess的suspend打开文件,再 GetModuleHandle 就知道了。
 
象这样的:
Object01: CODE RVA: 00001000 Offset: 00000400 Size: 000EF000 Flags: 60000020
Object02: DATA RVA: 000F0000 Offset: 000EF400 Size: 00002600 Flags: C0000040
Object03: BSS RVA: 000F3000 Offset: 000F1A00 Size: 00000000 Flags: C0000000
Object04: .idata RVA: 000F5000 Offset: 000F1A00 Size: 00002A00 Flags: C0000040
Object05: .tls RVA: 000F8000 Offset: 000F4400 Size: 00000000 Flags: C0000000
Object06: .rdata RVA: 000F9000 Offset: 000F4400 Size: 00000200 Flags: 50000040
Object07: .reloc RVA: 000FA000 Offset: 000F4600 Size: 00010000 Flags: 50000040
Object08: .rsrc RVA: 0010A000 Offset: 00104600 Size: 00046AE0 Flags: 50000040
Object09: .IIDKin RVA: 00151000 Offset: 0014B200 Size: 00001400 Flags: E0000020
 
这样没意义,如果软件被加了壳就取不到了。
 
TO 白河愁
我就需要这样,把这样的信息放到MEMO中.
 
加壳后这些都不存在,你只能获得壳程序的 RVA,所以是毫无意义的。
 
是这样的,我想给一个EXE文件手工构造一个输出表,前几天在看雪上发问,得到提示,叫我看PE文件结构,这几天天都在弄,现在已写了一个小程序,可以先给EXE文件增加一个新块,然后用工具查看最后一个块RVA,OFFSET,然后把它填入程序中,现在已可以得到正确的ASCII码,然后用Hex WorkShop工具把数据填入相应的地址.
我现在想编程获取块的RVA,OFFSET,得到数据后直接把数据写入相应位置,不知这样说你能否明白?
 
我当然明白,但你随便用upx压缩一个程序,然后用 tdump 看看会出什么?
那就是说就算你的程序做得跟 tdump 一样,对一些文件也是无法获得信息的.
 
我是要对解压的或者跟本就没加压的程序操作.
 
解压的话就是脱壳,基本是没可能的.
对不加压的操作,可以参考peedit的代码
 
给个地址链接
 
请给出"peedit的代码"链接
 
搜索 深入windows核心编程 delphi版配套光盘代码,似乎2ccc就有
 
其实"深入windows核心编程"我的电脑里就有,只资料较多,下载后没去看,多谢您白河愁.给你加分了.
 
后退
顶部