如图,电子税务局客户端丢失inet70.bpl, DLL文件或导出函数加载失败,怎么处理求大神帮忙

3个很精美的登陆界面全都是用HTML5+CSS3開发的,所以可能不适合低版本IE浏览器大家可以下来看看,做的超级漂亮的

今天同事测试时发现界面有个模塊始终无法显示使用Process Explorer查看发现对应dll没有加载。然后开始排查问题:

1.首先看exe有没有加载这个dll的行为

运行,发现成功断下来继续g完成,查看依旧没有加载B.dll

A.exe中尝试加载了B.dll但是B.dll因为某种原因加载失败

2.然后,开始看B.dll是因为什么加载失败

最简单的就是我们去看下LoadLibrary执行结果

怎么查看当前加载的模块名称呢,我们知道这个名称是LoadLibrary的第一个参数因此可如下获取当前加载的模块名

然后就是一个断点慢慢走,直到模块洺为B.dll  (为了加快速度也可以先Load一遍,大概找下规律先用sxe ld断到B.dll前几个dll,然后再设置LoadLibrary断点)

但实际上查看发现B.dll是存在的此时可以猜想

B.dll静态依賴的某个dll不存在了


 sfc.dll缺少在很多精简Ghost系统上存在,依赖这个文件可以检测一个文件是否系统文件为了解决这个静态依赖,可以考虑动态Loadlibrary sfc.dll导絀函数来检测sfc.dll不存在时可以考虑按照System32等系统目录做简单过滤判断。

我想楼主以往调试时应该是进过系统领空吧,比如对MessageBoxA下断单步跟进就到了kernel32.dll系统dll

既然有这种经验怎么不自己写个exe调用dll的函数跟进去看看呢?

我要回帖

更多关于 bpl1 的文章

 

随机推荐