• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····
            這幾天對匯編來了興趣~,同時對setWindowsHook感興趣,所以研究了下掃雷程序用OD,參考了網上的分析和自己的實踐,寫了個掃雷輔助~,用setWindowsHook ,附上學習成果~
            dll.cpp

            #include 
            "saoleiDll.h"

            #pragma   data_seg("Shared")
            HINSTANCE g_hInstance = NULL;
            HHOOK       g_hHook = NULL;
            HWND         g_hWnd = NULL;
            #pragma   data_seg()
            #pragma   comment(linker,"/SECTION:Shared,RWS")   

            LRESULT WINAPI MouseProc(
            int nCode,WPARAM wParam,LPARAM lParam){
                
            //MessageBox(g_hWnd,L"DD",L"DD",MB_OK);
                DWORD x = 0x10056A8;
                DWORD y = 0x10056AC;
                DWORD addr = 0x1005361;

                wchar_t d[100];
                
            int ny=*((wchar_t*)x);
                
            int nx=*((wchar_t*)y);

                DWORD pFunc = 0x01003512 ; 

                
            for(int i=0;i<ny;i++){
                    
            for(int j=0;j<nx;j++){
                        
            int tmp=*((char*)(addr+32*i+j));
                        
            if(tmp==0x8E){
                        }
            else if(tmp==0x0F){
                            {
                                
            int xi=i+1;
                                
            int yi=j+1;
                                __asm{
                                    push xi
                                    push yi
                                    call pFunc
                                }
                            }
                        }
                    }
                }

                
            //wsprintf(d,L"%d %d",ny,nx);
                //MessageBox(g_hWnd,d,L"DD",MB_OK);
                return  CallNextHookEx(g_hHook,nCode,wParam,lParam);
            };
            HHOOK InstallHook (HWND hWnd,DWORD dwThreadId)
            {
                
            if(dwThreadId!=0){
                    g_hWnd = hWnd;
                    g_hHook = SetWindowsHookEx(WH_KEYBOARD,MouseProc,g_hInstance,dwThreadId);
                    
            return g_hHook;
                }
            else{
                    
            return NULL;
                }
            }
            void UninstallHook()
            {
                UnhookWindowsHookEx(g_hHook);
            }
            BOOL APIENTRY DllMain( HMODULE hModule,
                                   DWORD  ul_reason_for_call,
                                   LPVOID lpReserved
                                 )
            {
                
            switch (ul_reason_for_call)
                {
                
            case DLL_PROCESS_ATTACH:
                    g_hInstance=(HINSTANCE)hModule;
                    
            break;
                
            case DLL_THREAD_ATTACH:
                
            case DLL_THREAD_DETACH:
                
            case DLL_PROCESS_DETACH:
                    
            break;
                }
                
            return TRUE;
            }

            engine.h

            #ifndef __engine_h__
            #define __engine_h__
            #include "..\saoleiDll\saoleiDll.h"

            #pragma comment(lib,"..\\Debug\\saoleiDll.lib")
            DWORD dwThreadId;
            HWND hhWnd;
            extern HWND hWnd;
            void process(){
                DWORD x = 0x10056A8;
                DWORD y = 0x10056AC;
                DWORD addr = 0x1005361;

                hhWnd=FindWindow(NULL,L"掃雷");
                DWORD hProcessId;
                dwThreadId=GetWindowThreadProcessId(hhWnd, &hProcessId);
                HANDLE Process = OpenProcess(PROCESS_VM_OPERATION| PROCESS_VM_WRITE|PROCESS_VM_READ, 
            false, hProcessId);

                
            if(Process==NULL){
                
            //MessageBox(-1,GetLastError(),"D",MB_OK);
                    DWORD sd=GetLastError();
                }


                unsigned 
            short int nx=0,ny=0;
                ReadProcessMemory(Process,(LPCVOID)x,&ny,2,NULL);
                ReadProcessMemory(Process,(LPCVOID)y,&nx,2,NULL);

                unsigned 
            short int s=0,b=0;
                
            int test=0;
                
            int cnt=0;
                
            for(int i = 0; i < ny; i ++){
                    
            for(int j = 0; j < nx; j++){
                        ::ReadProcessMemory(Process, (LPCVOID)(addr + 32*i+j), &b, 1, NULL);
                        
            if (b == 0x8F) 
                        {
                            cnt++;
                            s = 0x8E; 
                            ::WriteProcessMemory(Process, (LPVOID)(addr + (nx+2)*i+j), &s, 1, NULL);
                            ReadProcessMemory(Process, (LPCVOID)(addr + (nx+2)*i+j), &test, 1, NULL);
                        }
                    }
                }
                ::InvalidateRect(hhWnd, NULL, 
            true);
                ::CloseHandle(Process);
            }

            #endif


            posted on 2010-06-30 20:42 小果子 閱讀(152) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記
            久久久久久久97| 国产精品18久久久久久vr| 人妻无码αv中文字幕久久琪琪布| 久久久久一本毛久久久| 97精品依人久久久大香线蕉97| 午夜精品久久久久久久久| 久久精品国产91久久综合麻豆自制| 久久91精品综合国产首页| 精品久久久久久中文字幕大豆网| 久久久久亚洲AV无码网站| 久久精品国产一区二区三区| 亚洲精品乱码久久久久久自慰| 免费国产99久久久香蕉| 色88久久久久高潮综合影院| 久久综合狠狠综合久久激情 | 久久午夜福利无码1000合集| 久久综合九色综合精品| 浪潮AV色综合久久天堂| 一97日本道伊人久久综合影院| 亚洲一区二区三区日本久久九| 亚洲中文久久精品无码| 无码任你躁久久久久久久| 久久se精品一区二区影院| 成人资源影音先锋久久资源网| 亚洲国产精品无码久久一区二区| 久久精品国产99国产精品| 精品久久人人做人人爽综合| 狠狠色婷婷综合天天久久丁香 | 久久精品国产亚洲AV久| 成人亚洲欧美久久久久| 情人伊人久久综合亚洲| 久久精品国产99久久久| 久久人人爽人人爽人人片av高请| 99精品久久久久久久婷婷| 四虎久久影院| 2020国产成人久久精品| 国产精品久久久久蜜芽| 久久人人爽人人爽人人片AV高清 | 三级片免费观看久久| 欧美性大战久久久久久| 一本久久精品一区二区|