文件夹下两个动态库(ssse32.dll)同名,解决读卡故障

  • A+
所属分类:体育平台

文件夹下两个动态库(ssse32.dll)同名,解决读卡故障

事件:

开发人员提供好开发的软件(如软件是下发的),需要适配读卡器,软件功能需要两种读卡器,需要两种卡种类型,硬件如:德卡,华旭等。本次遇到的解决问题发现,两个读卡器放自己硬件配饰的dll是可以独立读卡的,替换时发现他们共有一个ssse32.dll的文件。就是硬件读卡器的设备文件。

过程:

1、用dll to c(dll2c)反编译了ssse32.dll文件,发现文件的确不兼容的依据,某一ssse32.dll再次依赖下层的dll(非系统层的dll)。

2、利用eXeScope、depends等工具查看硬件提供的硬件文件的dll依赖顺序。靠经验查看

3、思路,如果有条件查看相关源代码,看看都可以调用哪个文件来执行ssse32.dll,本次无法借鉴源码。

4、由于设备医保读卡器,发现有个yibao.dll,医保都可以配送一个单机读卡软件。足各删除dll,形成文件的最少运行。

5、尝试了把医保读卡器文件放到下层目录(子目录),软件配合调用动态库路径,由于是PB开发,未果。

6、还尝试了使用查看工具PEiD、Die工具尝试是否有加壳,用ollydbg查看相关汇报执行。

思路:

1、在程序调用时更换ssse32.dll,无源码,执行力难,且有的环境开机就加载dll了;

2、反编译两个ssse32.dll,重新生成新的一个ssse32.dll,合并要求反编译技术、汇编开发等技术;

3、找到调用ssse32.dll的上层文件,把上层文件里面调用的ssse32.dll改名。

解决:

按照思路中的1、2难度高,可行性高的方法还是思路3。先找到exe和ssse32.dll中间的文件yibao.dll,再次反编译,看ollydbg汇报执行,细节不谈,未果。

何不用winhex直接查看,果然在yibao.dll 中找到ssse32.dll,修改成ssse33.dll,目录下把医保提供的ssse32.dll改成ssse33.dll复制到软件根目录。切记winhex修改文件数据不要加长,会影响结构。保持长度一样即可。故障技术上解决。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: