Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2479 connectés 

 


Dernière réponse
Sujet : [Windows] Info sur thread ?
eraser merci de ta réponse.
J'ai également trouvé des articles parlant d'une solution similaire (en partant du process id)
 
DWORD GetObsfucator()
{
  DWORD _dw = 0, _dwCurProcId = GetCurrentProcessId();
__asm {
 mov eax,dword ptr fs:[18h]  
 mov eax,dword ptr [eax+30h]  
 mov ebx,eax
 xor ebx,dword ptr [_dwCurProcId]
 mov dword ptr [_dw],ebx  };
 
  return _dw;
}
malheureusement, je suis sous NT.
Et le dword en 30h (ptr process database)n'est pas affecté pour les TIB sous Nt.
 
Mais peut etre ta solution fonctionnera :) , bien que je trouve le sub eax,10h assez strange.
 
en tout cas merci

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
eraser merci de ta réponse.
J'ai également trouvé des articles parlant d'une solution similaire (en partant du process id)
 
DWORD GetObsfucator()
{
  DWORD _dw = 0, _dwCurProcId = GetCurrentProcessId();
__asm {
 mov eax,dword ptr fs:[18h]  
 mov eax,dword ptr [eax+30h]  
 mov ebx,eax
 xor ebx,dword ptr [_dwCurProcId]
 mov dword ptr [_dw],ebx  };
 
  return _dw;
}
malheureusement, je suis sous NT.
Et le dword en 30h (ptr process database)n'est pas affecté pour les TIB sous Nt.
 
Mais peut etre ta solution fonctionnera :) , bien que je trouve le sub eax,10h assez strange.
 
en tout cas merci
gnoof Il y a longtemps que je n'ai pas fait ce genre de manip mais je vais essayé de t'aider.
Le plus simple est que tu trouve le livre de Matt Pietrek "programmation systeme sous w95" (pas certain du titre).
Sous 95 et 98 tu as
thread database=(thread id)XOR(obsfucator)
process database=(process id)XOR(obsfucator)
le TIB que tu cherche commence à l'offset 10h (à vérifier) dans la thread database.
Voilà le code qu'utilise Matt Pietrek  dans son livre
/////////////////////
    tid = GetCurrentThreadId();
     
    __asm {
            mov     ax, fs
            mov     es, ax
            mov     eax, 18h
            mov     eax, es:[eax]
            sub     eax, 10h
            xor     eax,[tid]
            mov     [Unobsfucator], eax
    }  
/////////////////
PPROCESS_DATABASE PIDToPDB( DWORD pid )
{
    return (PPROCESS_DATABASE)(pid ^ Unobsfucator);
}
 
PTHREAD_DATABASE TIDToTDB( DWORD tid )
{
    return (PTHREAD_DATABASE)(tid ^ Unobsfucator);
}
 
voilà bonne bidouille
eraser Hello
 
quelqu'un sait il si une thread peut voir le TIB (Thread Information Block) des autres threads du même process ? si oui comment accéder à cette info ?
 
@+

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)