首页
社区
课程
招聘
[求助]关于手动恢复输入表的问题
发表于: 2009-6-2 22:59 4617

[求助]关于手动恢复输入表的问题

2009-6-2 22:59
4617
  在书上P339的的表13-4可以看到其中的First Thunk值分别为2000H和200cH,这两个值是如何得到的?(在原程序中可以看到2000H和200cH为First Thunk的未加壳前的值,可是在脱壳后我们要怎样获得未加壳前的值?)

  还有就是为什么First Thunk的值不可以改变?(First Thunk所指向的函数地址一起随之改变也不可以)

  根据P281对IAT的定义IAT在磁盘上时,其值应该是函数名在磁盘中的地址,而不是实际内存中的地址,可是dump出来后其值变为函数的实际地址,照样能正常运行,请问这是为什么?请指教,谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 50161
活跃值: (20640)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
First Thunk的值,可以通过数据目录表指针来获得,其指向IID结构,你再根据IID定义,就可知道First Thunk的位置了。

dump出的程序能运行,只是在你dump那个系统平台上能运行,你换了个系统平台,函数地址就不对了,运行会出错。
2009-6-3 22:47
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢坛主的指教,学习了
2009-6-3 22:54
0
雪    币: 214
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
正好 我也看到这里了
查Reb_IT.exe的输入表等于6000H  转换后的磁盘偏移是800H(没有DUMP) 和书上说的不一样 我是用用winhex查看
DUMP后 磁盘偏移是6000H  用winhex重建后就能运行了。

我不知道我想问什么 但为什么和书上的答案不一样
2009-6-4 16:24
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
加壳后的是6000h,未加壳的是2014,是不是加壳的原因改变了?书上分析的好像是未加壳前的吧
2009-6-5 06:43
0
雪    币: 214
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
恩 我我也觉得书上分析的是加壳前的。  因为我看了加壳之后的输入表 根本就看不到。
2009-6-5 08:48
0
游客
登录 | 注册 方可回帖
返回
//