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

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

只看楼主收藏回复

首先第一句 包含这个头文件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
      收起回复
        好难 完全看不懂


        来自Android客户端21楼2015-10-11 23:32
        收起回复
          刚上什么了


          来自Android客户端22楼2015-10-11 23:34
          回复
            入正片
            定义个窗口句柄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
              收起回复
                也是个牛逼人物


                IP属地:广东来自Android客户端26楼2015-10-11 23:47
                回复
                  意思是可以免更想?


                  IP属地:广东来自Android客户端27楼2015-10-11 23:48
                  收起回复
                    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
                    回复
                      这里就要用到 无敌写法
                      无敌:人物基址+武器偏移+无敌偏移=100
                      在c里意思是 有点难讲 我一步一步讲


                      IP属地:广东29楼2015-10-11 23:54
                      收起回复
                        楼主,可以写个台服的私服辅助吗?


                        IP属地:广西来自Android客户端30楼2015-10-11 23:55
                        收起回复
                          赞赞赞赞


                          来自Android客户端31楼2015-10-11 23:56
                          回复
                            首先 得到人物基址的值 放进buffer里
                            ReadProcessMemory(hProcss, (LPCVOID)rw_base, &buffer, sizeof(buffer), NULL);//人物基址的值
                            然后 再得到 人物基址的值+武器偏移 后的地址
                            buffer = buffer + wq_de;//地址
                            得到地址里的值 (人物基址的值+武器偏移后的值) 放进buffer(覆盖掉之前的值 因为不需要了)
                            ReadProcessMemory(hProcss, (LPCVOID)buffer, &buffer, sizeof(buffer), NULL);
                            再用值+无敌偏移 得到真正存放无敌的地址
                            DWORD wd= 100;//修改无敌的值


                            IP属地:广东32楼2015-10-12 00:03
                            收起回复