当前位置:网站首页>Win32: analyse du fichier dump pour la défaillance du tas
Win32: analyse du fichier dump pour la défaillance du tas
2022-07-03 17:52:00 【Qu'est - ce que tu répares?】
- win32Structure du tas
Jusqu'à ce que les problèmes réels soient résolus,Découvrez d'abord les concepts pertinents
1. Structure du tas
Pile->Paragraphes->Bloc
Le tas est fait de segments,Les segments sont constitués de blocs,Le bloc est la structure de données de la mémoire virtuelle que l'utilisateur demande finalement au système.(À l'heure actuelle, notre programme utilisateur n'a besoin que de comprendre les blocs)
2. _HEAP_ENTRYStructure
Chaque pile,Chaque segment,Chaque bloc aura son propre_HEAP_ENTRYStructure,Il contient des informations sur le contenu de la zone.Comme le bloc_HEAP_ENTRYLa structure stocke le tas auquel elle appartient,Paragraphes,Informations telles que la taille précédente et la taille actuelle.
- windbgCommandes liées au tas
- Voir la vue d'ensemble de tous les tas:!heap -s
- Toutes les informations de segment et de bloc d'un tas:!heap -a 0xXXXXXXXX
- Voir où se trouve une adresse mémoire_HEAP_ENTRYInformation:!heap -x 0xXXXXXXXX
- Statistiques aperçu d'un tas:!heap -stat -h 0xXXXXXXXX
- Liste toutes les tailles sontXAdresse du bloc:!heap -flt s X
- Voir le support de débogage pour heap:!gflag
- Voir le contenu du bloc mémoire dc 0xXXXXXXXX
- Mise en service de la destruction du tas
1. Qu'est - ce qu'un tas de destruction
La destruction du tas est en fait une destruction massive. , En raison de la lecture et de l'écriture de l'espace au - delà de l'adresse assignée , A causé des dégâts _HEAP_ENTRYStructure(Si ouiCRTPile, C'est détruit. CRT Structure d'inspection finale du tas , Il a même détruit la structure du bloc suivant. )
2. Un exemple de défaillance du tas
C'est une opération hors de portée. ,Compilé enreleaseVersion,AvecwindbgAccroche - toi.
Regarde ça.ptrValeur de
Regarde ça.ptrOù_HEAP_ENTRYStructure, Trouvé appartenant à 00b30000 Cette pile ,In00b34420 Dans ce bloc
Nous voyons que les blocs suivants ont été détruits. , Donc les caractéristiques de la destruction du tas sont essentiellement longues . Mais cette routine ne provoque pas de crash .
3. Résumer les idées d'analyse
a) Trouver le tas où se trouve le bloc écrasé ( Peut être déterminé en fonction de la plage d'adresses ).
b) Voir toutes les informations de bloc pour le tas .
c) Trouver les informations correspondantes à partir du dernier bloc non détruit .( Si la logique d'entreprise est écrite de petite à grande adresse , Ça détruira le bloc arrière. , Sinon, c'est le contraire. )
边栏推荐
- IntelliJ 2021.3 short command line when running applications
- Leetcode 669 pruning binary search tree -- recursive method and iterative method
- Remote office tools sharing | community essay solicitation
- Managing multiple selections with MVVM - managing multiple selections with MVVM
- Mathematical formula (test)
- Research Report on investment trends and development planning of China's thermal insulation material industry, 2022-2028
- A. Odd Selection【BruteForce】
- Servlet specification Part II
- Talk about the design and implementation logic of payment process
- 互聯網醫院HIS管理平臺源碼,在線問診,預約掛號 智慧醫院小程序源碼
猜你喜欢
Leetcode Valentine's Day Special - looking for a single dog
Golang unit test, mock test and benchmark test
Talk about the design and implementation logic of payment process
聊聊支付流程的设计与实现逻辑
Implementation of Tetris in C language
Internet Hospital his Management Platform source, online Inquiry, appointment Registration Smart Hospital Small program source
1146_ SiCp learning notes_ exponentiation
微服务组件Sentinel控制台调用
Automata and automatic line of non-standard design
聊聊支付流程的設計與實現邏輯
随机推荐
问题随记 —— 在 edge 上看视频会绿屏
MySQL has been stopped in the configuration interface during installation
First day of rhcsa study
Global and Chinese health care OEM and ODM market status survey and investment planning recommendations report 2022-2028
数学公式(测试)
Managing multiple selections with MVVM - managing multiple selections with MVVM
1164 Good in C
Mathematical formula (test)
supervisor监控Gearman任务
List of financial products in 2022
vs2013已阻止安装程序,需安装IE10
Loop through JSON object list
Hongmeng third training
How to read the source code [debug and observe the source code]
Research on Swift
Gear2021 monthly update - December
Global and Chinese pediatric palliative care drug market development research and investment planning recommendations report 2022-2028
Golang unit test, mock test and benchmark test
Basic grammar of interview (Part 2)
Inheritance of ES6 class