SecuROM PA isn't detected in Paul.dll #176

Closed
opened 2026-01-29 21:06:50 +00:00 by claunia · 0 comments
Owner

Originally created by @Morlit55 on GitHub (Jul 21, 2024).

Disc http://redump.org/disc/116542/ in redump database. BOS fails to find SecuROM PA even if you have it scan Paul.dll directly.

Copying info that another user provided

var name = pex.FileDescription;
  
  if (name?.Contains("SecuROM PA") == true)
    return $"SecuROM Product Activation v{pex.GetInternalVersion()}";

name = pex.OriginalFilename;
if (name?.Equals("paul_dll_activate_and_play.dll") == true)
    return $"SecuROM Product Activation v{pex.GetInternalVersion()}";

name = pex.ProductName;
if (name?.Contains("SecuROM Activate & Play") == true)
    return $"SecuROM Product Activation v{pex.GetInternalVersion()}";

it turned out that BOS actually checks version-information resource in dll and if its differs from what expected its not detected being PA dll.

i.e. if file description doesn't contain "SecuROM PA" or original filename is not "paul_dll_activate_and_play.dll" or product name doesn't contain "SecuROM Product Activation" it fails.

The easiest fix to this approach would be to check InternalName for paul.dll or paul_dll_activate_and_play.dll or paul_dll_preview_and_review.dll or just paul* and FileVersion for its version output.

Originally created by @Morlit55 on GitHub (Jul 21, 2024). Disc http://redump.org/disc/116542/ in redump database. BOS fails to find SecuROM PA even if you have it scan Paul.dll directly. Copying info that another user provided ``` var name = pex.FileDescription; if (name?.Contains("SecuROM PA") == true) return $"SecuROM Product Activation v{pex.GetInternalVersion()}"; name = pex.OriginalFilename; if (name?.Equals("paul_dll_activate_and_play.dll") == true) return $"SecuROM Product Activation v{pex.GetInternalVersion()}"; name = pex.ProductName; if (name?.Contains("SecuROM Activate & Play") == true) return $"SecuROM Product Activation v{pex.GetInternalVersion()}"; ``` > it turned out that BOS actually checks version-information resource in dll and if its differs from what expected its not detected being PA dll. > i.e. if file description doesn't contain "SecuROM PA" or original filename is not "paul_dll_activate_and_play.dll" or product name doesn't contain "SecuROM Product Activation" it fails. > The easiest fix to this approach would be to check InternalName for paul.dll or paul_dll_activate_and_play.dll or paul_dll_preview_and_review.dll or just paul* and FileVersion for its version output.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SabreTools/BinaryObjectScanner#176