armpe_tester: better import handling
This commit is contained in:
parent
b3f63ce7ae
commit
5d93f86b4b
@ -303,9 +303,20 @@ static int import(void)
|
|||||||
{
|
{
|
||||||
void *coredll_imports = vaddr + get_le32(imports + 16);
|
void *coredll_imports = vaddr + get_le32(imports + 16);
|
||||||
print("coredll_imports=%p\n", coredll_imports);
|
print("coredll_imports=%p\n", coredll_imports);
|
||||||
set_le32(coredll_imports + 8, (unsigned) loadlibraryw);
|
void *oft = vaddr + get_le32(imports);
|
||||||
set_le32(coredll_imports + 4, (unsigned) getprocaddressa);
|
unsigned pos = 0;
|
||||||
set_le32(coredll_imports + 0, (unsigned) cachesync);
|
while (get_le32(oft + pos))
|
||||||
|
{
|
||||||
|
void *name = vaddr + get_le32(oft + pos) + 2;
|
||||||
|
print("name=%s\n", (char*) name);
|
||||||
|
if (strcasecmp(name, "loadlibraryw") == 0)
|
||||||
|
set_le32(coredll_imports + pos, (unsigned) loadlibraryw);
|
||||||
|
else if (strcasecmp(name, "getprocaddressa") == 0)
|
||||||
|
set_le32(coredll_imports + pos, (unsigned) getprocaddressa);
|
||||||
|
else if (strcasecmp(name, "cachesync") == 0)
|
||||||
|
set_le32(coredll_imports + pos, (unsigned) cachesync);
|
||||||
|
pos += 4;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
imports += 20;
|
imports += 20;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user