博弟弟丶 发表于 2021-10-17 19:11

学习C++第三十三天

本帖最后由 博弟弟丶 于 2021-10-18 23:46 编辑

#include <iostream>
#include"Proc.h"
#include"men.h"
int main()
{
    HANDLE hpross = 0;
    uintptr_t modoubase = 0, localplayerPtr = 0, healthaddr = 0;//定义无符号整数多个变量
    bool Bhealth = false, Bammo = false, Brecoil = false;//定义多个bool的变量
    const int newValue = 1337;//常量1337
    DWORD hporssID = GetProdid(L"ac_client.exe");//遍历这个进程exe获取到ID
    if (hporssID)
    {
      hpross = OpenProcess(PROCESS_ALL_ACCESS, NULL, hporssID);//打开进程 最高权限
      modoubase = GetModuleBaseAddress(hporssID, L"ac_client.exe"); //获取这个exe的模块地址
      localplayerPtr = modoubase + 0x1958D4;//exe模块+偏移
      healthaddr = FindDMAAddy(hpross, localplayerPtr, { 0x188 });//寻取多级指针直到成功为止
    }
    else
    {
      std::cout << "没有找到该进程按回车键结束!" << std::endl;
      getchar();
      return 0;
    }
    DWORD dwExit = 0;
    while (GetExitCodeProcess(hpross,&dwExit)&& dwExit==STILL_ACTIVE)//获取一个已中断进程的退出代码非零表示成功
    {
      if (GetAsyncKeyState(VK_NUMPAD1)& 1)//热键1
      {
            Bhealth = !Bhealth;

      }
      if (GetAsyncKeyState(VK_NUMPAD2) & 1)//热键2
      {
            Bammo = !Bammo;
            if (Bammo)
            {
                men::PatchEx((BYTE*)(modoubase + 0xC962c), (BYTE*)"\xFF\x06", 2, hpross);//相当于内存中 字节FF 06    这个子弹增加还是比较简单的就一条指令FF 06dec    递减1
            }
            else
            {
                men::PatchEx((BYTE*)(modoubase + 0xC962c), (BYTE*)"\xFF\x0E", 2, hpross);//相当于内存中更改后的字节 FF 0E       FF OEinc       递增 1   
            }

      }
      if (GetAsyncKeyState(VK_NUMPAD3) & 1)//热键3 这里说一下 按下3 则返回原始字节以关闭2 hack   这里无后座需要逆向一下本人功力不足所以就没
      {

            Brecoil = !Brecoil;
            if (Brecoil)
            {
                men::NopEx((BYTE*)(modoubase + 0x63749), 10, hpross);//这里就相当于nop 10个字节
            }
            else
            {
                men::PatchEx((BYTE*)(modoubase + 0x63749), (BYTE*)"\x50\x8d\x4c\x24\x1c\x51\x8b\xce\xff\xd2", 10, hpross);//相当于恢复nop 也是10个字节
            }
      }
      if (GetAsyncKeyState(VK_INSERT) & 1)
      {
            return 0;

      }
      if (Brecoil)
      {
            men::PatchEx((BYTE*)healthaddr,(BYTE*)&newValue,sizeof(newValue), hpross);
      }
      Sleep(10);
    }
    return 0;
}


tlf 发表于 2021-10-17 21:37

咔c君 发表于 2021-10-17 22:33

学习了不错

Microooooogle 发表于 2021-10-18 00:23

厉害了学习下

GuiXiaoQi 发表于 2021-10-18 05:53

好好学习,天天向上

yyb414 发表于 2021-10-18 08:42

努力学习,不怕困难

vtor 发表于 2021-10-18 11:23

这么强的吗?才学了个把月就这么强了吗

博弟弟丶 发表于 2021-10-18 13:19

vtor 发表于 2021-10-17 20:23
这么强的吗?才学了个把月就这么强了吗

没有 主要是多理解代码

博弟弟丶 发表于 2021-10-18 13:20

tlf 发表于 2021-10-17 06:37
继续学习,跟进。

我说得都是思路

博弟弟丶 发表于 2021-10-18 13:21

咔c君 发表于 2021-10-17 07:33
学习了不错

思路思路 哈哈
页: [1]
查看完整版本: 学习C++第三十三天