当前位置:网站首页>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. )
边栏推荐
- Y is always discrete and can't understand, how to solve it? Answer: read it several times
- Postfix 技巧和故障排除命令
- win32:堆破坏的dump文件分析
- Leetcode 108 converts an ordered array into a binary search tree -- recursive method
- Global and Chinese health care OEM and ODM market status survey and investment planning recommendations report 2022-2028
- 1146_ SiCp learning notes_ exponentiation
- Leetcode540: a single element in an ordered array
- Mathematical formula (test)
- WebView module manages the application window interface to realize the logical control and management operation of multiple windows (Part 1)
- The difference between i++ and ++i: tell their differences easily
猜你喜欢

(8) HS corner detection

聊聊支付流程的設計與實現邏輯

win32:堆破坏的dump文件分析

Leetcode Valentine's Day Special - looking for a single dog

Baiwen.com 7 days Internet of things smart home learning experience punch in the next day

面试官:值为 nil 为什么不等于 nil ?

Internet Hospital his Management Platform source, online Inquiry, appointment Registration Smart Hospital Small program source

Talk about the design and implementation logic of payment process

PHP MySQL create database

Micro service component sentinel console call
随机推荐
Hongmeng third training
BFS - topology sort
Keepalived setting does not preempt resources
Deops入门
link preload prefetch
[combinatorics] recursive equation (case where the non-homogeneous part is exponential | example where the non-homogeneous part is exponential)
Gear2021 monthly update - December
[combinatorics] recursive equation (summary of the solution process of recursive equation | homogeneous | double root | non-homogeneous | characteristic root is 1 | exponential form | the bottom is th
Write a program to process a list container of string type. Find a special value in the container 9.27: and delete it if found. Rewrite the above procedure with deque container.
Ml (machine learning) softmax function to realize the classification of simple movie categories
Design limitations of structure type (struct)
Market demand survey and marketing strategy analysis report of global and Chinese pet milk substitutes 2022-2028
Kotlin的協程:上下文
Leetcode 669 pruning binary search tree -- recursive method and iterative method
互聯網醫院HIS管理平臺源碼,在線問診,預約掛號 智慧醫院小程序源碼
PHP MySQL reads data
AcWing 3438. 数制转换
Assembly for unloading Loadfrom() loaded assembly - unloading the assembly loaded with assembly LoadFrom()
Website with JS doesn't work in IE9 until the Developer Tools is activated
基于人脸识别的课堂考勤系统 tkinter+openpyxl+face_recognition