Exemple #1
0
/*
Function: setCompnameFromFile
command line command to set computer name from file.

Uses a list of files to find computer name. List consists of 
command line parameters and hard coded *\\device\\floppy0\\compname.txt*.

Tries to read each file and extract the computer name in the list till a 
valid one is found. This is set as computer name afterwards.

Parameters:
io - <IO>-Controller
args - command line
*/
void setCompnameFromFile(IO &io,char *args)
{
	Indenter i(io);
	int numFiles=mainSingleton->getArgc();
	char **valueNames=(char**)io.malloc(4*numFiles);
	char **cmdargs=mainSingleton->getArgs();

	io.print("Computername file pipe: ");

	for (int i=1;i<numFiles;i++)
	{
		io.print(cmdargs[i]);
		io.print(", ");
		valueNames[i-1]=cmdargs[i];
	}
	
	valueNames[numFiles-1]="\\device\\floppy0\\compname.txt";
	io.println(valueNames[numFiles-1]);

	io.println("Reading computer-name from ...");

	for (int i=0;i<numFiles;i++)
	{
		io.println(valueNames[i]);
		wchar_t *buffer2=readComputerNameFromFile(io,io.char2wchar(valueNames[i]));
		if (buffer2!=0)
		{
			setComputerName(io,buffer2);
			io.free(buffer2);
			io.free(valueNames);
			return;
		}
	}
	io.free(valueNames);
}
Exemple #2
0
int main(int argv, char** argc)
{
    if (parseArgs(argv, argc)){
        return Config::EXIT_NORMAL;
    }

    Util::init();
    string key = entry();
    if (key.empty()){
        printc("no key provided!\n", ANSI_RED);
        print("run cle --help for more information\n");
        return Config::EXIT_NO_ENTRY;
    }

    printc("cle " + Config::vn + "\n", ANSI_BLUE);
    if (verbose()){
        print("opening entry " + entry() + "\n");             
    }

    Util::hideText();
    print("enter passphrase > ");
    string pass = IO::readPass();
    Util::showText();
    print();

    unsigned char* hash = new unsigned char[32];
    Util::fileHash((pass + key).c_str(), pass.size() + key.size(), hash);
    string path = Util::hexstr(hash, 32);
    if (verbose()){
        print("key hash:\n");
        print(path + "\n");
    }

    auto file = IO::readFile(path);
    if (file.fail()){
        print("key does not exist under passphrase.\n");
        if (IO::prompt("create it? [Y/n] > ") == "Y"){
            IO::newKey(path); 
            Crypt crypt(const_cast<char*>(pass.c_str()), pass.size());
            crypt.encrypt(path, path);
        } else{
            print("not creating key.\n");
        }
    } else{
        printc("entry for " + key + "\n\n", ANSI_BLUE);
        unsigned char* salt = Util::readSalt(path);
        Crypt crypt(const_cast<char*>(pass.c_str()), pass.size(), salt);
        crypt.decrypt(path, path);
    }
    
    return Config::EXIT_NORMAL;
}
Exemple #3
0
/*
Function: setComputerNameCmd
command line command for setting the computer name manually

Parameters:
io - <IO>-Controller
args - command line argument string
*/
void setComputerNameCmd(IO &io,char *args)
{
	Indenter i(io);
	if (strlen(args)<2)
	{
		io.println("Syntax: setComputerName <newComputerName>");
		return;
	}
	io.print("Setting Computer Name to: ");
	io.println(args+1);
	setComputerName(io,io.char2wchar(args+1));
}
Exemple #4
0
void showName(IO &io,char *args)
{
	if (!*args)
	{
		io.println("No username given");
		return;
	}


	wchar_t buffer[1000];
	_snwprintf(buffer,1000,L"Machine\\SAM\\SAM\\Domains\\Account\\Users\\Names\\%S",&args[1]);

	RegKey nameKey(buffer);

	char buf[1000];

	if (!nameKey.valid())
	{
		_snprintf(buf,sizeof(buf),"User not found: %s",&args[1]);
		io.println(buf);
		return;
	}
	
	ULONG type;
	int length = nameKey.get_value(&UnicodeString(L""),&type,buf,sizeof(buffer));

	_snwprintf(buffer,1000,L"Machine\\SAM\\SAM\\Domains\\Account\\Users\\%08X",type);

	RegKey userKey(buffer);
	length = userKey.get_value(&UnicodeString(L"V"),&type,buf,sizeof(buffer));
	
	entry *es=read_entries(buf,V_ENTRY_COUNT);

	char buf2[1000];
	io.print("Name: ");
	io.println(UnicodeString((wchar_t *)es[USERNAME_E].data,(unsigned short)es[USERNAME_E].length).chars(buf2,sizeof(buf2)));
	io.print("Voller Name: ");
	io.println(UnicodeString((wchar_t *)es[FULLNAME_E].data,(unsigned short)es[FULLNAME_E].length).chars(buf2,sizeof(buf2)));
}