博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言高级技术之--游戏人物属性修改器(实战开发)
阅读量:5215 次
发布时间:2019-06-14

本文共 1416 字,大约阅读时间需要 4 分钟。

    大家好,由于上一篇的起因,所以现在有了这一篇的文章,虽然上一篇文章说了一学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 :   下一篇文件,一部电影启迪的密码破解之旅--真实的故事   (在这里只为让大家知道,想像力比什么都重要,编程最重要的一点,就是要敢想)

转载于:https://www.cnblogs.com/weiweina/archive/2012/07/29/2614210.html

你可能感兴趣的文章
Android五种数据传递方法汇总
查看>>
LeetCode - Sqrt(x)
查看>>
应用抽象工厂+反射实现通用数据源的设计(二)
查看>>
mount 命令
查看>>
day22-类的封装、property特性以及绑定方法与非绑定方法
查看>>
判断滚动条滑到底部触发事件
查看>>
switch 多条case结果相同
查看>>
python的浅拷贝和深拷贝
查看>>
10.30 私有化、静态 造自增人 练习,产生实例化对象,修改个人信息
查看>>
面试题-基础篇(1)
查看>>
07_java面向对象—继承
查看>>
Api demo源码学习(14)--App/Activity/Translucent && Translucent Blur
查看>>
2016.11.7
查看>>
SQLServer的数据存储结构01 文件与文件组
查看>>
vmware中虚拟化的问题
查看>>
源码mysql-5.7.23在cmake时出现的小问题
查看>>
Minion配置文件
查看>>
两个有序链表序列的合并 (15分)
查看>>
jupyter notebook提示需要token的问题
查看>>
Fragment之一:Fragment入门
查看>>