एक स्वयं हटाने कार्यक्रमसी में एक स्वयं को हटाने कार्यक्रम ++ समझना
#include <windows.h>
#include <stdio.h>
void main(int argc, char* argv[])
{
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0};
si.cb = sizeof(si);
if (argc == 1)
{
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
CopyFile(argv[0], "1.exe", FALSE);
MoveFile(argv[0], "2.exe");
CreateFile("1.exe", 0, FILE_SHARE_READ, &sa,
OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, NULL);
CreateProcess(NULL, "1.exe x", NULL, NULL,
TRUE, 0, NULL, NULL, &si, &pi);
}
else if (argc == 2)
{
while(!DeleteFile("2.exe"));
CreateProcess(NULL, "net", NULL, NULL, TRUE,
DEBUG_ONLY_THIS_PROCESS, NULL, NULL, &si, &pi);
}
}
अगर मैं इस को दूर नहीं है।
क्या कोई मुझे बता सकता है कि यह कैसे काम करता है?
, यह काम नहीं करता ... अजीब। – Benj
क्योंकि फ़ाइल नाम स्ट्रिंग एसीआई कोडिंग है। शायद आप stirring के आसपास _T() जोड़ सकते हैं। – pl8787
हाहा, मैंने ऐसा किया, यह संकलित हुआ, मेरा मतलब है कि यह रनटाइम पर काम नहीं करता है। – Benj