Tema: Re: ar sprendziat sysadminday uzduotis?:)
Autorius: Domas Mituzas
Data: 2008-07-25 17:16:17
> O ar nepaprasčiau tiesiog pasigrep'inti (jei įmanoma, žinoma) patį 
> dump'ą žinant, kad raktas saugomas Key struktūroje, o ji va tokia, su 
> konstantų (type, flags) „pėdsaku“ priekyje:

Nelabai įmanoma grepintis, raktas saugomas daug maž tokioj struktūroj 
skaičiukais beigi bitukais, o ne tekstu:

(gdb) print *idtable[2]->idlist->tqh_first->key->rsa
$17 = {pad = 0, version = 0, meth = 0x969f40, engine = 0x0, n = 
0x9952778, e = 0x9952790, d = 0x99527a8, p = 0x99527f0,
  q = 0x99527d8, dmp1 = 0x9952820, dmq1 = 0x9952808, iqmp = 0x99527c0, 
ex_data = {sk = 0x0, dummy = 0}, references = 1, flags = 14,
  _method_mod_n = 0x0, _method_mod_p = 0x0, _method_mod_q = 0x0, 
bignum_data = 0x0, blinding = 0x9952eb8, mt_blinding = 0x0}

tačiau šitoj struktūroj yra viskas, ko reikia sėkmingam raktui ;-)

O iki šito labai lengva prieit per:

(gdb) print idtable
$15 = {{nentries = 0, idlist = {tqh_first = 0x0, tqh_last = 0xbdd1c4}}, 
{nentries = 0, idlist = {tqh_first = 0x0,
      tqh_last = 0xbdd1d0}}, {nentries = 1, idlist = {tqh_first = 
0x9952900, tqh_last = 0x9952900}}}

Pagal tai galima žygiuot į:

(gdb) print *idtable[2]->idlist->tqh_first
$12 = {next = {tqe_next = 0x0, tqe_prev = 0xbdd1dc}, key = 0x9952610, 
comment = 0x9952b28 "sysadmin", death = 0, confirm = 0}

....

(gdb) print *idtable[2]->idlist->tqh_first->key
$16 = {type = 1, flags = 0, rsa = 0x9952628, dsa = 0x0, nss = 0x0}




Domas