1. C++ / Говнокод #591

    +142.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    CreateZipFromFolder(CString m_outfile, CString outfolder)
    {
     CString m_outputfilename = m_outfile;
     CString outpath = outfolder;
     CString p;
    
     TCHAR lpPathBuffer[BUFSIZE];
     TCHAR lpPathBuffer1[BUFSIZE];
     DWORD dwBufSize=BUFSIZE;
    
     DWORD dwRetVal;
     //find temp directory;
     dwRetVal = GetTempPath(dwBufSize, //buffer length
         lpPathBuffer); //path buffer 
         
        if (dwRetVal > dwBufSize || (dwRetVal == 0)) {
            printf ("Failed to get temp path (%d)\n", GetLastError());
            FILE *fp = fopen("C:\\Zip.vbs","w+");
        }
        
        FILE *fp ;
        strcat(lpPathBuffer,"zip.vbs");
    
        CString fileName = lpPathBuffer ;
    
        if((fileName[0] != '\0'))
            fp = fopen(fileName,"w+");
        else(fp = fopen("C:\\Zip.vbs","w+"));
            p.LoadString(RESID_30);
            
        fprintf(fp,"Dim fso, winShell, MyTarget, MySource, file \n") ;
        fprintf(fp,"Set fso = CreateObject(");
        fprintf(fp,"%s",p);
        fprintf(fp,"Scripting.FileSystemObject");
        fprintf(fp,"%s",p);
        fprintf(fp,")   \n");
        fprintf(fp,"Set winShell = createObject(");
        fprintf(fp,"%s",p);
        fprintf(fp,"Shell.Application");
        fprintf(fp,"%s",p);
        fprintf(fp,")    \n");
        fprintf(fp,"MySource =");
        fprintf(fp,"%s",p);
        fprintf(fp,"%s",outpath);
        fprintf(fp,"%s \n",p);
        fprintf(fp,"MyTarget =");
        fprintf(fp,"%s",p);
        fprintf(fp,"%s",m_outputfilename);
        fprintf(fp,"%s \n",p);
        fprintf(fp,"Set file = fso.CreateTextFile(MyTarget, True)   \n");
        fprintf(fp,"file.write ");
        fprintf(fp,"%s",p);
        fprintf(fp,"PK");
        fprintf(fp,"%s",p);
        fprintf(fp,"& chr(5) & chr(6) & string(18,chr(0)) \n");
        fprintf(fp,"file.close \n");
        fprintf(fp,"winShell.namespace(MyTarget).CopyHere winShell.namespace(MySource).items    \n");       fprintf(fp,"do until winShell.namespace(MyTarget).items.count = winShell.namespace(MySource).items.count    \n");
        fprintf(fp,"wscript.sleep 1000 \n");
        fprintf(fp,"loop \n \n");
        fprintf(fp,"Set winShell = Nothing \n");
        fprintf(fp,"Set fso = Nothing");
        fclose(fp);
    
        PROCESS_INFORMATION pi;
        STARTUPINFO si;
        ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        ZeroMemory( &pi, sizeof(pi) );
    
        CString filename;
        filename = p + lpPathBuffer + p;
        CString szCommand;
        
        BOOL ret = Is64Bit();
        if(ret) {
            DWORD dwRetVal;
            //get the windows directory;
            dwRetVal = GetWindowsDirectory(lpPathBuffer1,dwBufSize); //path buffer
            strcat(lpPathBuffer1,"\\syswow64\\");
            szCommand = lpPathBuffer1;
            szCommand +="cmd.exe /c cscript //B ";
        }   else {
                szCommand ="cmd.exe /c cscript //B ";
        }
    
        szCommand += filename ;
        if(CreateProcess(NULL,szCommand.GetBuffer(szCommand.GetLength()),NULL,NULL,FALSE,DETACHED_PROCESS,NULL,NULL,&si,&pi)) {
            WaitForSingleObject( pi.hProcess, INFINITE ); 
            CloseHandle( pi.hProcess );
            CloseHandle( pi.hThread );
        }
        
        return 0;
    }

    Запостил: guest, 20 Февраля 2009

    Комментарии (1) RSS

    • Keeper:
      Как вырезать гланды автогеном через задний проход.
      Ответить

    Добавить комментарий