首页
社区
课程
招聘
hook 的小疑问
发表于: 2011-1-29 08:57 3286

hook 的小疑问

2011-1-29 08:57
3286
看到http://bbs.pediy.com/showthread.php?t=126226这篇文章看到作者都是在createprocess的情况下用CREATE_SUSPENDED的方法暂停线程,然后用createfile和createfilemapping修改pe文件的输入表地址。
因为此时的文件并非是pe装载器装载后的,若pe装载器已经装载了
我想请问,这时候程序已经动态加载到内存里头了,此时由于内存块的对齐力度和磁盘的对齐力度不一样,原始pe文件的里e_lfanew字段就不准确了,那现在如何去找到输入表的地址呢?

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
.你说的那个帖子里面有这样修改的代码啊.在那个DLL要修改SHELL32.DLL这个地方,就是DLL里面的void HookCreateProcess( bool bHook)这里,是通过查找PE头的结构来实现找到,IAT的IATTHUNK部分.然后替换掉IATTHUNK里面的OFFSET实现了HOOK,当然你要确保你的IAT表示正确的,比如说.加壳的程序可能就不能这样了,本人菜鸟.如果有什么说错的地方,请高手包涵.
2011-1-30 05:50
0
游客
登录 | 注册 方可回帖
返回
//