【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实际机制可能有出入 ...
随机推荐
- 【HDU5778】abs(数学)
BUPT2017 wintertraining(16) #4 C HDU - 5778 题意 给定x,找出使|y-x|最小,且每个质因子都出现两次的y(\(y\le 2\))50组测试数据,\(1\l ...
- luogu4933 大师 (dp)
记f[i][j]是以i号为结尾的.公差为j的的个数(不包括只有i的情况) 那么就有$f[i][i-i']=\sum{(f[i'][i-i']+1)}$之类的东西 最后再加个n就行啦 而且公差有可能有负 ...
- PendingIntent的使用
1, 构造intent Intent mIntent = new Intent("android.intent.action.MAIN"); ComponentName comp ...
- 跟我一起学习vue2(使用命令行搭建单页应用)[二]
第一步:运行git命令,全局安装 vue-cli $ cnpm install --global vue-cli 第二步: 创建一个基于 webpack 模板的新项目 $ vue init webpa ...
- (二维数组 亿进制 或 滚动数组) Hat's Fibonacci hdu1250
Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- (母函数 Catalan数 大数乘法 大数除法) Train Problem II hdu1023
Train Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- VNC 在ubuntu desktop下只显示空白桌面
看不到上下的菜单栏,但是有桌面.要么是配置文件,要么是gnome缺组件. 1.先安装组件 apt-get install --no-install-recommends ubuntu-desktop ...
- json遍历 分别使用【原】
json遍历 一 使用org.json.JSONObject遍历 之后的所有遍历都参考了:http://blog.csdn.net/u010648555/article/details/4981538 ...
- 运用Zabbix实现内网服务器状态及局域网状况监控(1) —— Zabbix介绍
一.Zabbix简介 Zabbix 是一个企业级的.开源的.分布式的监控套件 Zabbix 可以监控网络和服务的监控状况. Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警 ...
- LightOJ - 1246 Colorful Board(DP+组合数)
http://lightoj.com/volume_showproblem.php?problem=1246 题意 有个(M+1)*(N+1)的棋盘,用k种颜色给它涂色,要求曼哈顿距离为奇数的格子之间 ...