[pso] [tema1][win]iterare peste lista de procese

Razvan Deaconescu razvand at cs.pub.ro
Sat Mar 17 11:35:26 EET 2007


Andrei Popa wrote:
> Singura dificultate este ca trebuie aflate offset-urile la
> ActiveProcessLinks 
> si ImageFileName care difera in functie de versiunea de windows, daca au
> modificat structura EPROCESS.
> Mai e si faza ca aceasta lista este protejata de un lock, caruia trebuie
> sa-i afli adresa si sa il acquire/release ca sa ai lista consistenta dar
> n-am mai facut si asta...
> 
> am facut un mic tutorial:
> Instalati DDK-ul pt. versiunea de windows pe care o aveti:
> http://www.microsoft.com/whdc/devtools/ddk/default.mspx
> Instalati debugging tools:
> http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
> 
> Daca nu aveti conexiune la internet permanenta downlodati si instalati
> symblourile:
> http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx
> 
> In WinDbg:
> 
> File->Symbol File Path si se introduce "srv*c:
> \tmp*http://msdl.microsoft.com/download/symbols" daca aveti internet.
> Daca nu, dati calea unde ati instalat symbourile de mai sus.
> 
> File->Kernel Debug, selectati tab-ul "Local" si apasati OK.
> 
> Dati comanda "dt nt!_EPROCESS" pt. a va arata structura EPROCESS.
> Acum puteti sa vedeti la ce offset se afla campurile in structura
> EPROCESS.
> 
> Inlocuiti in codul sursa cele doua offset-uri, compilati si incarcati
> modulul avand Dbgview pornit si va va printa lista de
> procese.(offset-urile de mai jos sunt pe windows xp sp2).

cul staf :-)

asa am facut si noi la tema 1 de Windows ca sa aflam tabela shadow :-P 
(in sci_win.h in functia get_shadow); am investigat cu debugger-ul ca sa 
aflam offset-ul relativ la KeSystemServiceTable (nu puteam exporta 
folosind extern tabela shadow)

oricum e un pic cam complicat pentru laboratorul 2, da' e un exercitiu 
util; demonstreaza ca nimic nu e imposibil de realizat ;-)

nice work, Andrei

Razvan


More information about the pso mailing list