明显一些空间没有被注册。你应该是就copy了源程序过来,而没有将一些控件的DLL文件一同copy过来,并注册进你自己机器的注册表中,这样,你先看下PB程序中各个模块有哪些是单独的非自带的控件模块,比如PDF_view之类的,就是打开winform的时候,不是一个正常的窗口状态的,然后网络上去找下他的目录,一般除了一个控件的源程序外,还有一个dll的文件,这个dll文件需要在注册表中注册,才能使此自写控件能用。
事件:
开发人员提供好开发的软件(如软件是下发的),需要适配读卡器,软件功能需要两种读卡器,需要两种卡种类型,硬件如:德卡,华旭等。本次遇到的解决问题发现,两个读卡器放自己硬件配饰的dll是可以独立读卡的,替换时发现他们共有一个ssse32dll的文件。就是硬件读卡器的设备文件。
过程:
1、用dll to c(dll2c)反编译了ssse32dll文件,发现文件的确不兼容的依据,某一ssse32dll再次依赖下层的dll(非系统层的dll)。
2、利用eXeScope、depends等工具查看硬件提供的硬件文件的dll依赖顺序。靠经验查看
3、思路,如果有条件查看相关源代码,看看都可以调用哪个文件来执行ssse32dll,本次无法借鉴源码。
4、由于设备医保读卡器,发现有个yibaodll,医保都可以配送一个单机读卡软件。足各删除dll,形成文件的最少运行。
5、尝试了把医保读卡器文件放到下层目录(子目录),软件配合调用动态库路径,由于是PB开发,未果。
6、还尝试了使用查看工具PEiD、Die工具尝试是否有加壳,用ollydbg查看相关汇报执行。
思路:
1、在程序调用时更换ssse32dll,无源码,执行力难,且有的环境开机就加载dll了;
2、反编译两个ssse32dll,重新生成新的一个ssse32dll,合并要求反编译技术、汇编开发等技术;
3、找到调用ssse32dll的上层文件,把上层文件里面调用的ssse32dll改名。
解决:
按照思路中的1、2难度高,可行性高的方法还是思路3。先找到exe和ssse32dll中间的文件yibaodll,再次反编译,看ollydbg汇报执行,细节不谈,未果。
何不用winhex直接查看,果然在yibaodll 中找到ssse32dll,修改成ssse33dll,目录下把医保提供的ssse32dll改成ssse33dll复制到软件根目录。切记winhex修改文件数据不要加长,会影响结构。保持长度一样即可。故障技术上解决。
以上就是关于我有一个用PB5.5开发的程序,被我用PB6.5打开时,提示要MIGRATE一下,我按照提示 *** 作了。之后系统提示了很全部的内容,包括:我有一个用PB5.5开发的程序,被我用PB6.5打开时,提示要MIGRATE一下,我按照提示 *** 作了。之后系统提示了很、文件夹下两个动态库(ssse32.dll)同名,解决读卡故障、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)