Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6584729
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T16:34:25+00:00 2026-05-25T16:34:25+00:00

Is there any way to postprocess a DLL and its .lib file to remove

  • 0

Is there any way to postprocess a DLL and its .lib file to remove symbols that I do not want within them?

Background:

The DLL’s code uses boost::serialization, which dllexports (many many) symbols. Apparently this is so as to cause the linker not to omit static objects that are unreferenced but have important side effects when initialized.

However, I’d very much prefer that there be no hint of boost within the DLL’s exported symbols.

I reason that since the link step has completed that it would be safe to remove the mess in the symbol table caused by the library.

Hence, I am wondering if there exists some tool to accomplish this.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T16:34:26+00:00Added an answer on May 25, 2026 at 4:34 pm

    I don’t know a tool that does this, but here is a piece of C++ code you can build that can change a DLL exported names. In this case, you can set the names you don’t want to an empty string (the 0 character):

    void RemoveUnwantedExports(PSTR ImageName)
    {
        LOADED_IMAGE image;
        // load dll in memory for r/w access
        // you'll need Imagehlp.h and Imagehlp.lib to compile successfully
        if (MapAndLoad(ImageName, NULL, &image, TRUE, FALSE))
        {
            // get the export table
            ULONG size;
            PIMAGE_EXPORT_DIRECTORY exports = (PIMAGE_EXPORT_DIRECTORY)ImageDirectoryEntryToData(image.MappedAddress, FALSE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
    
            PIMAGE_SECTION_HEADER *pHeader = new PIMAGE_SECTION_HEADER();
    
            // get the names address
            PULONG names = (PULONG)ImageRvaToVa(image.FileHeader, image.MappedAddress, exports->AddressOfNames, pHeader);
    
            for (ULONG i = 0; i < exports->NumberOfNames; i++)
            {
                // get a given name
                PSTR name = (PSTR)ImageRvaToVa(image.FileHeader, image.MappedAddress, names[i] , pHeader);
    
                // printf("%s\n", name); // debug info
    
                if (IsUnwanted(name))
                {
                    name[0] = 0; // set it to an empty string
                }
            }
    
            UnMapAndLoad(&image); // commit & write
        }
    }
    
    BOOL IsUnwanted(PSTR name)
    {
      // implement this
    }
    

    It’s more some kind of obfuscation but removing names completely is more complex since it requires a full consistent rewrite of the exports section.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there any way to have something that looks just like a file on
Is there any way to check whether a file is locked without using a
Is there any way to apply an attribute to a model file in ASP.NET
Is there any way to set the text color of a certain tab that's
Is there any way, to change the field's *min_length* argument inside form constructor? That
Is there any way that I can export dia diagram into html (I know
Is there any way to trigger a function that's called when the user types
Is there any way to hover over an element that's already hidden. I am
Is there any way to simulate a try-finally or try-except in a language that
Is there any way to capture the MouseDown even from the .NET 2.0 TextBox

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.