Skip to content

Steps to remove(?) cd/dvd-cops content check #367

Closed
@HeroponRikiBestest

Description

@HeroponRikiBestest

I'm going to make a PR for this, but I'm opening this issue because I need to know a few things before I do. I'm specifically referring to this section:

public class CDDVDCops : IContentCheck, IExecutableCheck<NewExecutable>, IExecutableCheck<PortableExecutable>, IPathCheck
    {
        // TODO: Investigate reference to "CD32COPS.DLL" in "WETFLIPP.QZ_" in IA item "[redacted]".
        /// <inheritdoc/>
        public string? CheckContents(string file, byte[] fileContent, bool includeDebug)
        {
            // TODO: Obtain a sample to find where this string is in a typical executable
            var contentMatchSets = new List<ContentMatchSet>
            {
                // TODO: Remove from here once it's confirmed that no PE executables contain this string
                // CD-Cops,  ver. 
                new(new byte?[]
                {
                    0x43, 0x44, 0x2D, 0x43, 0x6F, 0x70, 0x73, 0x2C,
                    0x20, 0x20, 0x76, 0x65, 0x72, 0x2E, 0x20
                }, GetVersion, "CD-Cops (Unconfirmed - Please report to us on Github)"),

                // // DVD-Cops,  ver. 
                new(new byte?[]
                {
                    0x44, 0x56, 0x44, 0x2D, 0x43, 0x6F, 0x70, 0x73,
                    0x2C, 0x20, 0x20, 0x76, 0x65, 0x72, 0x2E, 0x20
                }, GetVersion, "DVD-Cops (Unconfirmed - Please report to us on Github)"),
            };

            return MatchUtil.GetFirstMatch(file, fileContent, contentMatchSets, includeDebug);
        }

Where it performs an NE/PE content check for CD-Cops, ver. or DVD-Cops, ver. .

The questions I have:

  • Is there any way this check would ever be handleable for NE? NE doesn't have sections, so I'm not sure how you avoid a content check
  • Why is that WETFLIPP.QZ_ sample mentioned here? It (or any other files in that sample) doesn't match either byte array.
  • Are there any known samples for this? I have some, but not enough for me to be super confident.
  • Two of my 3 samples are NE DVD-Cops samples. Even with --debug, the second string doesn't match. The issue is that, at least in the samples I have, there's only one space between "," and "ver" and not two. That said, I wouldn't be surprised if there are samples out there that do have two spaces. What's the best way to handle "some arbitrary number of spaces (up to a certain amount?)" for these byte arrays?

Samples, if necessary:
CD-Cops, PE
https://archive.org/details/cover_202501
https://archive.org/download/cover_202501/BTBXXXXX300.iso/setup32%2Fbib.dll

DVD-Cops, NE
https://archive.org/details/der-brockhaus-multimedial-2002-premium
https://archive.org/download/der-brockhaus-multimedial-2002-premium/BMM2002PDVD.iso/Bmm%2FBMM.exe
https://archive.org/details/der-brockhaus-multimedial-2003-premium
https://archive.org/download/der-brockhaus-multimedial-2003-premium/BMM2003PDVD.iso/Bmm%2Fbmm.exe

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions