Guest User

Untitled

a guest
Jul 16th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. void RelocateRSRC(PBYTE prsrc, PIMAGE_RESOURCE_DIRECTORY pird, LONG Delta)
  2. {
  3.     if (DWORD NumberOfEntries = pird->NumberOfNamedEntries + pird->NumberOfIdEntries)
  4.     {
  5.         PIMAGE_RESOURCE_DIRECTORY_ENTRY pirde = (PIMAGE_RESOURCE_DIRECTORY_ENTRY)(pird + 1);
  6.  
  7.         do
  8.         {
  9.             if (pirde->DataIsDirectory)
  10.             {
  11.                 RelocateRSRC(prsrc,
  12.                     (PIMAGE_RESOURCE_DIRECTORY)(prsrc + pirde->OffsetToDirectory),
  13.                     Delta);
  14.             }
  15.             else
  16.             {
  17.                 PIMAGE_RESOURCE_DATA_ENTRY data =
  18.                     (PIMAGE_RESOURCE_DATA_ENTRY)(prsrc + pirde->OffsetToData);
  19.  
  20.                 data->OffsetToData += Delta;
  21.             }
  22.  
  23.         } while (pirde++, --NumberOfEntries);
  24.     }
  25. }
Add Comment
Please, Sign In to add comment