Dependency Walker PE模块依赖性分析工具
摘要
本文主要讲解利用Dependency Walker为Qt的exe程序添加dll,以使得其可以在客户的机器上运行。
Dependency Walker 程序的目录
PE模块依赖性分析
打开depends.exe,有3种方式引入待分析的文件:
- File -> Open
- 菜单栏 -> 文件夹图标
- 将待分析的程序拖入depends程序界面
它可以分析exe或dll文件。
我这里拖入一个exe文件,弹窗报错。这是因为该exe文件所需的相应dll不在exe的当前目录下,也不再系统环境变量的目录下。
模块依赖性分析结果如下。对于Qt程序来说,左侧目录树一般展开3级就足够了。
依赖树的5种不同图标的含义
- 链接的非系统库
- 链接的64位系统库
- 链接到的系统库的软链接(意思就是该库在父节点或者前面的子节点已经出现过了)
- 链接到的非系统库的软链接(意思就是该库在父节点或者前面的子节点已经出现过了)
- 链接到的库,但是找不到该库文件
在打包程序的时候一般只需要复制非系统库到当前exe的目录下即可,也就是说找出图标为“非系统库”的DLL就好了()。
该可执行文件需要引用的DLL在Module面板的滑动条拉到最底处
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
- libwinpthread-1.dll
- Qt5Core.dll
- Qt5SerialPort.dll
查看该库的位置
在该库上右击 -> properties…(Alt + Enter) -> “xxx 属性”对话框 -> “安全”选项卡 -> 对象名称(即为该文件的目录了。
后来,在试验中发现,比如 Qt 的桌面程序,需要拷贝 plugins/platforms文件夹到该可执行目录下。platforms里面包含一些dll,但是在Dependency Walker PE中并不会显示出这些dll。如果不拷贝该目录的话会报错
plugins/platforms目录结构
- qminimal.dll
- qminimald.dll
- qoffscreen.dll
- qoffscreend.dll
- qwindows.dll
- qwindowsd.dll
Dependency Walker PE模块依赖性分析工具相关推荐
- [转]使用Dependency Walker工具查看DLL文件
DLL是动态链接库的简称,每个DLL文件都相当于一个封闭的函数库.本文主要讨论如何使用DependencyWalker工具查看DLL文件内的导入函数与导出函数. DependencyWalker软件 ...
- DLL依赖性查看工具depends(dependency walker)
前言 软件包中常含很多扩展名DLL的文件,这些就是经常说的"动态链接库",DLL是Dynamic Link Library(即"动态链接库")的缩写.从Micr ...
- 查找缺失的DLL工具Dependency Walker
最近处理64位软件在32位的编译问题,遇到了一些dll加载不到(32位程序找不到对应的32位dll)导致程序启动不起来的情况,最后借助了工具Dependency Walker把问题找出来了,这里记录一 ...
- PEV - PE文件分析工具
PEV 支持 Linux.Windows.MAC OS X 三种操作平台对PE文件进行分析. 下载地址: //本人推荐 :github 的代码,因为 这个 readme 更完整. https://g ...
- 病毒分析工具和使用方法(一)
加壳验证工具 所谓病毒加壳,是指经过系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩.加密驱动程序),以达到缩小文件体积或加密程序编码,从而使病毒文件逃过杀毒 ...
- Dependency Walker使用说明[转]
在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字--动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...
- 查看依赖关系 dependency walker(depends)
简单介绍 Dependency Walker是一个免费的实用工具,它可以扫描任何32位或64位Windows模块(EXE,DLL,OCX,SYS等),并建立所有相关模块的分层树形图.Dependenc ...
- 静态代码分析工具列表--常用静态代码分析工具介绍
代码检测简介 本文是一个静态代码分析工具的清单,但是为公司产品需要付费使用.共有37个公司,有些公司包含多个工具.其中27个公司有多语言 工具,1个公司为PHP工具.2个公司为.NET工具.1个公司为 ...
- NLP-生成模型-2017-Transformer(二):Transformer各模块代码分析
一.WordEmbedding层模块(文本嵌入层) Embedding Layer(文本嵌入层)的作用:无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示, 由一维转为多维 ...
最新文章
- vs mfc数据与控件绑定错了_如何进行数据趋势分析?VS扩展工具——C1迷你图控件了解一下...
- hdu 5285 二分图黑白染色
- 思维导图 - 测试技术扩展:Postman接口测试、Sonar白盒测试、Sonic移动测试、Python操作FTP服务器
- (Easy) FizzBuzz LeetCode
- 计算机系统基础:程序与运算
- 活灵活现用 Git --技巧篇
- DropDMG for Mac(dmg打包软件)
- pytorch标签onehot编码_pytorch将标签转为onehot
- 计算机专业毕业设计题目大全 (各类型系统设计大全)
- 【计算机组成与设计:硬件/软件接口】第三章:计算机的算术运算
- VS2015,错误RC1015: 无法打开包含文件afxres.h
- win7系统配置smb服务器,技术编辑为你解说win7系统打开smb服务的解决方法
- 高级会计职称计算机考什么,会计高级职称考哪些科目
- Solidity 中的函数状态可变性
- 第7章第29节:四图排版:四张图片并列排版 [PowerPoint精美幻灯片实战教程]
- shoug oracle,oracle 浅谈索引
- 网上流量卡这么便宜,线上申请的流量卡有虚标吗
- Unity3D游戏开发之网络游戏服务器架构设计(如何做一名主程)
- kali终端打不开以及msfconsole打不开
- 2月综艺节目网络关注度榜出炉 《王牌对王牌》跃居榜首
热门文章
- 24BYJ48电机的使用,带驱动程序
- JavaScript:再谈Tasks和Microtasks
- posix_kill 信号
- 在C++项目中引入Lua(AlphaGo使用的方案)
- 手机安全卫士——进程管理
- ie6下js更新元素display:block后,仍然不显示的hack办法
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
- 自动注册 IIS6 的 MIME 类型
- 让Exchange 2010 (2007适用)可以收发外部邮件
- 面试必问一:Java 中 == 和 equals 的区别你知道吗