On 07 August 2007 01:27, Olumide wrote:

> Larry Hall (Cygwin) wrote:
>> The best solution would be to uninstall McAfee (I'm serious!)  But if you
>> don't want to do that, try disabling real-time scanning.
> 
> I did it differently. I "asked" McAfee to consider setup.exe a low risk
> process :-) .

  There's something else you could do, if you can spare a few minutes: you 
could help out by contributing some information that would allow us to diagnose 
this problem more easily in future.

  These sorts of problems (cpu usage pegged at 100%, or mysterious hangs or 
fork failures) are often caused by buggy versions of antivirus, antispyware, 
personal firewall, or other similar security or system-related software that 
hooks into every running process and - because it doesn't hook in completely 
transparently - affects the behaviour of the operating system calls that cygwin 
relies on to work.

  I'm adding code to cygcheck to detect whether any of the software that has 
been known at some time to cause these kinds of problems are installed on the 
target system being cygchecked.  The way it detects whether the software is 
there or not is by looking for keys in the registry, files and directories on 
disk, or running processes or loaded DLLs in memory, that would indicate that 
one of the problematic applications is installed.  But I can't do it all 
myself, because I don't have any access to most of the software that has been 
reported to cause problems in the past.

  What I'd like is if you could take the attached sysinf.cc file, run:

  g++ sysinf.cc -o sysinf -DAUTOMATIC -lntdll

at the command-line, then execute:

  ./sysinf.exe > sysinf.txt

and email me the sysinf.txt output file (offlist).

  What that does is to show me a list of all running processes, and another of 
all loaded dlls, drivers, and any other kinds of executable modules, which I'll 
use to add as many methods of detection for as many of the troublesome 
applications as possible.

  If you have even a few more minutes to spare than that, if you could take a 
look in your registry, you'll probably find some interesting keys under 
HKEY_LOCAL_MACHINE\SOFTWARE, indeed most likely under 
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.  It would be very kind if you could list a 
bunch of them for me, either by exporting that key from the registry to a file 
and sending it to me, or just by making a few handy notes of the most 
interesting-looking keys under there, such as for example shown in this email 
sent yesterday to the cygwin-talk list:

http://cygwin.com/ml/cygwin-talk/2007-q3/msg00076.html


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....
/* Sysinf.cc

  Copyright Dave Korn 2007

  This file is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
  Software Foundation; either version 2, or (at your option) any later
  version.

  Sysinf.cc is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  for more details.

  You should have received a copy of the GNU General Public License
  along with Sysinf.cc; see the file COPYING.  If not see
  <http://www.gnu.org/licenses/>.



  To compile this utility under Cygwin, simply enter

          g++ sysinf.cc -o sysinf -lntdll

  at the commandline.  You invoke it with a single command-line argument,
  which is the integer value of the system information class (as defined
  by the NT native API and the SYSTEM_INFORMATION_CLASS enumeration) for
  which you wish to view the data returned by NtQuerySystemInformation.

  To build a simplified version that only dumps the system information
  class 5 and 11 data and ignores command-line arguments, add the compiler
  flag "-DAUTOMATIC" to the above command-line.

*/

#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <ntdef.h>
#include <ddk/ntapi.h>

#define RVS  "\e[7m"
#define NORM "\e[0m"

void dump_sysinf (int infonum)
{
  unsigned long size = 29360; //29232; //29168; //0x1000;
  unsigned long outsize;
  unsigned char *buffer = (unsigned char *) malloc (size);

  while (NtQuerySystemInformation ((SYSTEM_INFORMATION_CLASS)(infonum & 0xff),
    buffer, size, &outsize) == STATUS_INFO_LENGTH_MISMATCH)
  {
    size *= 2;
    free (buffer);
    buffer = (unsigned char *) malloc (size);
  }

  /* Now dump it out.  */
  unsigned int i, j;
  fprintf (stdout, "System Information #%d:  Size %d (0x%08x) Base $%08x\n", 
infonum, outsize, outsize, (unsigned int)buffer);
  for (i = 0; i < outsize; i += 16)
  {
    fprintf (stdout, " %04x:  ", i);
    for (j = 0; j < 16; j++)
    {
      if ((i + j) >= outsize)
        fprintf (stdout, ".. ");
      else
        fprintf (stdout, "%02x ", buffer[i + j]);
    }
    fprintf (stdout, "   ");
    for (j = 0; j < 16; j++)
    {
      unsigned char outch;
      if ((i + j) >= outsize)
        break;
      outch = buffer[i + j];
      if (outch < 0x20)
        fprintf (stdout, RVS "%c" NORM, outch + 0x40);
      else if (outch < 0x7f)
        fprintf (stdout, "%c", outch);
      else if (outch == 0x7f)
        fprintf (stdout, "~");
      else if (outch < 0xa0)
        fprintf (stdout, RVS "%c" NORM, outch + 0xC0);
      else
        fprintf (stdout, "%c", outch);
    }
    fprintf (stdout, "\n");
  }
}

int main (int argc, const char **argv)
{
#ifdef AUTOMATIC
  dump_sysinf (5);
  fprintf (stdout, "\n\n");
  dump_sysinf (11);
#else  /* !AUTOMATIC */
  if (argc != 2)
  {
    fprintf (stderr, "Usage: sysinf <systeminfonumber>");
    return -1;
  }

  char *endptr;
  unsigned long infonum = strtoul (argv[1], &endptr, 0);

  if ((infonum > 256) || *endptr)
  {
    fprintf (stderr, "Invalid info number %d ('%s')\n", infonum, argv[1]);
    return -1;
  }

  dump_sysinf (infonum);
#endif /* ?AUTOMATIC */
  return 0;
}

Attachment: COPYING
Description: Binary data

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to