【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实际机制可能有出入 ...
随机推荐
- 洛谷P3628 [APIO2010]特别行动队(动态规划,斜率优化,单调队列)
洛谷题目传送门 安利蒟蒻斜率优化总结 由于人是每次都是连续一段一段地选,所以考虑直接对\(x\)记前缀和,设现在的\(x_i=\)原来的\(\sum\limits_{j=1}^ix_i\). 设\(f ...
- ra (数论 , 莫比乌斯反演 , 整点统计)
题意 求 \[\displaystyle \sum_{i=1}^{n} \sum_{j=1}^{n} [\mathrm{lcm} (i,j) > n] \pmod {10^9 + 7}\] . ...
- (python爬取小故事网并写入mysql)
前言: 这是一篇来自整理EVERNOTE的笔记所产生的小博客,实现功能主要为用广度优先算法爬取小故事网,爬满100个链接并写入mysql,虽然CS作为双学位已经修习了三年多了,但不仅理论知识一般,动手 ...
- luogu2827 [NOIp2016]蚯蚓 (模拟)
可以直观地想到用优先队列来做,但数据范围是O(n)的 然后我们发现,因为我们每次挑出来的蚯蚓是单调的,所以把每个切成两段后,那两段也是对应单调的 也就是说,算上最一开始的蚯蚓,我们一共维护三个队列,三 ...
- 在Android中afinal框架下實現sqlite數據庫版本升級的辦法
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 這個方法在實現時需要重寫. pub ...
- change username on ubuntu.
Below tutorial will show you how to change username in ubuntu 12.04 precise.First,we need login as r ...
- Luogu 1312 【NOIP2011】玛雅游戏 (搜索)
Luogu 1312 [NOIP2011]玛雅游戏 (搜索) Description Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空 ...
- BAPC2017
Benelux Algorithm Programming Contest 2017 参考资料: https://blog.csdn.net/sizaif/article/details/798586 ...
- non-member function cannot have cv-qualifier
Q: non-member function unsigned int abs(const T&) cannot have cv-qualifier. template<typename ...
- Study 5 —— CSS概述
CSS(Cascading Style Sheet)称为层叠样式表,也可以称为CSS样式表或样式表,其文件扩展名为.css,CSS是用于增强或控制网页样式,并允许将样式信息与网页内容分离的一种标记性语 ...