Question:
Malware Hooking INT 1 et INT 3
mrduclaw
2013-03-31 07:48:01 UTC
view on stackexchange narkive permalink

Je comprends que sur x86, INT 1 est utilisé pour les étapes simples et INT 3 est utilisé pour définir des points d'arrêt, et une autre interruption (généralement 0x80 pour Linux et 0x2E pour Windows) était utilisé pour les appels système.

Si un logiciel malveillant accroche la table des descripteurs d'interruption (IDT) et remplace ses propres gestionnaires INT 1 et INT 3 qui effectuent des appels système fonctionnalité, comment puis-je utiliser un débogueur pour suivre son exécution? Ou suis-je obligé d'utiliser des outils d'analyse statique?

Une solution consiste à appliquer un correctif à l'exemple afin que les hooks soient supprimés ou déplacés vers des interruptions qui n'interfèrent pas avec le débogage. Par curiosité, savez-vous s'il existe des exemples accessibles au public qui le font sur Windows?
La suppression des hooks est assez facile si le code n'utilise pas les hooks pour la fonctionnalité de type appel système. Les déplacer vers une autre interruption semble que cela devrait fonctionner. Le problème maintenant est que le code est assez chargé, donc la modification est ennuyeuse. : / Et non, pas d'échantillons accessibles au public que je connaisse, désolé.
Pour être sûr, cela interfère également avec les débogueurs au niveau du noyau, non?
C'est une sorte d'approche Je vous salue Marie, mais si vous le faisiez sous Linux, vous pourriez recompiler votre noyau avec un IDT personnalisé et reconstruire votre débogueur avec le nouveau mappage. Cela ne vaut probablement la peine que si vous rencontrez beaucoup ce type d'échantillons.
@amccormack: mais si le malware repose sur la fonctionnalité du noyau présente sur ces vecteurs d'interruption, ne cessera-t-il pas de fonctionner? Je suppose que vous devrez faire très attention à la façon dont vous modifiez le noyau ...
Un répondre:
#1
+9
deroko
2013-03-31 18:33:58 UTC
view on stackexchange narkive permalink

Je suggérerais ceci comme solution http://accessroot.com/arteam/site/download.php?view.185 car j'ai eu un problème similaire dans l'un des crackmes. Ce que j'ai fait a été d'écrire mes propres crochets pour que SoftICE contourne les hooks ring0 de int 3 et int 1. Cela pourrait être utile pour votre problème. La section intéressante est "SoftICE vient à la rescousse".

Veuillez citer les parties pertinentes du lien au lieu de simplement donner le lien ici.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...