首页
社区
课程
招聘
[讨论]PE文件中的函数替代方法
发表于: 2012-5-30 17:45 5655

[讨论]PE文件中的函数替代方法

2012-5-30 17:45
5655
如果想把PE文件中的某个函数(包括子函数)用另一个PE文件中的某个函数(包括子函数)替代,有没有什么好的方法可以实现?

比较笨的方法是在原PE文件中增加一个section,然后在ollydbg中手工copy另一个PE文件中的相应函数及其子函数,不过如果子函数调用比较多的话,这种方法就不太可行。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
难易程度取决于2个PE文件的特性,及2个函数的特性。

如果后一个PE文件有重定位表,那就会比较好办。
如果没有的话,那就只能用你的笨方法了。
2012-5-30 18:04
0
雪    币: 484
活跃值: (269)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
这个我不太懂,用什么工具可以看出来有没有重定位表?另一个问题是怎样可以在生成PE文件时带重定位表呢?
2012-5-30 18:16
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
4
.reloc就是重定位段,编译器设置下编译选项就会有重定位段
2012-5-30 19:18
0
雪    币: 484
活跃值: (269)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
能帮我看下是不是在h/pc.mak的下面这行加上某个选项?我Google了下,还是不会用。麻烦你,谢谢!

编译的时候是在utils下run "nmake /f pc.mak"

CLFLAGS = /nologo /W2 /D_CONSOLE /D$(PLAT_INCLUDE) /DPC /DWINNT /DFLEXLM_KITBUILD $(CLRELEASE) $(CLSTATIC) /YX $(CL_STATIC_MD) /DLM_INTERNAL /D_LMGR_WINDLL  $(CLCRT) $(CL16_32)   /I .  /I ..\h  /I ..\machind   /I ..\patches  /c
上传的附件:
2012-5-31 09:33
0
雪    币: 484
活跃值: (269)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
找了个带.reloc重定位表的,把PE整个copy到另一个PE尾部并修正PE head后可以看到新加进的PE函数,子函数调用也自动重新定向了,可是原来的.data部分的数据调用却没自动重定向,这个是什么原因呢?是不是.data还得有一个单独的.data_reloc段?
2012-5-31 16:18
0
雪    币: 484
活跃值: (269)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
谢谢"无聊的菜鸟"的耐心指点, 终于替换成功了, 现在还有些小问题, 解决了再结帖, 再次感谢.
2012-6-2 17:37
0
雪    币: 484
活跃值: (269)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
可以了,再次感谢“无聊的菜鸟”。
2012-6-12 12:18
0
游客
登录 | 注册 方可回帖
返回
//