【windows核心编程】注入DLL时BUG排除与调试
DLL注入排除bug的思路步骤。
- 1、在VS中监视输入err,hr检查DLL是否注入成功
- 2、OD断点loadlibraryW,loadlibraryA是否已经注入成功,eax是否有值。
- 3、检查路径是否是中文+空格的路径
- 4、检查注入的DLL是否是当前项目的DLL
OD查看DLL注入模块是否成功
1、将运行注入DLL的exe,将DLL注入到exe中。
2、打开OD-附加被注入的exe进程,然后【查找】-【所有模块中的名称】

3、在loadlibrary处F2下断点,如果不确定是A版本或者是W版本,那么loadlibraryA,loadlibraryW都可以进行下断。

4、点C返回反汇编窗口, 按F7使程序运行,可以在OD窗口-堆栈窗口看到DLL注入成功
5、查看EAX的值是否发生变化,如果为0则表示加载不成功。
VS调试远程线程注入的DLL
1、先编译DLL后,在DLL项目中的属性,【命令】改成注入的exe路径,【调试器类型】调理成混合。

2、VS代码处下断点,没有加载运行本地调试时候的断点状态是感叹号。

3、运行DLL注入的EXE,则看到断点已经被激活

路径是中文+空格的路径,使用DIR /X查看长文件名的短名称
在编写windows批处理脚本的时候,有时候文件或目录中的空格会引起问题,下面这个命令可以查看长文件名的短名称。
C:\>dir /x
驱动器 C 中的卷没有标签。
卷的序列号是 4C49-DDA8
C:\ 的目录
2010-01-12 10:28 3 1.bat
2009-06-17 09:42 0 AUTOEXEC.BAT
2010-01-11 08:57 26,624 Book1.xls
2010-01-11 08:16 8,454 BOOK1~1.XLS Book1.xlsx
2010-01-11 08:57 26,624 Book3.xls
2009-06-17 09:42 0 CONFIG.SYS
2010-02-03 16:56 DOCUME~1 Documents and Settings
2009-12-29 16:56 Drivers
2010-02-20 15:32 PROGRA~1 Program Files
2010-01-19 17:09 TEMP
2010-02-20 15:33 WINDOWS
6 个文件 61,705 字节
5 个目录 21,022,588,928 可用字节
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
参考:
dir /x 查看长文件名的短名称
http://blog.chinaunix.net/uid-20423564-id-1949345.html
【windows核心编程】注入DLL时BUG排除与调试的更多相关文章
- 【windows核心编程】DLL相关(1)
DLL相关的东西 1.DLL的加载方式 隐式: #pragma comment(lib, "XX.lib"); 编译器去查找名为XX.dll的DLL,除了名字相同,该DLL和该LI ...
- 【windows核心编程】DLL相关(3)
DLL重定向 因为DLL的搜索路径有先后次序,假设有这样的场景:App1.exe使用MyDll1.0.dll, App2.exe使用MyDll2.0.dll, MyDll1.0 和 MyDll2.0是 ...
- 【windows核心编程】DLL相关(2)
关于DLL的延迟加载 延迟加载DLL,使用的是隐式加载方式,当为exe使用的DLL指定为延迟加载的时候,连接器会将exe的[导入段]中去除该DLL的相关信息,同时在exe中嵌入一个新的[延迟加载段]表 ...
- 《windows核心编程系列》十九谈谈使用远程线程来注入DLL。
windows内的各个进程有各自的地址空间.它们相互独立互不干扰保证了系统的安全性.但是windows也为调试器或是其他工具设计了一些函数,这些函数可以让一个进程对另一个进程进行操作.虽然他们是为调试 ...
- windows核心编程 DLL技术 【转】
注:本文章转载于网络,源地址为:http://blog.csdn.net/ithzhang/article/details/7051558 本篇文章将介绍DLL显式链接的过程和模块基地址重定位及模块绑 ...
- 《Windows核心编程系列》二十谈谈DLL高级技术
本篇文章将介绍DLL显式链接的过程和模块基地址重定位及模块绑定的技术. 第一种将DLL映射到进程地址空间的方式是直接在源代码中引用DLL中所包含的函数或是变量,DLL在程序运行后由加载程序隐式的载入, ...
- 《windows核心编程系列》十七谈谈dll
DLL全称dynamic linking library.即动态链接库.广泛应用与windows及其他系统中.因此对dll的深刻了解,对计算机软件开发专业人员来说非常重要. windows中所有API ...
- C++Windows核心编程读书笔记
转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...
- 【转】《windows核心编程》读书笔记
这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入 ...
随机推荐
- MT【212】合作共赢
一次会议有1990位数学家参加,每人至少有过1327位合作者,求证:可以找到4位数学家,他们中每一个都合作过. 解答:记与$v_i$合作过的数学家构成集合$A_i(i=1,2,\cdots,1990) ...
- 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(动态规划,斜率优化,决策单调性,线性规划,单调队列)
洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是 ...
- 04 Zabbix4.0系统配置触发器trigger
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 04 Zabbix4.0系统配置触发器trigger 请点击查看Zabbix3.0.8版本trig ...
- 自学Aruba6.2-控制器基本维护操作(web页面配置)
点击返回:自学Aruba之路 自学Aruba6.2-控制器基本维护操作(web页面配置) 1 显示当前控制器版本 Dashboard---Controller中 2 升级Aruab os版本 Main ...
- 单片机I/O口的结构的详解
1.什么是源型 漏型?什么是上拉电阻?下拉电阻?什么是 线驱动输出 集电极开路输出,推挽式输出? 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所 ...
- android 之 Hnadler 、Message 、Looper
Handler定义: 主要接受子线程发送来的数据,并用此数据配合主线程更新UI. 为什么要用Handler? 我们手机当中的很多功能或操作是不能都放在Activity当中的,比如下载文件.处理大量数据 ...
- Ubuntu/Unity中更改窗口修饰键Alt为Super
在Ubuntu中的Unity桌面环境里,可以使用Alt配合鼠标左键拖动窗口,这一方便的设定有许多不方便的地方.和很多的软件有热键上的冲突,比如Visual Stdio Code的多光标控制功能. 注意 ...
- Linux安装aMule下载eDonkey200网络共享文件
安装aMule 如果你的发行版本包管理器中包含amule和amule-daemon可以直接安装. 如果不包含需要在编译的Configure过程添加参数以包含amulecmd和amuled:./conf ...
- Luogu 2668 NOIP 2015 斗地主(搜索,动态规划)
Luogu 2668 NOIP 2015 斗地主(搜索,动态规划) Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来 ...
- EOJ2018.10 月赛
EOJ2018.10 月赛 题目一览表(Green color indicate understand and Accept) 来源 考察知识点 完成时间 A oxx 的小姐姐们 EOJ 数学+思维 ...