folder Tahribat.com Forumları
linefolder C - C++
linefolder X64 Sistemler İçin Görev Yöneticisinden İşlem Gizleme Sorunu - Cpp



X64 Sistemler İçin Görev Yöneticisinden İşlem Gizleme Sorunu - Cpp

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek
    /* 
     * File:   main.cpp
     * Author: Oguzhan
     *
     * Created on 7 Eylül 2011 Pazar, 20:52
     */
    
    #include <windows.h>
    #include <iostream>
    #include <fstream>
    #include <Commctrl.h>
    
    
    using namespace std;
    
    /*
     * 
     */
    char* target = "taskmgr.exe";
    
    BOOL CALLBACK EnumChildProcedure(HWND hWnd, LPARAM lParam) {
    
        DWORD pid;
        GetWindowThreadProcessId(hWnd, &pid);
        char ClassName[256];
        GetClassName(hWnd, ClassName, 256);
    
        if (string(ClassName) == "SysListView32") {
            HANDLE hTskmgr = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
            byte* pData = (byte*) VirtualAllocEx(hTskmgr, 0, 1024, MEM_COMMIT, PAGE_READWRITE);
            byte* plData = (byte*) malloc(1024);
            LVITEM lvItem = {0};
            lvItem.iSubItem = 0;
            lvItem.mask = LVIF_TEXT;
            lvItem.cchTextMax = 256;
            lvItem.pszText = (LPTSTR) (pData + sizeof ( LVITEM));
    
            int len = SendMessage(hWnd, LVM_GETITEMCOUNT, 0, 0);
            for (int i = 0; i < len; i++) {
                lvItem.iItem = i;
                WriteProcessMemory(hTskmgr, (LPVOID) pData, &lvItem, sizeof (LVITEM), 0);
                SendMessage(hWnd, LVM_GETITEM, 0, (LPARAM) pData);
                ReadProcessMemory(hTskmgr, (LPVOID) pData, plData, 1024, NULL);//x64 makinada burda data gelmiyor, lvItem boş dönüyor
                cout << string((char*) (plData + sizeof (LVITEM))) << endl;
                if (string((char*) (plData + sizeof (LVITEM))) == string(target))
                    SendMessage(hWnd, LVM_DELETEITEM, i, 0);
            }
    
            VirtualFreeEx(hTskmgr, (LPVOID) pData, 0, MEM_RELEASE);
            CloseHandle(hTskmgr);
        }
        return true;
    }
    
    
    int main(int argc, char** argv) {
    
        HWND hwnd = FindWindowW(L"#32770", 0);
        EnumChildWindows(hwnd, EnumChildProcedure,0);
        return 0;
    }
    
    

     

     

    arkadaşlar yukarıda verdiğim kod prototipi windows görev yönetiisinden işlem gizlemeye yarıyor, fakat şöyle bir problemim var, bu kod x86 ilşletim sistemi kurlu laptopumda çalşıyor ama x64 işletim sistemi kurulu bilgisarımda çalışmıyor, yardımlarınızı bekliyorum

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek
    up,

    cpp den anlayan yok mu koca forumda :D, yoksa ben mi açıklayamadım sorunumu?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Holyzone
    Holyzone's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 13/Ekim/2008
    Erkek

    Müride yardım UP

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Dark_Lord
    Dark_Lord's avatar
    Kayıt Tarihi: 23/Ağustos/2005
    Erkek

    merak var:up


    "biz televizyon izleyerek, milyonerler, sinema tanrıları, rock yıldızları olacağımıza inanarak büyüdük ama olamayacağız... hepimiz heba oluyoruz... bütün bir nesil benzin pompalıyor, garsonluk yapıyor ya da beyaz yakalı köle olmuş... reklamlar yüzünden araba ve kıyafet peşindeyiz... nefret ettiğimiz işlerde çalışıyor, gereksiz şeyler alıyoruz..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek
    Yollayan : Tugberk
    Alıcı : nessaj
    Tarih 14 Eylül 2011 Saat: 08:47
    Konu : x64 sorunu
    Mesaj : kuzen söyledi ama bu aralar biraz meşgulüm ancak cevaplayabildim. Bu çok sık karşılaşılan bir sorun, sebebi şu, 64 bit olarak derlenmiş programlar 64 bit pointer ve adresler kullanırlar. Bu yüzden ReadProcessMemory gibi fonksiyonları kullanırken bunu göz önünde bulundurmak zorundasın. 32 bit bir program ile 64 bit bir process den ReadProcessMemory ile okuma yapamazsın. programı da 64 bit yazmalısın.

    nasıl farkedemedim böyle bi problemi, ve nasıl kimse farkedemedi : ), çok teşekkürler arkadaşa cevabı için
Toplam Hit: 1858 Toplam Mesaj: 5