C語言高級技術之--游戲人物屬性修改器(實戰開發)


    大家好,由於上一篇的起因,所以現在有了這一篇的文章,雖然上一篇文章說了一學C的方法,但我在此強調一下,一定要記住,學習C主要是學習基礎的語法和編程的思想,不要把自己的思維固定死,要學會用發散的思維模式去做程序的開發,如果你只想用它來開發一般的應用程序的話,那就真的換一種編程語言吧,一般來說,C語言開發的應用程序雖然很高效,但是非常的復雜。但用其它的語言會很簡單,開發周期非常快,所以學習之前,一定要給自己做好定位。C一般用於開發底層、高效的程序、內核驅動開發以及設備驅動開發。

    曾經在某大學問過同學,學了一學期的C,現在會什么,“我們只會做習題”,回答令我感覺無力,這也就是為什么現在學計算機的大學生很難從事計算機這一個行業,畢竟企業不會要一個只會做習題的大學生。好了,不廢話了,那我們開始進入實戰吧!!,建議大家在看此文章之前先閱讀上一篇!

    第一步:   修改游戲首先要拿到進程,再打開它吧
               HWND hwnd = FindWindow(NULL,"WindowSword");    //獲取到游戲窗口
               if (hwnd==NULL)
              {
                           MessageBox(NULL,"游戲未開啟","Error",MB_OK);
                  return false;
               }
               else 
                    MessageBox(NULL,"成功獲取窗口句柄","SUCCESS",MB_OK);
    第二步: 打開進程以供讀寫
       DWORD pid;
      HANDLE m_hProcess=NULL;
             GetWindowThreadProcessId(hwnd,&pid);        //獲取窗口的pid 值  
             m_hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);     //打開進程以供讀寫
             if (m_hProcess==NULL)
            {

              MessageBox(NULL,"打開進程失敗","失敗",MB_OK);

              return -1;

             }
      第三步:對內存進行讀寫操作(事先我已經查找到血值存放的地方0x004FE240)
        int blood =20000;
               ReadProcessMemory(m_hProcess,(LPVOID)0x004FE240,&blood,sizeof(blood),&nSize)   //此函數可以讀取到游戲數據
               WriteProcessMemory(m_hProcess,(LPVOID)0x004FE240,&blood,sizeof(blood),&nSize)   //此函數可以改變游戲數據

     到此,整個修改的流程和思路都已經出來了,至於游戲數據我是怎樣查詢到的,興趣的朋友可以去學一下ce工具的使用,這里我只給出了基本的思路,要怎樣去做擴展,就得靠你自己了,比如像某些游戲輔助一樣實現自動加血,加能量之類的。其實這篇文件的技術含量不高,重要的是掌握windows api 的使用,和編寫程序的流程,希望大家能因此提高學習C的興趣,我的目的也就達到了。感謝大家的支持!!!

  PS :   下一篇文件,一部電影啟迪的密碼破解之旅--真實的故事   (在這里只為讓大家知道,想像力比什么都重要,編程最重要的一點,就是要敢想)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM