Bonjour.
Il y a quelques années, nous avons acheté le composant scripter chez dream company.
Depuis, la société semble avoir disparu.
Depuis peu, des messages de violation d'accès sont apparus sur certaines machines (serveur windows 2008 64 bits)
En regardant dans le code, j'ai découvert que le composant écrit du langage machine dans un tmemorystream, puis associe un evt avec le code écrit dans le memorystream à l'aide de la fonction setmethodprop.
En mettant un point d'arrêt à l'adresse de la propriété memory du tmemorystream en vu cpu, je peux voir l'assembleur correspondant au code généré. il semble propre.
Mais lorsque le processeur saute à cette adresse, il y a une violation d'accès.
Le code écrit dans le memorystream n'est pas dans la partie segment de code et je suppose que c'est pour cela qu'il y a une violation d'accès.
(Bien que ça ne pose pas de pb sur d'autres os)
Je cherche donc une solution pour fixer ce bug.
Soit en trouvant un moyen pour écrire dans la partie segment de code, soit pour autoriser l'execution du code qui se trouve dans le memorystream ( le heap je suppose)
J'ai regardé du côté de la fonction writeprocessmemory, mais comment trouver une adresse à laquelle je peux écrire ?
(J'ai déjà regardé le composant tmsScripter, et il ne me permet pas de remplacer le composant de chez dream company)
Partager