agopoe吧 关注:35,982贴子:549,281

【c++ 打造自己属于自己的辅助】第一课 开教!不用求于别人!

取消只看楼主收藏回复

本来今晚想写完个加解密的 看到挺多的 就放下先 写个c++辅助入门教程(相对来说勉强算是吧) 好了 说到这里 肯定有大神要喷我了 我只想说 你是大神又如何? 你有教别人你学到的东西吗? 那你再牛逼也只是自己牛逼 能带我们飞吗? 答案:带你们飞?你们这帮渣渣想超越我?下辈子吧。。。然后 就忽悠你们之类的,但是我是很实在的教你们东西 虽然我学的不多 但我觉得教的这些东西 很实用并且受用 废话不多说 直接实践


IP属地:广东1楼2015-10-11 22:22回复
    首先 准备好工具
    vc++6.0 http://pan.baidu.com/s/1hq8RiuC
    这时候大神们应该会出现


    IP属地:广东2楼2015-10-11 22:24
    收起回复
      先教个简单的 无敌+霸体 首先要知道他们的写法
      无敌:人物基址+武器偏移+无敌偏移=100
      霸体:人物基址+霸体偏移
      知道之后找到他们的数字
      0x03160DD0;//人物基址 0x00002A98;//武器偏移 0x0000114C;//无敌偏移 0x000008AC;//霸体偏移
      这个每次更新ce吧置顶帖都有


      IP属地:广东4楼2015-10-11 22:28
      收起回复
        打开工具 新建


        IP属地:广东6楼2015-10-11 22:30
        收起回复
          工程里的 win32 Console Application( 控制台程序)

          什么! 控制台! 好吧 大神 来喝杯咖啡


          IP属地:广东8楼2015-10-11 22:37
          收起回复
            随便改个名字

            按确定


            IP属地:广东9楼2015-10-11 22:38
            回复
              空工程

              确定


              IP属地:广东11楼2015-10-11 22:44
              回复
                项目就这样建好了 至于什么叫项目 类比一个大文件夹里面有很多文件 那个大文件夹就叫项目 项目里面装着各种代码文件 (比如做个贪食蛇游戏 这个贪食蛇游戏就叫项目 要实现他就需要各种代码文件)
                接下来是建个c++文件 步骤参考上面 就这里不同 不是工程 是文件


                IP属地:广东13楼2015-10-11 22:46
                收起回复
                  然后变成这样子 现在可以开始写代码了 代码纯文本表示 不截图


                  IP属地:广东15楼2015-10-11 22:47
                  收起回复
                    首先第一句 包含这个头文件Windows.h(.h结尾的都是头文件) 头文件是什么东西 类似于一个大代码库 里面都是写好的函数(就是用来实现功能的代码段) 我们直接就可以那来调用 实现功能 不用自己写
                    比如 c++ 的输入输出功能 cin cout如果没有包含 iostream.h 这个头文件 就会报错 因为系统不知道去哪里找 cout cin这两个功能的实现
                    #include <Windows.h> //包含这个库


                    IP属地:广东17楼2015-10-11 22:54
                    回复
                      写个程序入口 程序都是从这里读取代码的
                      #include <Windows.h>
                      int main() //程序入口
                      {
                      }


                      IP属地:广东18楼2015-10-11 22:56
                      收起回复

                        定义1个变量 rw_base (变量就是可以改变的数字 只不过多个名字 本质是数字)
                        DWORD 是数据基本类型 类似的还有int(同DWORD 为什么相同呢 因为都是4个字节) 就是整数 还有 double float(小数) char(字符) 这些 这里不用管那么多 等以后用到再说 现在只看 DWORD就可以了
                        别看DWORD这些看起来好深奥 只不过用来限制变量用的 比如 DWORD就是存整数的 如果小数存进来 也会变成整数
                        DWORD rw_base = 0x03160DD0;//人物基址
                        这句话就是 把0x03160DD0(0x开头的表示16进制)给rw_base 现在rw_base就是0x03160DD0了 真的是0x03160DD0吗? 不是! 因为DWORD已经把他转成十进制的整数了 不信你包含个iostream.h看看是不是变了
                        代码写好后 自己编译下

                        编译完后 运行看结果 你就看到0x03160DD0这个16进制被转换成的十进制

                        #include <Windows.h>
                        #include <iostream.h>
                        int main()
                        {
                        DWORD rw_base = 0x03160DD0;//人物基址
                        cout<<rw_base;//输出rw_base变量
                        return 0;//这个用不到 暂时不用管
                        }


                        IP属地:广东20楼2015-10-11 23:22
                        收起回复
                          入正片
                          定义个窗口句柄HWND hWnd(句柄就是个数字 每个窗口都有唯一的句柄 通过这个句柄(数字)来对窗口进行操作)
                          Findwindow顾名思义就是找窗口 找到名为"地下城与勇士"的窗口(在任务管理器看得到这名字) 然后返回数字给hWnd
                          HWND hWnd = FindWindow(TEXT("地下城与勇士"),TEXT("地下城与勇士"));
                          剩下这些不用管 因为都不会变
                          GetWindowThreadProcessId(hWnd,&pid);//取得线程的id 也是个数字
                          HANDLE hProcss = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);//打开线程 现在就可以对dnf内存进行操作了
                          CloseHandle(hProcss);//关闭线程
                          #include <Windows.h>
                          int main()
                          {
                          DWORD rw_base = 0x03160DD0;//人物基址
                          DWORD wq_de = 0x00002A98;//武器偏移
                          DWORD wd_de = 0x0000114C;//无敌偏移
                          DWORD bt_de = 0x000008AC;//霸体偏移
                          DWORD buffer=0;
                          DWORD pid = 0;
                          //这里就开始调用Windows.h 里面的函数
                          HWND hWnd = FindWindow(TEXT("地下城与勇士"),TEXT("地下城与勇士")); //窗口句柄
                          GetWindowThreadProcessId(hWnd,&pid);//取得线程的id 也是个数字
                          HANDLE hProcss = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);//打开线程 现在就可以对dnf内存进行操作了
                          CloseHandle(hProcss);//关闭线程
                          return 0;
                          }


                          IP属地:广东23楼2015-10-11 23:40
                          收起回复
                            对人物基址进行读取 把读取的值放进buffer里
                            ReadProcessMemory(hProcss, (LPCVOID)rw_base, &buffer, sizeof(buffer), NULL);


                            IP属地:广东24楼2015-10-11 23:45
                            收起回复
                              int main()
                              {
                              DWORD rw_base = 0x03160DD0;//人物基址
                              DWORD wq_de = 0x00002A98;//武器偏移
                              DWORD wd_de = 0x0000114C;//无敌偏移
                              DWORD bt_de = 0x000008AC;//霸体偏移
                              DWORD buffer=0;
                              DWORD pid = 0;
                              //无敌
                              HWND hWnd = FindWindow(TEXT("地下城与勇士"),TEXT("地下城与勇士")); //窗口句柄
                              GetWindowThreadProcessId(hWnd,&pid);
                              HANDLE hProcss = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
                              ReadProcessMemory(hProcss, (LPCVOID)rw_base, &buffer, sizeof(buffer), NULL);//人物基址的值CloseHandle(hProcss);
                              return 0;
                              }


                              IP属地:广东28楼2015-10-11 23:50
                              回复