mirror of
https://github.com/upx/upx
synced 2025-10-05 19:20:23 +08:00
pe: fixed unpack problem in rebuildImports()
This commit is contained in:
parent
28d56bab04
commit
d2c36eefc9
|
@ -2247,6 +2247,7 @@ void PackArmPe::rebuildImports(upx_byte *& extrainfo)
|
|||
import_desc *im = im0;
|
||||
upx_byte *dllnames = Obuf + inamespos;
|
||||
upx_byte *importednames = dllnames + sdllnames;
|
||||
upx_byte * const importednames_start = importednames;
|
||||
|
||||
for (p = idata; get_le32(p) != 0; ++p)
|
||||
{
|
||||
|
@ -2282,7 +2283,7 @@ void PackArmPe::rebuildImports(upx_byte *& extrainfo)
|
|||
const unsigned ilen = strlen(++p) + 1;
|
||||
if (inamespos)
|
||||
{
|
||||
if (ptr_diff(importednames,oimpdlls) & 1)
|
||||
if (ptr_diff(importednames, importednames_start) & 1)
|
||||
importednames -= 1;
|
||||
omemcpy(importednames + 2, p, ilen);
|
||||
//;;;printf(" %s",importednames+2);
|
||||
|
|
|
@ -2353,6 +2353,7 @@ void PackW32Pe::rebuildImports(upx_byte *& extrainfo)
|
|||
import_desc *im = im0;
|
||||
upx_byte *dllnames = Obuf + inamespos;
|
||||
upx_byte *importednames = dllnames + sdllnames;
|
||||
upx_byte * const importednames_start = importednames;
|
||||
|
||||
for (p = idata; get_le32(p) != 0; ++p)
|
||||
{
|
||||
|
@ -2388,8 +2389,7 @@ void PackW32Pe::rebuildImports(upx_byte *& extrainfo)
|
|||
const unsigned ilen = strlen(++p) + 1;
|
||||
if (inamespos)
|
||||
{
|
||||
assert(oimpdlls != NULL); // FIXME
|
||||
if (ptr_diff(importednames,oimpdlls) & 1)
|
||||
if (ptr_diff(importednames, importednames_start) & 1)
|
||||
importednames -= 1;
|
||||
omemcpy(importednames + 2, p, ilen);
|
||||
//;;;printf(" %s",importednames+2);
|
||||
|
|
Loading…
Reference in New Issue
Block a user