Konvertierung der Commandline Argumente
-
hi zusammen..
ich habe versucht ein vorhandenes programm mit argumenten zu erweitern. jedoch klappt aus mir unerfindlichen gründen danach ein funktionsaufruf nicht mehr..
int main(int argc, char* argv[]) { switch (argc) { case 3: printf("DenyLogon\r\n-------------------------------------------------------\r\n\r\n"); LSA_HANDLE lsahPolicyHandle; WCHAR computername[7]; mbstowcs(computername, argv[1], 7); // lsahPolicyHandle = GetPolicyHandle(computername); // GEHT NICHT! lsahPolicyHandle = GetPolicyHandle(L"GIAL053"); // GEHT! if(lsahPolicyHandle != NULL) { DisableLogonRights(lsahPolicyHandle, atoi(argv[2])); ClosePolicyHandle(lsahPolicyHandle); } return 0; break; default: printf ("\r\n\r\n Fehler: Es wurden nicht genuegend Parameter uebergeben!\r\n\r\n -------------------------------------------------------\r\n\r\n"); printf (" DenyLogon.exe Computer Zeit\r\n\r\n Beispiel: DenyLogon.exe GIAL123 15\n\n"); printf (" Computer:\tComputername ohne Backslashes\r\n Zeit:\t\tDauer der Sperrung in Sekunden\r\n\r\n"); return 0; break; } }und zwar geht es um den computername. wenn ich ihn hardcoded drin habe funktionierts, ansonsten geht es nicht.
kann mir wer helfen?
so long
cYrus
-
Hi,
in Deinem wchar buffer ist platz für 7 Zeichen ... was ist mit
der terminierenden \0 am Ende ?Kaum 10 Zeilen Code und schon ein Bufferoverflow ... HURRA !
MfG.