int
test2()
{
EZPDB pdb
=
{
0
};
PVOID OldValue
=
NULL;
Wow64DisableWow64FsRedirection(&OldValue);
/
/
"765K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3I4Q4x3X3g2T1L8r3q4U0K9$3W2F1N6o6y4Q4x3X3g2U0L8$3#2Q4x3@1p5^5z5q4)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0r3M7%4W2E0j5X3!0D9M7#2)9J5c8R3`.`."
DWORD dwError
=
EzInitPdb(&pdb,
"C:\\Windows\\System32\\", "
ntoskrnl.exe
", TRUE, NULL, "
D:\\symboldownload");
Wow64RevertWow64FsRedirection(&OldValue);
if
(dwError !
=
0
)
{
printf(
"init pdb error: %x\n"
, dwError);
return
dwError;
}
dwError
=
EzLoadPdb(&pdb);
if
(dwError !
=
0
)
{
printf(
"load pdb error: %x\n"
, dwError);
return
dwError;
}
DWORD rva
=
0
;
DWORD Offset
=
0
;
if
(EzGetRva(&pdb,
"KeServiceDescriptorTable"
, &rva))
{
printf(
"KeServiceDescriptorTable: %x\n"
, rva);
}
if
(EzGetRva(&pdb,
"PspTerminateThreadByPointer"
, &rva))
{
printf(
"PspTerminateThreadByPointer: %x\n"
, rva);
}
if
(EzGetOffset(&pdb,
"_EPROCESS"
, L
"ActiveProcessLinks"
, &Offset))
{
printf(
"_EPROCESS.ActiveProcessLinks: %x\n"
, Offset);
}
if
(EzGetOffset(&pdb,
"_ETHREAD"
, L
"ThreadListEntry"
, &Offset))
{
printf(
"_ETHREAD.ThreadListEntry: %x\n"
, Offset);
}
EzPdbUnload(&pdb);
return
0
;
}