> 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