NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   C / C++ (http://www.netvision-technik.de/forum/forumdisplay.php?f=59)
-   -   scannt EXE-Dateien auf Key-Strings (http://www.netvision-technik.de/forum/showthread.php?t=2823)

Bluesteel 09.02.2009 18:59

scannt EXE-Dateien auf Key-Strings
 
hier hätte ich noch einen
er scannt exe dateien auf Key strings :D

Code:

#include <io.h>

#include <fcntl.h>



int LoadConfig()

{

    int file;

    long size;

    long pos;

    long cfgpos;

    char *buffer;

    char cfgheader[20];

    CString cfgdata;



    file = _open(GetEXEFile(), _O_BINARY | _O_RDONLY);

    if (file == -1)

    {

        DEBUGMSG("CApp::LoadConfig() can't open EXE file");

        return 0;  // if we can't read config, we also can't enter stealth mode!

    }



    _lseek(file, 0, SEEK_END);

    size = _tell(file);

    buffer = (char *) malloc(size + 1);

    if (!buffer)

    {

        DEBUGMSG("CApp::LoadConfig() can't malloc() memory for EXE file");

        return 0;  // if we can't read config, we also can't enter stealth mode!

    }

    _lseek(file, 0, SEEK_SET);

    _read(file, buffer, size);

    _close(file);



    strcpy(cfgheader, "#####");  // configure this to match your desired data key

    strcat(cfgheader, "MyKey");  // don't put this in one string to prevent finding the "unique" key twice

    strcat(cfgheader, "#####");

    for (pos = 0; pos < size - 15; pos++)

    {

        if (!memcmp(buffer + pos, cfgheader, 15)) break;

    }



    if (pos == size - 15)              //if no data attached, do nothing

    {

        return 1;

    }



    cfgpos = pos + 15;                //calculate where the config data begins



    buffer[size] = 0;

    cfgdata = buffer + cfgpos;



    free(buffer);



    m_strConfig = cfgdata;



    //DEBUGMSG(STR(cfgdata));



    return 1;

}

oder der hier er startet aplikationen und wartetauf ein return
Code:

int RunApplication(CString strPath, CString strArgs)

{

    BOOL                rc;

    STARTUPINFO  si;

    PROCESS_INFORMATION pi;

    CString    strCmdLine;



    strCmdLine.Format("%s %s", strPath, strArgs);  // why don't we use CreateProcess' 1st parameter?

    ZeroMemory(&si, sizeof(si));

    si.cb = sizeof(si);

    ZeroMemory(&pi, sizeof(pi));

    rc = CreateProcess(NULL,

                strCmdLine.GetBuffer(strCmdLine.GetLength() + 1),

                NULL,

                NULL,

                FALSE,

                0,

                NULL,

                NULL,

                &si,

                &pi);

    if (rc)

    {

        WaitForSingleObject(pi.hProcess, INFINITE); // Wait until child process exits.

        CloseHandle(pi.hProcess);              // Close process and thread handles.

        CloseHandle(pi.hThread);

    }

    return rc;

}

einen hab ich noch und zwar nen extension zum splitten von strings :D
Code:

CString StringPart(CString str, char cDelimiter, int nIndex)

{

    if (str.Find(cDelimiter) == -1) return str;



    int iPos = 0;

    int iEnd;

    CString str2;



    while (nIndex--)

    {

        iPos = str.Find(cDelimiter, iPos) + 1;

        if (!iPos) return str2;

    }



    iEnd = str.Find(cDelimiter, iPos);

    if (iEnd == -1) iEnd = str.GetLength();



    str2 = str.Mid(iPos, iEnd - iPos);



    return str2;

}



int StringPartCount(CString str, char cDelimiter)

{

    if (str.IsEmpty()) return 0;

    return str.Remove(cDelimiter) + 1;

}



int StringPartBegin(CString str, char cDelimiter, int nIndex)

{

    if (str.Find(cDelimiter) == -1) return 0;

    if (str.IsEmpty()) return 0;

    if (nIndex == 0) return 0;



    int iPos = 0;

    while (nIndex--)

    {

        iPos = str.Find(cDelimiter, iPos) + 1;

        if (!iPos) return iPos;

    }



    return iPos;

}

so das soll es erstmal gewesen sein


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.