Hi to all....
////////////////////////////////////////////
PUSH 214D84DD // thread id address out
PUSH 0
PUSH 0
PUSH 214D84CD // my function address to run in the thread
PUSH 0
PUSH 0
CALL DWORD PTR DS:[4EBD1204] // KERNEL32.CreateThread
waiting_label:
NOP
JMP waiting_label
////////////////////////////////////////////
Je mets un point d'arrêt sur ma fonction (214D84CD), mais après la CreateThread, dans la « boucle d'attente » ma fonction n'est pas appelée. Sinon, si j'appelle CreateThread mon application (et non la boucle d'attente) avec beaucoup d'autres threads, ma fonction est invoquée.Win32 Kernel32.CreateThread assembleur de
Pourquoi? Il y a des API "DoEvents" à forcer dans ma boucle pour appeler ma fonction de thread?
L'ID de thread (214D84DD) et la valeur de retour EAX ne sont pas NULL. Je cours mon application dans un débogueur (OllyDbg). Et je n'utilise aucun compilateur.
Un grand merci, Riccardo
Vous Pusing les arguments dans le mauvais ordre Utilisez un compilateur –
je pense que l'ordre est correct, car dans le débogueur je vois: | pSecurity = NULL | StackSize = 0 | ThreadFunction = 214D84CD | pThreadParm = NULL | CreationFlags = 0 \ pThreadId = 214D84DD – Riccardo