转储分析之寻找SDK安装程序挂死原因视频 笔记整理
来源:互联网 发布:怎样加入淘宝 编辑:程序博客网 时间:2024/05/12 07:11
出现情况: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.离现场越远 处理的越笼统
- 转储分析之寻找SDK安装程序挂死原因视频 笔记整理
- 卡死的原因分析??
- 程序猿之死
- windows程序界面卡死的原因
- android调用百度音视频转码 MCT的SDK,BDCloudMediaPlayer初始化卡死的问题
- 使用MAP文件 寻找程序崩溃原因
- 在release下寻找程序崩溃原因
- css视频笔记整理
- 学习笔记之ConcurrentLinkedQueue源码分析整理
- 使用jstack+ProcessExplorer来寻找java程序中的死循环
- AnyChat SDK助企业寻找音视频开发的捷径
- Ubuntu SDK 安装介绍视频
- 【Android SDK程序逆向分析与破解系列】之一:Android安装程序APK分析
- 会引起程序卡死的两个原因
- 综合告警创建邮件规则,程序卡死原因
- 导致PHP程序死循环的一个原因
- 【Android SDK程序逆向分析与破解系列】之四:Android可执行程序ODEX分析
- HashMap多线程引起的死循环的原因分析
- [LintCode]28.搜索二维矩阵
- 详解大端模式和小端模式
- myCal.get(Calendar.DAY_OF_WEEK)-1是什么意思?
- 机器学习(3)——监督学习
- 微信公众号---自定义菜单创建接口---创建一级菜单
- 转储分析之寻找SDK安装程序挂死原因视频 笔记整理
- Navicat Premium实现mysql数据库备份/还原
- MySQL 数据库权限简单管理
- 一个错误使用Android 属性动画的例子
- Mac OS X系统自带的压缩格式
- MTC Pronest v8.2.2.3084 1CD
- 重新开始
- 构造函数与析构函数的调用顺序
- git-rebase(认真看,分析很到位)