<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>analyse dynamique - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/tag/analyse-dynamique/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/tag/analyse-dynamique/</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Sun, 02 May 2021 16:58:39 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>analyse dynamique - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/tag/analyse-dynamique/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</title>
		<link>https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/</link>
		
		<dc:creator><![CDATA[Vincent Nguyen]]></dc:creator>
		<pubDate>Tue, 21 Jun 2016 16:57:29 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[analyse dynamique]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15773</guid>

					<description><![CDATA[<p>L’analyse dynamique d’un fichier correspond à analyser l’exécution de ce fichier. Cette analyse permet alors de déterminer le comportement réel du malware, là où certains éléments de l’analyse statique peuvent être présents uniquement pour détourner l’attention de l’analyste, ou lui...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/">Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<div style="margin-left: 1em; margin-right: 1em;"></div>
</div>
<div style="text-align: justify;">L’analyse dynamique d’un fichier correspond à analyser l’exécution de ce fichier. Cette analyse permet alors de déterminer le comportement réel du <i>malware</i>, là où certains éléments de l’analyse statique peuvent être présents uniquement pour détourner l’attention de l’analyste, ou lui compliquer la tâche.</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-left: 0cm; margin-top: 5px;">
<div style="text-align: justify;">Une première forme d’analyse dynamique correspond à l’exécution du <i>malware</i> et à l’observation des modifications qu’il entraine sur le système. Cette analyse a le plus souvent pour but de déterminer les actions à effectuer pour supprimer le <i>malware</i>, et/ou créer une signature.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-left: 0cm; margin-top: 5px;">
<div style="text-align: justify;"><i><span style="mso-fareast-language: FR;">Attention, </span>ce type d’analyse doit absolument être fait dans un environnement contrôlé (machine virtuelle, poste dédié et déconnecté du SI, etc.) afin de ne pas risquer la propagation de l’infection.</i></div>
</div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">1)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse des opérations</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’analyse dynamique permet la surveillance de nombreuses informations : les registres, le système de fichiers et les processus<i>. </i>Cette étape est au début assez fastidieuse étant donné que de nombreuses informations sont accessibles. Il existe différents outils permettant d’accéder à ces informations.<i> ProcessMonitor</i> est l’un de ces outils qui a l’avantage de permettre à l’analyste de filtrer ses recherches sur un exécutable, ce qui est très pratique pour l’analyse de <i>malwares</i>.</div>
<div style="text-align: center;">
<figure id="post-15774 media-15774" class="align-none"><img fetchpriority="high" decoding="async" class="size-full wp-image-15774 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2.jpg" alt="" width="604" height="163" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2.jpg 604w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-437x118.jpg 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-71x19.jpg 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-600x163.jpg 600w" sizes="(max-width: 604px) 100vw, 604px" /></figure>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
</div>
<p><i>Figure 1 : Résultat d’une analyse de ProcessMonitor sur un malware appelé mm32.exe</i></p>
</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’analyse de ces différents éléments permet à l’analyste d’avoir une meilleure compréhension de l’activité du <i>malware</i>. Cependant, étant donné le nombre d’informations renvoyées par <i>ProcessMonitor</i> dont la plupart représentent des évènements standards du lancement d’un exécutable, l’analyse demande beaucoup de pratique et de la patience.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Un autre outil permettant une analyse poussée des processus est <i>Process Explorer</i>. Il permet de lister les processus, les bibliothèques chargées par un processus, différentes informations sur ces processus, ainsi que des informations globales sur le système. L’avantage de cet outil est qu’il présente les informations sous forme d’arbre, exposant ainsi les relations entre les processus parents et enfants.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Les informations que <i>Process Explorer</i> renvoie sont le nom du processus, le PID (numéro d’identification du processus), l’utilisation du CPU, une description ainsi que le nom de l’entreprise ayant créé le binaire (champs laissés libres au créateur du binaire…). Par défaut les services sont surlignés en rose, les processus en bleu, les nouveaux processus en vert et les processus terminés en rouge. La vue se met alors à jour à chaque seconde. Lors de l’analyse de <i>malware</i> il est donc intéressant de repérer les différents processus qui sont modifiés ou créés afin de pouvoir enquêter dessus de manière plus approfondie.</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div style="text-align: center;">
<figure id="post-15776 media-15776" class="align-none"><img decoding="async" class="size-full wp-image-15776 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3.jpg" alt="" width="605" height="454" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3-255x191.jpg 255w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3-52x39.jpg 52w" sizes="(max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 2 : Résultat de Process Explorer sur un exécutable</i></p>
</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Ces techniques sont très efficaces pour comprendre ce que fait un exécutable, mais il ne faut pas négliger leur utilité pour déterminer si un document est malveillant ou non. Un moyen rapide de savoir si un PDF est malveillant, par exemple, est de lancer <i>Process Explorer</i> puis d’ouvrir le PDF et de regarder si de nouveaux processus sont créés.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;"><u>Remarque :</u> Pour l’analyse de documents, il est souvent intéressant d’utiliser des versions intentionnellement non <i>patchées</i> des logiciels afin de s’assurer que l’attaque est efficace. Une bonne manière de faire cela est par exemple de créer plusieurs <i>snapshots</i> d’une machine virtuelle d’analyse, chaque <i>snapshot</i> ayant une version différente, et généralement assez âgée, des logiciels.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Pour l’analyse de registres, l’outil <i>Regshot</i> permet de comparer les registres sur deux <i>snapshots </i>différents. Un extrait de résultat de <i>Regshot</i> peut ressembler à la figure 3.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Dans ce résultat, le premier constat est la création d’un mécanisme de persistance <i>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> par le programme <i>ckr.exe</i>, le deuxième est la modification<i> </i>de la valeur de la <i>seed</i> pour le générateur de nombre aléatoire, ce qui représente un bruit habituel.</div>
<div style="text-align: center;">
<figure id="post-15778 media-15778" class="align-none"><img decoding="async" class="size-full wp-image-15778 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4.jpg" alt="" width="605" height="460" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4-251x191.jpg 251w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4-51x39.jpg 51w" sizes="(max-width: 605px) 100vw, 605px" /></figure>
</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 3 : Extrait de résultat de Regshot après lancement du programme ckr.exe</i></p>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">2)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse réseau</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">De nombreux <i>malwares</i> récupèrent des ressources ou transmettent des informations sur le réseau (en particulier vers des serveurs C2 « Command &amp; Control »). De ce fait il est très intéressant de réaliser une analyse réseau pour déterminer les actions du <i>malware</i>. L’environnement d’analyse n’étant pas connecté à internet, il se peut qu’une partie des fonctionnalités du <i>malware</i> restent non accessibles. Cependant il est préférable de récupérer de telles informations en faisant une analyse manuelle approfondie plutôt que de permettre au <i>malware</i> de se propager (une sortie directe vers Internet peut néanmoins être fortement utile aux équipes d’analyse).</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Quelques outils peuvent permettre d’effectuer une analyse réseau d’un <i>malware</i> :</div>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>ApateDNS</i> permet de récupérer les requêtes DNS faites par le <i>malware</i>. Il permet également de simuler les réponses d’une adresse IP spécifiée en écoutant sur le port 53 de la machine locale <i>via</i> le protocole UDP. Il affiche alors les requêtes reçues en hexadécimal ou en ASCII. Par défaut <i>ApateDNS</i> utilise la passerelle (<i>gateway</i>) ou les paramètres de DNS courants dans les réponses DNS.</li>
</ul>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<figure id="post-15780 media-15780" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15780 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5.png" alt="" width="605" height="439" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5-263x191.png 263w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5-54x39.png 54w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 4 : Interception des requêtes DNS et simulation des réponses par ApateDNS en utilisant l’IP 192.168.120.1</i></p>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>Netcat</i> permet le scan de port, <i>tunneling</i>, <i>proxying</i>, transfert de ports et bien d’autres choses sur des connections aussi bien entrantes que sortantes. Il existe deux modes de fonctionnement pour <i>Netcat</i>, le mode écoute, pour lequel <i>Netcat</i> agit comme un serveur, et le mode connexion pour lequel il agit comme un client.</li>
</ul>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;"><u>Remarque :</u> les <i>malwares</i> utilisent souvent les ports 80 et 443 (HTTP et HTTPS respectivement) car ces ports ne sont généralement pas bloqués par les différents équipements de sécurité sur le réseau des entreprises (firewall, proxy, etc.).</div>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;"><u>Remarque 2 :</u> certains <i>malwares</i> simulent des connexions usuelles afin de cacher leur comportement et tirer parti d’une méconnaissance de nombreux analystes réseau qui ne se concentrent que sur le début d’une session. Par exemple, en figure 5 le <i>reverse shell RShell</i> est instancié avec une redirection du domaine <i>www.google.com</i> vers l’hôte local 127.0.0.1 à l’aide d’<i>ApateDNS</i>. L’analyste écoute ensuite le trafic réseau sur le port 80 local avec <i>Netcat</i>.</div>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;">Dans ce résultat, <i>RShell</i> simule une requête POST à <i>www.google.com</i> (comme le montre le point 2 sur la figure) mais par la suite, l’analyste récupère bien un <i>shell</i> (visible sur le point 3).</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<figure id="post-15782 media-15782" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15782 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6.jpg" alt="" width="605" height="344" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6-336x191.jpg 336w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6-69x39.jpg 69w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 5 : Résultat renvoyé par Netcat lors de l’exécution de RShell en redirigeant les requêtes vers l’hôte grâce à ApateDNS</i></p>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>Wireshark</i> permet la capture de paquets et de création de logs pour le trafic réseau. Il permet la visualisation, l’analyse de trames et l’analyse en détail de paquets individuels.</li>
</ul>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<figure id="post-15784 media-15784" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15784 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7.png" alt="" width="566" height="398" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7.png 566w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7-272x191.png 272w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7-55x39.png 55w" sizes="auto, (max-width: 566px) 100vw, 566px" /></figure>
<p><i>Figure 6 : Capture d’écran d’une analyse Wireshark</i></p>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;">Une des fonctionnalités très utiles de <i>Wireshark</i> est la fonctionnalité <i>Follow TCP stream</i> qui permet à partir d’un paquet de reconstituer le flot entier auquel il appartient.</div>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div>
<figure id="post-15786 media-15786" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15786 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8.jpg" alt="" width="605" height="373" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8-310x191.jpg 310w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8-63x39.jpg 63w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
</div>
<div style="text-align: center;">Figure 7 : Fonctionnalité <i>Follow TCP Stream</i> de <i>Wireshark</i></div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;"><i>Wireshark</i> peut permettre à l’analyste de comprendre comment le <i>malware</i> réalise ses communications réseau.</div>
</div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">3)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse via débogueur</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Étape la plus complexe de l’analyse, l’analyse dynamique avancée correspond au passage de l’exécutable dans un débogueur afin de déterminer les actions qu’il effectue les unes après les autres, ainsi que les différents états qu’il génère sur le poste analysé. Il existe plusieurs débogueurs utilisables pour cette étape, notamment <i>IDA Pro</i>, <i>OllyDbg</i> et <i>WinDbg</i>.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Cette étape est extrêmement efficace mais nécessite de nombreuses connaissances et beaucoup de temps. Dans cette partie sera présenté un aperçu de ce qu’il est possible de faire avec un débogueur. Il est important de retenir que l’analyse dynamique révèle ce que le <i>malware</i> fait véritablement, contrairement à l’analyse statique qui montre ce que le <i>malware</i> est en théorie capable de faire. Certains bouts de code présents dans le <i>malware</i> peuvent en effet ne jamais être appelés, et les repérer durant l’analyse statique peut induire en erreur l’analyste sur l’action du <i>malware</i>.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’utilisation d’un débogueur permet également d’obtenir des informations impossibles à récupérer avec un désassemblage, comme par exemple les valeurs prises par les registres au fur et à mesure de l’exécution.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il existe en fait deux types de débogueurs, ceux dits <i>source-level</i> qui sont généralement intégrés dans les <i>IDE</i> et bien connus des développeurs, leur permettant d’agir sur le code source afin de déterminer les comportements étranges de leurs programmes, et ceux dits <i>assembly-level</i> ou <i>low-level</i> qui agissent sur le code assembleur. C’est ce deuxième type de débogueur qui est utilisé par les analystes de <i>malware</i>, étant donné qu’ils n’ont pas accès au code source de l’application.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">De même il existe deux niveaux de débogage, celui en mode utilisateur, où le débogueur est lancé sur le même système d’exploitation que le programme en cours d’exécution, et celui plus complexe en mode noyau, qui permet de déboguer des applications ayant ce niveau d’interactions, mais qui nécessite deux machines reliées, l’une faisant tourner le programme, et l’autre permettant le débogage. Une deuxième machine est en effet nécessaire car il n’existe qu’un noyau par système d’exploitation, et si un <i>breakpoint</i> est mis sur une instruction exécutée par ce noyau, plus aucune application ne pourra répondre, le débogueur compris.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Dans les deux cas d’exécution, le résultat sera la mise en suspens du programme. Dans le premier cas le programme sera stoppé dès le point d’entrée (sauf configuration particulière) alors que dans le deuxième il sera arrêté là où il se trouvait. Une fois cela effectué, il est possible d’agir de différentes manières sur le programme :</div>
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Avancer d’une instruction (<i>single-stepping</i>) : cette action est généralement utilisée uniquement sur les passages identifiés comme importants afin d’obtenir des détails sur le fonctionnement comme les valeurs prises par les registres.</li>
<li style="text-align: justify;">Avancer d’une fonction (<i>Stepping-over</i>) : cela peut permettre de passer des détails inutiles. Par exemple si le programme appelle la fonction <i>LoadLibrary</i>, il n’est pas nécessaire de rentrer dans les détails de cette fonction.<span style="font: 7pt 'Times New Roman';"> </span></li>
<li style="text-align: justify;">Rentrer dans une fonction (<i>Stepping-into</i>) : en opposition à l’action précédente, il peut parfois être intéressant de rentrer dans une fonction pour en comprendre les détails.</li>
<li style="text-align: justify;">Avancer jusqu’au prochain <i>breakpoint</i> : pour cela il faut souvent placer un <i>breakpoint</i> plus loin dans le code et relancer l’exécution, le débogueur s’arrêtera automatiquement au <i>breakpoint</i>.</li>
<li style="text-align: justify;">Modifier l’exécution d’un programme : par exemple pour éviter l’appel à une fonction, il est possible de mettre un <i>breakpoint</i> sur cette fonction et, lorsque l’interruption est levée, changer le pointeur d’instruction à après son appel.</li>
</ul>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il existe trois types de <i>breakpoints</i> :</div>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>software breakpoints</i> : ces points d’arrêt sont utilisés pour faire en sorte que le programme s’arrête lorsque l’instruction sur laquelle ils sont placés est appelée. Pour réaliser cela, le débogueur remplace le premier octet de l’instruction par <i>0xCC</i>, l’instruction pour INT3.</li>
</ul>
<div style="text-align: center;">
<figure id="post-15788 media-15788" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15788 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9.png" alt="" width="512" height="111" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9.png 512w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9-437x95.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9-71x15.png 71w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure>
</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<p>Figure 8 : Remplacement du premier octet de l’instruction par 0xCC lors d’un <i>software breakpoint</i>.</p>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>hardware breakpoints</i> : ils sont placés sur une adresse mémoire, et déclenchés lorsque le programme tente d’accéder à cette ressource. L’avantage est qu’ils ne dépendent pas de la valeur présente dans cette adresse mémoire, et qu’ils interviennent à l’accès et non à l’exécution. Néanmoins ils nécessitent des registres particuliers qui sont en nombre limités sur un système.</li>
</ul>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>conditional breakpoints</i> : ce sont des <i>software breakpoints</i> qui ne vont déclencher l’arrêt que si une certaine condition est vérifiée. Cela peut par exemple être utile si l’on veut s’arrêter à l’appel d’une fonction que si un certain paramètre est appelé.</li>
</ul>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Ces différentes techniques d’analyse dynamique viennent en complément d’une analyse statique.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il convient néanmoins de prendre toutes les précautions nécessaires avant de se lancer dans une analyse de malware. Chaque résultat obtenu par les analystes doit être contrevérifié pour s’assurer qu’aucune technique anti-reverse n’est mise en œuvre dans le binaire.</div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/">Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
