
encore un truc de chiffrement sleep. a aussi utilisé le nom de dépôt GitHub par défaut pour celui-ci.
encore un truc de chiffrement de veille. J'ai aussi utilisé le nom de dépôt GitHub par défaut pour celui-ci.
TpAllocWork + TpPostWork + TpWaitForWork + TpReleaseWork pour créer + exécuter + nettoyer le callback.
Le callback est un assemblage bricolé qui met en file une tonne de gadgets ROP qui vont dépiler les arguments (soit des valeurs codées en dur, soit basés sur un décalage dans une structure passée en paramètre TpAllocWork) dans les bons registres, puis revenir au gadget/fonction suivant. Du padding est créé entre certains appels de fonction en poussant 5 valeurs poubelles + un gadget pour déplacer le pointeur de pile de 40 octets, comme solution bricolée pour corriger des trucs bizarres de pile que j'ai rencontrés. C'est aussi probablement pour ça que la pile d'appels est moche mais je ne sais pas comment faire autrement.
Si vous essayez d'étendre ce truc pour le rendre réellement utile, il va y avoir pas mal de bidouille bizarre au niveau de la pile (du moins de mon côté). Je ne peux pas non plus garantir que les gadgets ROP que j'ai trouvés seront présents dans toutes les versions de Windows (je développais sur Server 2016).
Kudaes, pour avoir créé RustChain d'où m'est venue l'idée du ROP
C5pider, pour avoir créé Ekko et m'avoir aidé à comprendre le chiffrement de veille
x86matthew, pour m'avoir aidé à résoudre des trucs bizarres de pile
NinjaParanoid, pour avoir fourni un article de blog sur les Tp Apis