【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实际机制可能有出入 ...
随机推荐
- 自学Python6.1-模块简介
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- BZOJ3730 震波 | 动态点分治
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> # ...
- Raid卷详解
#RAID卷 独立磁盘冗余阵列RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术.组成磁盘阵列的不同方式成为R ...
- A1049. Counting Ones
The task is simple: given any positive integer N, you are supposed to count the total number of 1's ...
- A1077. Kuchiguse
The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...
- [noip][2017]
Day1T1 30分思路: 倒着枚举答案z,用扩展欧几里得求解,如果能找到两个非负整数x,y使得ax+by=z则继续枚举,直到无解为止 100分: 最适用与考场上的做法,根据30分思路打表找规律. 3 ...
- 和我一起使用webpack构建react项目
第一步:初始化项目并创建package.json文件 第二步:创建webpack.config.js文件,并写入配置. 第三步:安装webpack以及创建es6语法环境,要将html作为模板文件解析的 ...
- mysql.user表中Host为%的含义
百度搜: MySQL之权限管理(mysql.user表详解) 连接:http://blog.csdn.net/zmx729618/article/details/78026497 mysql.user ...
- C++初始化列表(good)
本文转载自http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html 感谢作者分享 何谓初始化列表 与其他函数不同,构造函数除了有名 ...
- ngrep 比 tcpdump 更方便查看的抓包显示工具
ngrep 是grep(在文本中搜索字符串的工具)的网络版,他力求更多的grep特征,用于搜寻指定的数据包 一: ngrep的安装 CentOS6.2 64位 wget http://nchc.dl. ...