Skip to content
Snippets Groups Projects
Verified Commit 4eff9a62 authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

finished

parent c3333e15
Branches
No related tags found
No related merge requests found
...@@ -283,7 +283,7 @@ NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, ...@@ -283,7 +283,7 @@ NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,
[...] [...]
} }
\end{minted} \end{minted}
\caption{Fichier \lstinline{common/newbp.c:46}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_driver_entry} \caption{Fonction \lstinline{DriverEntry()}, fichier \lstinline{common/newbp.c:46}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_driver_entry}
\end{figure} \end{figure}
Dans la fonction \verb|HvmSwallowBluepill()|, dont le contenu est illustré par Dans la fonction \verb|HvmSwallowBluepill()|, dont le contenu est illustré par
...@@ -324,7 +324,7 @@ NTSTATUS NTAPI HvmSwallowBluepill ( ...@@ -324,7 +324,7 @@ NTSTATUS NTAPI HvmSwallowBluepill (
[...] [...]
} }
\end{minted} \end{minted}
\caption{Fichier \lstinline{common/hvm.c:547}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_swallow_bp} \caption{Fonction \lstinline{HvmSwallowBluepill}, fichier \lstinline{common/hvm.c:547}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_swallow_bp}
\end{figure} \end{figure}
Après la modification du masque d'affinité, la \textit{callback} \verb|CmSubvert()| Après la modification du masque d'affinité, la \textit{callback} \verb|CmSubvert()|
...@@ -388,7 +388,7 @@ typedef NTSTATUS ( ...@@ -388,7 +388,7 @@ typedef NTSTATUS (
PVOID GuestRsp PVOID GuestRsp
); );
\end{minted} \end{minted}
\caption{Fichier \lstinline{common/common.h:362}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_arch_init_func_ptr} \caption{Type \lstinline{ARCH_INITIALIZE}, fichier \lstinline{common/common.h:362}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_arch_init_func_ptr}
\end{figure} \end{figure}
\begin{figure}[tbph!] \begin{figure}[tbph!]
...@@ -421,7 +421,7 @@ typedef struct ...@@ -421,7 +421,7 @@ typedef struct
} HVM_DEPENDENT, } HVM_DEPENDENT,
*PHVM_DEPENDENT; *PHVM_DEPENDENT;
\end{minted} \end{minted}
\caption{Fichier \lstinline{common/common.h:420}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_dependent_struct} \caption{Structure \lstinline{HVM_DEPENDENT}, fichier \lstinline{common/common.h:420}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_dependent_struct}
\end{figure} \end{figure}
\newpage \newpage
...@@ -504,7 +504,7 @@ NTSTATUS NTAPI HvmSubvertCpu ( ...@@ -504,7 +504,7 @@ NTSTATUS NTAPI HvmSubvertCpu (
return Status; return Status;
} }
\end{minted} \end{minted}
\caption{Fichier \lstinline{common/hvm.c:356}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_subvert_cpu} \caption{Fonction \lstinline{HvmSubvertCpu()}, fichier \lstinline{common/hvm.c:356}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_hvm_subvert_cpu}
\end{figure} \end{figure}
\newpage \newpage
...@@ -542,11 +542,13 @@ appel aux instructions matérielles AMD. L'état de l'\acrshort{os} avant que ...@@ -542,11 +542,13 @@ appel aux instructions matérielles AMD. L'état de l'\acrshort{os} avant que
le \acrshort{cpu} n'ait été virtualisé sera sauvegardé via l'instruction le \acrshort{cpu} n'ait été virtualisé sera sauvegardé via l'instruction
\verb|VMSAVE| appelée à travers le symbole \verb|SvmVmsave| défini en \verb|VMSAVE| appelée à travers le symbole \verb|SvmVmsave| défini en
assembleur. Ce symbole fournira au registre \verb|rax| l'adresse physique du assembleur. Ce symbole fournira au registre \verb|rax| l'adresse physique du
\verb|OriginalVmcb| est exécutera l'instruction \verb|svm_vmsave|. Du fait que \verb|OriginalVmcb| est exécutera l'instruction \verb|svm_vmsave|.
les fonctions intrinsèques liées aux instructions matérielles n'étaient pas
proposées par les compilateurs de l'époque, celles-ci ont dû être répliquées en % Du fait que
\say{codant} l'instruction à la main, octet par octet, comme l'illustre la % les fonctions intrinsèques liées aux instructions matérielles n'étaient pas
Figure~\ref{fig:code_asm_svm_vmsave}. % proposées par les compilateurs de l'époque, celles-ci ont dû être répliquées en
% \say{codant} l'instruction à la main, octet par octet, comme l'illustre la
% Figure~\ref{fig:code_asm_svm_vmsave}.
\begin{figure}[tbph!] \begin{figure}[tbph!]
\begin{minted} \begin{minted}
...@@ -563,7 +565,7 @@ svm_vmsave MACRO ...@@ -563,7 +565,7 @@ svm_vmsave MACRO
BYTE 0Fh, 01h, 0DBh BYTE 0Fh, 01h, 0DBh
ENDM ENDM
\end{minted} \end{minted}
\caption{Fichier \lstinline{amd64/svm-asm.asm:24}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_asm_svm_vmsave} \caption{Fonction \lstinline{svm_vmsave()}, fichier \lstinline{amd64/svm-asm.asm:24}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_asm_svm_vmsave}
\end{figure} \end{figure}
...@@ -619,7 +621,7 @@ static NTSTATUS NTAPI SvmInitialize ( ...@@ -619,7 +621,7 @@ static NTSTATUS NTAPI SvmInitialize (
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
\end{minted} \end{minted}
\caption{Fichier \lstinline{svm/svm.c:940}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_svm_initialize} \caption{Fonction \lstinline{SvmInitialize()}, fichier \lstinline{svm/svm.c:940}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_svm_initialize}
\end{figure} \end{figure}
\newpage \newpage
...@@ -676,7 +678,7 @@ static NTSTATUS NTAPI SvmVirtualize ( ...@@ -676,7 +678,7 @@ static NTSTATUS NTAPI SvmVirtualize (
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
\end{minted} \end{minted}
\caption{Fichier \lstinline{svm/svm.c:1174}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_svm_virtualize} \caption{Fonction \lstinline{SvmVirtualize()}, fichier \lstinline{svm/svm.c:1174}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_svm_virtualize}
\end{figure} \end{figure}
La routine \verb|SvmVmrun()|, illustrée par la Figure~\ref{fig:code_asm_svm_vmrun}, La routine \verb|SvmVmrun()|, illustrée par la Figure~\ref{fig:code_asm_svm_vmrun},
...@@ -743,7 +745,7 @@ SvmVmrun PROC ...@@ -743,7 +745,7 @@ SvmVmrun PROC
SvmVmrun ENDP SvmVmrun ENDP
\end{minted} \end{minted}
\caption{Fichier \lstinline{amd64/svm-asm.c:75}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_asm_svm_vmrun} \caption{Fonction \lstinline{SvmVmrun}, fichier \lstinline{amd64/svm-asm.c:75}. Source : tiré du code source de Blue Pill, ref. URL06 / réalisé par RUTKOWSKA Joanna}\label{fig:code_asm_svm_vmrun}
\end{figure} \end{figure}
Arrivant au terme de l'analyse du code source de Blue Pill, il est souhaitable Arrivant au terme de l'analyse du code source de Blue Pill, il est souhaitable
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment