* Makefile.in (cygcheck.exe): Link against ntdll.
* bloda.cc: Use statically linked functions throughout. * cygpath.cc: Drop 9x considerations. * mkgroup.c: Revamp. Redefine -l and -d options to take optional machine and domain parameters. Redefine -c to work always, using token information. Add -L, -D, -C to create unique groupnames in domain\group syntax. Add -S option to define domain\group separator char. Ignore -u and -s options. * mkpasswd.c: Revamp. Redefine -l and -d options to take optional machine and domain parameters. Redefine -c to work always, using token information. Add -L, -D, -C to create unique usernames in domain\user syntax. Add -S option to define domain\user separator char. Ignore -g and -s options. Prefer to take homedir from $HOME over $HOMEDRIVE/$HOMEPATH. * path.cc (oopts): Add "acl", "noacl", "posix=0" and "posix=1" options. (getmntent): Accomodate throughout. * ps.cc: Fix copyright dates. * utils.sgml: Fix text for mkgroup and mkpasswd.
This commit is contained in:
@@ -108,24 +108,13 @@ static struct bad_app_info big_list_of_dodgy_apps[] =
|
||||
|
||||
static const size_t num_of_dodgy_apps = sizeof (big_list_of_dodgy_apps) / sizeof (big_list_of_dodgy_apps[0]);
|
||||
|
||||
/* This function is not in the ntdll export lib, so it has
|
||||
to be looked up at runtime and called through a pointer. */
|
||||
VOID NTAPI (*pRtlFreeUnicodeString)(PUNICODE_STRING) = NULL;
|
||||
|
||||
NTSTATUS NTAPI (*pNtQuerySystemInformation) (SYSTEM_INFORMATION_CLASS,
|
||||
PVOID, ULONG, PULONG) = NULL;
|
||||
|
||||
NTSTATUS NTAPI (*pRtlAnsiStringToUnicodeString) (PUNICODE_STRING, PANSI_STRING,
|
||||
BOOLEAN) = NULL;
|
||||
|
||||
|
||||
static PSYSTEM_PROCESSES
|
||||
get_process_list (void)
|
||||
{
|
||||
int n_procs = 0x100;
|
||||
PSYSTEM_PROCESSES pslist = (PSYSTEM_PROCESSES) malloc (n_procs * sizeof *pslist);
|
||||
|
||||
while (pNtQuerySystemInformation (SystemProcessesAndThreadsInformation,
|
||||
while (NtQuerySystemInformation (SystemProcessesAndThreadsInformation,
|
||||
pslist, n_procs * sizeof *pslist, 0) == STATUS_INFO_LENGTH_MISMATCH)
|
||||
{
|
||||
n_procs *= 2;
|
||||
@@ -141,7 +130,7 @@ get_module_list (void)
|
||||
int modsize = 0x1000;
|
||||
PSYSTEM_MODULE_INFORMATION modlist = (PSYSTEM_MODULE_INFORMATION) malloc (modsize);
|
||||
|
||||
while (pNtQuerySystemInformation (SystemModuleInformation,
|
||||
while (NtQuerySystemInformation (SystemModuleInformation,
|
||||
modlist, modsize, NULL) == STATUS_INFO_LENGTH_MISMATCH)
|
||||
{
|
||||
modsize *= 2;
|
||||
@@ -299,14 +288,14 @@ detect_dodgy_app (const struct bad_app_det *det, PSYSTEM_PROCESSES pslist, PSYST
|
||||
/* Equivalent of RtlInitAnsiString. */
|
||||
ansiname.Length = ansiname.MaximumLength = strlen (det->param);
|
||||
ansiname.Buffer = (CHAR *) det->param;
|
||||
rv = pRtlAnsiStringToUnicodeString (&unicodename, &ansiname, TRUE);
|
||||
rv = RtlAnsiStringToUnicodeString (&unicodename, &ansiname, TRUE);
|
||||
if (rv != STATUS_SUCCESS)
|
||||
{
|
||||
printf ("Ansi to unicode conversion failure $%08x\n", (unsigned int) rv);
|
||||
break;
|
||||
}
|
||||
found = find_process_in_list (pslist, &unicodename);
|
||||
pRtlFreeUnicodeString (&unicodename);
|
||||
RtlFreeUnicodeString (&unicodename);
|
||||
if (found)
|
||||
{
|
||||
dbg_printf (("found!\n"));
|
||||
@@ -347,25 +336,6 @@ dump_dodgy_apps (int verbose)
|
||||
size_t i, n_det = 0;
|
||||
PSYSTEM_PROCESSES pslist;
|
||||
PSYSTEM_MODULE_INFORMATION modlist;
|
||||
HMODULE ntdll;
|
||||
|
||||
if ((ntdll = LoadLibrary ("ntdll.dll")) == NULL)
|
||||
{
|
||||
puts ("Skipping dodgy app check on Win9x/ME.");
|
||||
return;
|
||||
}
|
||||
|
||||
#define GPA(func,rv) \
|
||||
if ((p##func = (rv) GetProcAddress (ntdll, #func)) == NULL) \
|
||||
{ \
|
||||
puts ("Can't GetProcAddress() for " #func ", " \
|
||||
"skipping dodgy app check."); \
|
||||
return; \
|
||||
}
|
||||
GPA(NtQuerySystemInformation, NTSTATUS NTAPI (*) (SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG));
|
||||
GPA(RtlFreeUnicodeString, VOID NTAPI (*)(PUNICODE_STRING));
|
||||
GPA(RtlAnsiStringToUnicodeString, NTSTATUS NTAPI (*)(PUNICODE_STRING,PANSI_STRING,BOOLEAN));
|
||||
#undef GPA
|
||||
|
||||
/* Read system info for detect testing. */
|
||||
pslist = get_process_list ();
|
||||
|
Reference in New Issue
Block a user