老文章档案 · 2003 年

调用PE文件中引入表中的函数的方法

破解教程 · 补丁技术 · 2003-09-16 · 作者:Spring.W 人气: · 出处:赢政天下整理收藏)

当我们补丁一个PE文件时,常常要用到调用这个PE文件引入表中的函数,那么怎样来调用呢?要想很透彻的了解其原理,需要对引入表很熟悉,并且要对PE文件的加载机制有所了解。

对于引入表的介绍和PE加载机制,看雪老大的著作上已经介绍的很清楚,只要花点时间,很容易弄清楚。按照下面步骤,即使对不太熟悉引入表的朋友,也能直接使用其中的函数。

准备的工具:LoadPe、Softice或TRW2000

步骤:

1、用LoadPe打开PE文件,查看其目录中的导入表,选中要使用的DLL并纪

录下它的FirstThunk的值(这是IAT表的起始RVA),假设为:E1B7。

2、找到要在这个DLL中要使用的函数,假设为:LoadLibraryA。

3、数一数这个函数在这个DLL函数列表中是第几个,假设为:第3个。

4、那么在补丁中调用这个函数就是:

call dword ptr[e1b7+ImageBase][(3-1)*4]

5、ImageBase的获得:

当我们补丁一个程序时,补丁的起始RVA是已知的(可以根据VA用LoadPe

的FLC计算出来),请看下面程序:

假设补丁开始地址(VA)为:0040d000,通过计算知道对应的RVA为n

0040d000:pushad

0040d001:call 0040d006

0040d006:pop ebp

xxxxxxxx:sub ebp-n-6 ;此时,ebp就是ImageBase,减6是

;pushad 和 call 0040d006的指令长度

xxxxxxxx:call dword ptr[ebp+e1b7][(3-1)*4] ;调用

;LoadLibraryA

.

.

xxxxxxxx:popad

仅此抛砖引玉,欢迎高手赐教其他方法。 (出处:赢政天下整理收藏)

相关文章:

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史