转储分析之寻找SDK安装程序挂死原因视频 笔记整理
2017-08-29 18:11
281 查看
出现情况:WIN7 安装SDK界面卡死
安装程序由.Net重写过,重写原因:原SDK不能从网络安装,假定所有SDK所需文件都在本地。
SDK包含:头文件,lib,附属工具等。
一.一些简单的命名规则
TppWorkThread Tpp开头表示在线程池中
Rtl开头代表操作系统的运行时库
ntdll !Rtl 开头代表Nt所依赖的一些系统的核心函数
nt/ntdll 中都有一些Rtl开头的核心函数(nt是内核态,ntdll是用户态,ntdll是与内核态接口的dll)
ntlpExcuteHander...中的p代表是内部函数,而RtlUnwindEx,直接接大写代表是公开的函数
JIT表示即时编译,JIT_Throw即时编译时抛异常
二.一些常用的基础命令
~ 针对线程
* 所有线程
k 查看栈 ,有kv kb kn kp等不同组合,有不同效果
kv可以在栈上显示返回的参数
kn有每个栈的栈针的编号,有每个栈针的基地址
~*k查找出栈的信息时,执行顺序自下向上(由栈顶向栈底)看。栈底至栈顶地址逐渐递增,栈顶至栈底地址逐渐递减。
!exchain 查找异常的地址
!threads 显示托管栈信息
! do 地址 (dumpobject,.net世界中一切皆为对象)把栈中所有对象都dump出来
!clrstack 地址 查看代码
.loadby sos mscorwks 加载运行mscorwks运行时相同目录的sos 也可以.load绝对路径,但是不推荐
加载后,可运行!help显示支持的命令
此时执行!dumpstuck可现实k命令看不到的函数名,找出执行k时不同的函数进行分析
x 查找文件的二进制地址,支持匹配符。如:x ntdll ! *
三.其他一些知识杂记
1.kernelbase所有用户态都依赖的一个库,上面是用户态(kernel32),下面是核心态。
2.mscowks 交给.net的运行时
3.RaiseException由本地API发起异常 四个参数分别为:异常代码,异常标志,异常附加参数,装载异常附加参数的数组。
由此函数转入内核态分发,dispatchExcution时,会去链表中轮询try,catch挂在链表上的异常,是否由其处理。
一般会得到3个反馈信息,1.不管.2执行其相关的操作.3.已经修改(此情况较少)
4.child _sp sp表示stackpoint,每个函数在栈上占一小块空间
RetAdd保存有函数返回地址
5.离现场越远 处理的越笼统
安装程序由.Net重写过,重写原因:原SDK不能从网络安装,假定所有SDK所需文件都在本地。
SDK包含:头文件,lib,附属工具等。
一.一些简单的命名规则
TppWorkThread Tpp开头表示在线程池中
Rtl开头代表操作系统的运行时库
ntdll !Rtl 开头代表Nt所依赖的一些系统的核心函数
nt/ntdll 中都有一些Rtl开头的核心函数(nt是内核态,ntdll是用户态,ntdll是与内核态接口的dll)
ntlpExcuteHander...中的p代表是内部函数,而RtlUnwindEx,直接接大写代表是公开的函数
JIT表示即时编译,JIT_Throw即时编译时抛异常
二.一些常用的基础命令
~ 针对线程
* 所有线程
k 查看栈 ,有kv kb kn kp等不同组合,有不同效果
kv可以在栈上显示返回的参数
kn有每个栈的栈针的编号,有每个栈针的基地址
~*k查找出栈的信息时,执行顺序自下向上(由栈顶向栈底)看。栈底至栈顶地址逐渐递增,栈顶至栈底地址逐渐递减。
!exchain 查找异常的地址
!threads 显示托管栈信息
! do 地址 (dumpobject,.net世界中一切皆为对象)把栈中所有对象都dump出来
!clrstack 地址 查看代码
.loadby sos mscorwks 加载运行mscorwks运行时相同目录的sos 也可以.load绝对路径,但是不推荐
加载后,可运行!help显示支持的命令
此时执行!dumpstuck可现实k命令看不到的函数名,找出执行k时不同的函数进行分析
x 查找文件的二进制地址,支持匹配符。如:x ntdll ! *
三.其他一些知识杂记
1.kernelbase所有用户态都依赖的一个库,上面是用户态(kernel32),下面是核心态。
2.mscowks 交给.net的运行时
3.RaiseException由本地API发起异常 四个参数分别为:异常代码,异常标志,异常附加参数,装载异常附加参数的数组。
由此函数转入内核态分发,dispatchExcution时,会去链表中轮询try,catch挂在链表上的异常,是否由其处理。
一般会得到3个反馈信息,1.不管.2执行其相关的操作.3.已经修改(此情况较少)
4.child _sp sp表示stackpoint,每个函数在栈上占一小块空间
RetAdd保存有函数返回地址
5.离现场越远 处理的越笼统
相关文章推荐
- matlab安装软件 Matlab视频教程李大勇 MATLAB程序开发入门课程 MATLAB神经网络30个案例分析及源程序
- 安装CE6.0SDK失败原因分析
- 韩顺平PHP学习视频笔记整理025web服务器介绍 apache服务器安装
- [转载]分析SDK下的俄罗斯方块程序(仅供学习使用)
- 对mdi程序中一个弹出菜单警告原因的分析
- Linux下日志分析工具Awstats安装笔记
- 安装MapObject .Net SDK组件时安装程序找不到.Net Framework SDK路径::解决方法
- 扬扬的J2EE学习笔记(五)Installing J2EE SDK(安装J2EE SDK)
- net制作安装程序总结(WinForm,WebForm) 整理
- 暴风影音视频加速程序模块缓冲区溢出漏洞的分析
- 以前的某个程序安装在计算机上创建挂起文件操作,运SQL_server卸载了重装,往往是装不了.在安装SQL200的时候有个提示出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机”,重起以后同样是这样..是什么原因阿?"后
- [汇编笔记]一个接受输入的字符串并反向输出的程序分析
- Commons-net FTPClient completePendingCommand()经常使程序死掉的原因分析以及解决方式
- 学习笔记----图形界面程序Qt安装及其在2410-s上的移植
- 视频第二章整理笔记
- oracle笔记整理二[安装]
- BREW SDK的Media程序分析
- 日志统计分析程序webalizer的安装和配置
- SexyAppFramework分析笔记2(下载,安装和HelloWorld)
- Directshow(SDK)学习笔记九_视频捕捉